Se isso é D7, os dois estão update 1?
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Joao Morais Enviada em: segunda-feira, 21 de janeiro de 2008 14:23 Para: delphi-br@yahoogrupos.com.br Assunto: Re: [delphi-br] Destructor da Classe não está sendo chamado Leodinei Bielak wrote: >>> TLicensa = class(TObject) >>> Licensa : string; >>> Validade : TDate; >>> public >>> constructor Create; >>> destructor Destroy; >>> end; >> >> Você está dizendo que, neste código, o compilador emite um erro se você >> fizer: >> >> destructor Destroy; override; >> >> É isto? > > Exatamente. > Eu eu clicar com o control no TObject ele mostra que no fonte está como > virtual. > Se eu deixar sem nada após a declaração ele mostra a mensagem de que o > Método Destroy está sendo escondido. > Se eu colocar reintroduce ele não mostrar mais o warning. > Se eu colocar override dá o erro de compilação. Eu só consigo reproduzir isto quando eu troco destructor por procedure, ainda assim o erro apresentado pelo compilador é que a declaração TObject.Destroy é diferente da declaração TLicensa.Destroy, e não que TObject.Destroy seja um método estático. Outra é que você possa estar usando uma unit System que não a original, e nesta unit o Destroy não é virtual. Muito pouco provável, são muitas classes que utilizam Destroy virtual. Ou talvez você não esteja herdando direto de TObject, mas de alguma outra classe em que o Destroy foi reintroduzido como estático. No entanto isto não bate com o que você declarou, então é só especulação. Fora isto, cabou-se minha criatividade. Fique a vontade em mantar mais um pouco de código a fim de que seja possível ao menos reproduzir o problema. -- Joao Morais [As partes desta mensagem que não continham texto foram removidas]