Delphi-Quellcode:
type
TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
FLastActive: TWinControl;
procedure DoLastActive(var Msg: TMsg; var Handled: Boolean);
public
{ Public-Deklarationen }
property LastActiveControl: TWinControl read FLastActive;
end;
procedure TForm3.DoLastActive(var Msg: TMsg; var Handled: Boolean);
var
C, C2: TControl;
begin
if Msg.message = CM_EXIT then begin
C2 := FindControl(Msg.hwnd);
C := C2;
while Assigned(C) and (C <> Self) do
C := C.Parent;
if Assigned(C) then
FLastActive := C2;
end;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
Application.OnMessage := DoLastActive;
// oder besser noch ein TApplicationEvents auf die Form pappen und dort das OnMessage nutzen
end;
(ungetestet, aber ich glaub es sollte laufen
)