Se me ocurre esto, a ver qué te parece (asigna el evento OnExit a todos los componentes que quieras para el procedimiento)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Panel1: TPanel;
procedure Panel1Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
Objeto: TObject;
Nombre: String;
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Panel1Exit(Sender: TObject);
var
NObjeto: TComponent;
begin
NObjeto:= Sender as TComponent;
Objeto:= Sender;
Nombre:= NObjeto.Name;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage (Objeto.ClassName);
ShowMessage (Nombre);
end;
end.