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: delphi-br@yahoogrupos.com.br
> From: [EMAIL PROTECTED]
> 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/emoticonpack
> ------------------------------------
> 

Responder a