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]

Responder a