Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: feststellen welches Feld vor dem aktuellen Feld den Focus hatte?

  Alt 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.
  Mit Zitat antworten Zitat