Outro dia estava mexendo no 2007 e tive 'quase' este mesmo problema...digo 
quase porque o constructor que não estava sendo chamado.
era uma classe simples...olhem

  TPessoa = class
  private
    FName : String;
    FAge  : Integer;
    FID   : Integer;
  public
    procedure Ajustar(Name : String; Age, ID : Integer); 
  end;


e no entanto, poderia simplesmente chamar assim que funcionava sem "access 
violations"..notem que esta era a unico lugar que eu estava referenciando a 
classe (em nenhum lugar eu a criava) 

procedure TForm1.Button1Click(Sender: TObject);
begin
  FPessoa.Ajustar('Elazar', 23, 1);
end;

então pra tirar a duvida coloquei um constructor....com um showmessage, mas 
mesmo depurando nunca passava pelo constructor.

PS.
estava usando o D2007...tem mais alguem ai que esta passando (passou) pelo 
mesmo...?se alguem quiser testar...


Atenc;
Elazar





----- Mensagem original ----
De: Leodinei Bielak <[EMAIL PROTECTED]>
Para: delphi-br@yahoogrupos.com.br
Enviadas: Segunda-feira, 21 de Janeiro de 2008 13:03:41
Assunto: Re: [delphi-br] Destructor da Classe não está sendo chamado

2008/1/21 Joao Morais <[EMAIL PROTECTED] com.br>:

> Leodinei Bielak wrote:
> > 2008/1/21 Joao Morais <[EMAIL PROTECTED] com.br>:
> >> Taí, Destroy não é estático. Copy/Paste algum trecho de código, do
> >> contrário beira o impossível prestar alguma ajuda decente.
> >>
> >> Silenciar warnings não é um bom negócio, eles estão lá para te ajudar.
> >> Você deve removê-los sem apelar para "as vias de fato".
> >
> > Pois é. Imagino que essa seja a classe mais simples que eu tenho.
> > TLicensa = class(TObject)
> > Licensa : string;
> > Validade : TDate;
> > public
> > constructor Create;
> > destructor Destroy;
> > end;
> >
> > Mesmo tirando o public que tem ali dá o mesmo erro.
>
> Você está dizendo que, neste código, o compilador emite um erro se você
> fizer:
>
> destructor Destroy; override;
>
> É isto?
>
> --
> Joao Morais
>

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.

-- 
Leodinei Bielak
http://leodinei. blogspot. com/

"The whole point of getting things done is knowing what to leave undone."




      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para 
armazenamento!
http://br.mail.yahoo.com/

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

Responder a