Rubens, João.

Obrigado pelas dicas. 
Conheco RTTI....mas como já existe tudo em record fica dificil mudar assim de 
cara.......(embora estou achando que esta seja a saida)

Acontece que tenho um monte destas estruturas para converter pra equivalentes 
em tabelas, tenho cerca de 600 records...
então fazer na mão...puts.. rsss..

A ideia é q quando a aplicação estiver rodando e receber por parametro um 
destes records, automaticamente crie a tabela então, conseguindo pegar a lista 
da estrutura iria facilitar.

E existe outro detalhe, é que pode ser geradas novas estruturas então o 
processo se encarregaria de criar automaticamente caso ainda não exista.

Uma outra pergunta que deixo no ar, se o delphi consegue esta lista quando 
estamos "lidando" nos fontes ...porque não seria possivel, ou sera que ele usa 
alguma especie de parser pra estas estruturas???


Atenc;
Elazar


----- Mensagem original ----
De: Joao Morais <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Quarta-feira, 1 de Outubro de 2008 11:00:25
Assunto: Re: [delphi-br] Estrutura de um record


Rubem Nascimento da Rocha wrote:
> Até onde me consta, não existe como verificar a estrutura de um record,
> pois um record não possui as mesmas características de uma classe
> contendo propriedades publicadas. Neste último caso, é possível, via
> RTTI, consultar as propriedades publicadas de um objeto e obter seus
> valores. Com um record, isso não existe.
> 
> João Morais, mais algo para complementar/ corrigir e q possa ajudar o colega?

Completo dizendo que record é uma estrutura que organiza um conjunto de 
dados apenas em tempo de compilação, não dá flexibilidade para trabalhar 
em tempo de execução, e não permite herança. Portanto ele é totalmente 
inviável para aproveitamento de código. Você pode vir a hackear uma 
coisa aqui outra ali, mas não terá suporte da linguagem e por 
consequência não terá produtividade.

O ideal é seguir a idéia do Rubem e partir para classes desde o início. 
Não é tão complicado. Os únicos cuidados que você precisa ter é criar o 
objeto antes de usá-lo e destruí-lo depois que não precisar mais dele. 
No mais, é uma estrutura semelhante ao record.

Informe-se sobre rtti, sobre a área published, e sobre as rotinas da 
unit typinfo. Para os seus primeiros testes, herde suas classes a partir 
da classe TPersistent, declarada na unit Classes. A partir daqui, FastMM 
será seu amigo. Use-o para descobrir se você está esquecendo de destruir 
algum objeto.

Por fim, qual seu objetivo: faculdade, indicação de estudo, saco cheio 
do tdataset, necessidade no trabalho, ...?

--
Joao Morais

> 
> 
> ____________ _________ _________ __
> To: [EMAIL PROTECTED] os.com.br
> From: [EMAIL PROTECTED] com.br
> Date: Wed, 1 Oct 2008 05:57:25 -0700
> Subject: [delphi-br] Estrutura de um record
> 
> Bom dia pessoal,
> 
> como faze para acessar a estrutura de um record?
> 
> por exemplo tenho os seguintes records,
> 
> Record1 = record
> Codigo : Integer;
> Name : String;
> Endereco : String;
> end;
> 
> Record2 = record
> Codigo : Integer;
> Descricao : String;
> Situacao : String;
> end;
> 
> Record3 = record
> Codigo : Integer;
> Descricao : String;
> end;
> 
> Record4 = record
> Codigo : Integer;
> Descricao : String;
> Quantidade : Double;
> ValorUnitario : Double;
> ValorTotal : Double;
> end;
> 
> Estou tentando fazer uma procedure mais ou menos assim
> 
> procedure ObterListaDados( Lista : TStrings; Registro : record);
> var
> vCont : Integer;
> begin
> Lista.Clear;
> for vCont := 0 to Registro.QtdCampos do
> Lista.Add(Registro. ...campo) ;
> end;
> 
> Alguem tem alguma sugestão?
> 
> Atenc;
> Elazar
> 
> ____________ _________ _________ _________ _________ _________ _
> Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
> Messenger! É GRÁTIS!
> http://www.msn. com.br/emoticonp ack
> ------------ --------- --------- ------
> 

 


      Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua 
cara @ymail.com ou @rocketmail.com.
http://br.new.mail.yahoo.com/addresses

[As partes desta mensagem que não continham texto foram removidas]

Responder a