xHarbour 100% Orientado a Objetos - Uma pequena introdução

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Peraí. Que negócio é esse de flag de índice no header do DBF? Fazia muito tempo que tinha visto a descrição da estrutura de um header de DBF. Olhei de novo só pra confirmar. Não tem qualquer informação acerca de índice nele.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

hehe...

Assim fica difícil né. Com o tempo, este tipo de afirmação, pode tirar a credibilidade das respostas obtidas aqui do forum.

Mas eu gostaria de ver mesmo como é que se cria uma propriedade numa classe em tempo real. Também quero aprender.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Mas eu gostaria de ver mesmo como é que se cria uma propriedade numa classe em tempo real.
Em tempo de execução você quer dizer. Pois somos dois. Também fiquei curioso. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Issooo... O famoso "run-time"...
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Edsones
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 13 Nov 2007 15:20
Localização: São Paulo

Mensagem por Edsones »

Olá a todos.

Me desculpem se o termo "DATA" complicou a pergunta, imaginei o contrário, mas realmente estava falando de propriedades da classe.
Tenho um sistema administrativo que cria formulários em tempo de execução por dicionário de dados, e estou passando essa rotina para OOP. E no projeto, seria muito útil, que eu conseguisse definir classes e suas propriedades, em tempo de execução.

ericmagaldi
Obrigado pela atenção e gostaria sim de sua ajuda se possível, pois sei que é possivel fazer isso no xhabour.
esbasso
Colaborador
Colaborador
Mensagens: 325
Registrado em: 24 Jan 2007 17:49
Localização: CHAPECO/SC

Mensagem por esbasso »

è possivel sim manipular as CLASSES criando novas proriedades e metodos
Abaixo a lista

__ObjSetValueList() Set object with an array of DATA names and values
__objAddData() Add a DATA to an already existing class
__objAddInline() Add an INLINE to an already existing class
__objAddMethod() Add a METHOD to an already existing class
__objDelData() Delete a DATA (instance variable) from class
__objDelInline() Delete a METHOD INLINE from class
__objDelMethod() Delete a METHOD from class
__objDerivedFrom() Determine whether a class is derived from another class
__objGetMethodList() Return names of all METHOD for a given object
__objGetMsgList() Return names of all DATA or METHOD for a given object
__objGetValueList() Return an array of DATA names and values for a given object
__objHasData() Determine whether a symbol exist in object as DATA
__objHasMethod() Determine whether a symbol exist in object as METHOD
__objModInline() Modify (replace) an INLINE method in an already existing class
__objModMethod() Modify (replace) a METHOD in an already existing class
Luis Fernando Basso
Desenvolvedor VFP + XHARBOUR + HWGUI
lfbasso@gmail.com
http://www.engersoft.com.br
dlemes
Usuário Nível 1
Usuário Nível 1
Mensagens: 9
Registrado em: 01 Mar 2010 15:19
Localização: Santa Maria

Re: xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por dlemes »

Uma dúvida,

harbour tem suporte a "métodos mágicos"? se alguém tem dúvidas do que eu estou falando veja http://www.php.net/manual/pt_BR/languag ... ng.methods

se for possível da para criar os famosos métodos findByCampo como no RubyOnRails, Grails e outros tantos frameworks...
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Re: xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por lugab »

Que sorte minha, terem upado esse tópico.

Não fosse assim eu nunca saberia da existência dele, que é uma ótima aula de programação pra mim...

Gabriel
lugab
raquelreis
Usuário Nível 2
Usuário Nível 2
Mensagens: 87
Registrado em: 18 Jul 2011 15:29
Localização: à procura

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por raquelreis »

Que ótimo esse tópico. Programo(tento né...) em Java, e não imaginei que pudesse trabalhar OOP com xHarbur(parecido com clipper).
Parabéns!
Keel
[]'s

_____________________________________________________________________________________
PROGRAMADOR é aquele que te resolve um problema que você não sabia que tinha, de uma maneira que você não compreende.
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por bencz »

Olá (:
Eu estou tendo problemas com esse código...
segue foto:

Imagem

Como posso resolver esse problema ??
Imagem
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por alxsts »

Olá!

O problema não é no código.

DOS Erro 2 - File not found. O programa está tentando abrir a tabela Clientes.Dbf e não a está encontrando no local especificado.

Revise o caminho especificado ou coloque o arquivo (e prováveis arquivos de índice) na pasta onde o programa os espera encontrar.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por bencz »

Olá
Eu simplesmente peguei o código do tutorial e copiei...

onde eu posso conseguir esse arquivo, ou criar ele ??
Imagem
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por alxsts »

Olá!

O código hipotético do exemplo não fornece a tabela. Salve o código abaixo e compile. Depois execute na pasta onde está o executável do exemplo.

Código: Selecionar todos

FUNCTION CriaTbCli()

LOCAL aArray, nInd, nLen

   aArray := {}

   AAdd( aArray, { "Codigo", "N", 3, 0 }, { "Nome", "C", 50, 0 } )

   DbCreate( "Clientes", aArray )


   aArray := {}

   AAdd( aArray, { 1, "VARIG" } )
   AAdd( aArray, { 2, "VASP" } )
   AAdd( aArray, { 3, "TRANSBRASIL" } )
   AAdd( aArray, { 4, "CRUZEIRO DO SUL" } )
   AAdd( aArray, { 5, "PANAM" } )
   AAdd( aArray, { 6, "BRANIFF" } )

   USE Clientes EXCLUSIVE NEW

   nLen := Len( aArray )

   FOR nInd := 1 TO nLen
      Clientes->( DbAppend() )
      Clientes->codigo := aArray[ nInd, 1 ]
      Clientes->nome := aArray[ nInd, 2 ]
   NEXT

   Clientes->( DbCloseArea() )

   RETURN NIL
         
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por bencz »

Ok, tive o seguinte erro...

main.prg(7) Error E0021 Incorrect number of arguments in AADD
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Mensagem por Stanis Luksys »

Opa,

Troque a linha por estas duas:

Código: Selecionar todos

AAdd( aArray, { "Codigo", "N", 3, 0 } )
AAdd( aArray, { "Nome",  "C", 50, 0 } )
Note que no exemplo original, o código é tipo caracter, tamanho 5, e não numérico como foi colocado agora.

Abraços.
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Responder