Fiz um teste com a passagem de uma classe como parâmetro e obtive um comportamento inesperado. O código resumido está abaixo: type TClasse = class public constructor Create;virtual; end;
procedure TForm1.Button1Click(Sender: TObject); begin Cria(TClasse); end; { TClasse } constructor TClasse.Create; begin ShowMessage('Create disparado!'); end; procedure TForm1.Cria(ClassRef:TClass); Var Obj:TObject; begin Obj := ClassRef.Create; FreeAndNil(Obj); end; Na função CRIA, ao chamar o create da ClassRef, o create da TCLASSE não é disparado. O ShowMessage não acontece. Alguém sabe me explicar o pq? []´s Sérgio Uetanabaro [As partes desta mensagem que não continham texto foram removidas]