Einzelnen Beitrag anzeigen

Patrick

Registriert seit: 15. Sep 2003
184 Beiträge
 
Delphi 2010 Professional
 
#1

Focus der GUI bei WM_AfterShow

  Alt 24. Sep 2013, 09:11
Hallo,

Ich habe ein kleines Problem. Ich möchte beim Start der Anwendung ein Sub-Fenster anzeigen. Ich möchte aber dass die Haupt-Form dann schon im Hintergrund zu sehen ist. Deswegen verwende ich ein WM_AfterShow -Event. Allerdings ist der Focus dann im Nirvana. Sobald ich Tab-Drücke ist der Focus auf der Komponente mit der TabOrder 1. Ich brauche den Focus aber auf der Komponente mit der Tab-Order 0 ohne dass ich dafür etwas drücken muss. Wo ist das Problem?

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  PostMessage(self.handle, WM_AfterShow, 0,0); // Dadurch kommt das ShowMessage erst nachdem das MainForm sichtbar ist
end;

procedure TForm1.WMAfterShow(var Message: TWMChar);
begin
  Form2.ShowModal;
end;

...

procedure TForm2.FormShow(Sender: TObject);
begin
  Edit1.SetFocus; // Das bringt nichts. Der Focus ist nicht auf Edit1, wie ich es gerne hätte.
end;
Genieße jede Minute deines Lebens, denn sie wird nicht wieder kommen.
  Mit Zitat antworten Zitat