Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
Delphi 12 Athens
|
AW: feststellen welches Feld vor dem aktuellen Feld den Focus hatte?
12. Feb 2011, 18:12
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 )
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
|