Ops, destructors não existem em records. 2008/7/4 Guionardo Furlan <[EMAIL PROTECTED]>: > Opa, acho que isso resolve minha questão: > > http://delphi.about.com/od/adptips2006/qt/newdelphirecord.htm > > constructors e destructors automáticos. > > 2008/7/4 Davi Eduardo Borges Wall <[EMAIL PROTECTED]>: >> >> Muito legal as perguntas e respostas! >> >> Eu ainda diria para você tomar de costume sempre que possível inicializar >> variáveis. É uma boa prática de programação e evita problemas futuros. >> >> []'s >> >> ________________________________ >> >> De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao >> Morais >> Enviada em: sexta-feira, 4 de julho de 2008 15:37 >> >> Para: delphi-br@yahoogrupos.com.br >> Assunto: Re: [delphi-br] Dúvida com Record >> >> Guionardo Furlan wrote: >> > TReg = record >> > private >> > FInicializado: Boolean; >> > FData: array of string; >> > function GetCount: Integer; >> > function SetCount(const Value: Integer); >> > public >> > property Count: Integer read GetCount write SetCount; >> > property Data[Index: Integer] read GetData write SetData; >> > end; >> > <snip> >> > 1. Quando eu defino uma variável com o tipo TReg, o campo FInicializado >> > Booleano é *sempre* criado como False? >> >> Ao instanciar uma classe, sim. Record eu me arrisco a dizer que não, uma >> vez que ele não tem uma rotina de inicialização como uma classe. >> >> Se a variável desse record for global, possivelmente ele será >> inicializado. Se for dentro de uma procedure, function ou method, mais >> provável que não. >> >> > 2. Após vários processos em que o tamanho da array de strings FData é >> > modificado, pode ocorrer vazamento de memória? >> >> Não. Array dinâmico possui contagem de referência e ele é destruído tão >> logo saia de escopo, assim como acontece com ansi strings. >> >> > Num sistema, criei um record similar a este, e depois disso, começaram a >> > aparecer mensagens do FastMM falando sobre vazamento de memória com tipos >> > string, que não estou conseguindo identificar. >> >> Você cria alguma coisa dinamicamente, tal como instância de classes ou >> através da procedure new? Talvez a string esteja em um array, e este >> array esteja associado a alguma outra área de memória, tal como um >> objeto ou uma variável dinâmica? >> >> > No NG, recebi dicas para utilizar classes ao invés de records, mas foi o >> > que >> > me pareceu mais econômico, já que as variáveis record serão acessadas >> > localmente, dentro de outras classes. >> >> A única economia ao utilizar record é não precisar instanciar, e seus >> métodos receberem um parâmetro a menos (que no caso da classe é o >> ponteiro da instância) mas será que realmente vale a economia? >> >> Joao Morais >> > > -- > Timeo hominem unius libri > Cogito ergo sum - Carpe diem > > []s > Guionardo Furlan > http://guionardo.blogspot.com >
-- Timeo hominem unius libri Cogito ergo sum - Carpe diem []s Guionardo Furlan http://guionardo.blogspot.com