Em 6/7/2009 20:20, Joao Morais escreveu:
> 2009/7/6 José Mário Silva Guedes <jmariogue...@gmail.com
> <mailto:jmarioguedes%40gmail.com>>:
>  > Eu tenho dúvidas quanto a isto também, e por desencargo, eu rescrevo o
>  > Destructor da classe, para "anular" os arrays:
>  > nota.Produto := nil;
>
> Não precisa. Quando há alguma estrutura em que esse apontamento faz
> diferença (array dinâmico, interface e ansi string), o próprio
> destrutor da classe associa nil ao ponteiro por você.
>
> Joao Morais

Aproveitando o gancho nessa thread ...

Supondo que tenho dois tipos,  TPessoaRecord e TPessoaClass, eu posso 
usar com um record da seguinte maneira, bem simples ...:

---
var
..VPessoaRecord: TPessoaRecord;
begin
..VPessoaRecord.Nome := 'Fulano de tal';
..ShowMessage(VPessoaRecord.Nome);
end;
---

... não usei create/free, agora com uma classe ...

---
var
..VPessoaClass: TPessoaClass;
begin
..VPessoaClass := TPessoaClass.Create;
..try
....VPessoaClass.Nome := 'Fulano de tal';
....ShowMessage(VPessoaClass.Nome);
..finally
....VPessoaClass.Free;
..end;
end;
---

... com class eu posso usar inúmeros recursos do object pascal (herança, 
abstração, polimorfismo ...), então o class para TPessoa seria o mais 
indicado, já que tal objeto poderia conter várias propriedades, mas tem 
alguns casos que o objeto é bem simples, ex: TEndereco, que teria poucos 
campos (Rua, Numero, UF...), então seria correto eu usar o record para 
esse caso?
-- 
[]'s, Silvio Clécio
---
Linux User: #481900
Gmail, GTalk: silviop...@gmail.com
E-mail, Y! Messenger: silviop...@yahoo.com.br
BlogSite: http://silvioprog.blogspot.com/
BlogSpot: http://silvioclecio.blogspot.com/
VirtualDriver: http://silvioprog.4shared.com/
°oO| Seja livre, use Linux! |Oo°

Reply via email to