Einzelnen Beitrag anzeigen

RedOne

Registriert seit: 2. Jun 2008
71 Beiträge
 
Delphi XE2 Professional
 
#1

Form mit Alt + Tab verliert Fokus

  Alt 6. Jun 2013, 16:14
Hallo zusammen

Mich plagt zur Zeit folgendes Problem:
Ich habe ein Hauptformular. Von diesem aus öffne ich ein weiteres Formular (nicht Modal). Beide Forms sollen nun in der Taskleiste angezeigt werden und beide Forms sollen auch über Alt + Tab sichtbar sein.
Dies löse ich so:
Delphi-Quellcode:
procedure TFormSecond.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; //Damit wird das Form in der Taskbar sichtbar
  Params.WndParent := GetDesktopWindow; //Damit wird das Form mit Alt + Tab auswählbar
end;
Wenn ich nun aber auf meinem Unterformular (TFormSecond) gewisse Komponenten aufrufe, die ein zusätzliches Fenster öffnen, verliere ich den Fokus.
Als Beispiel: Ich habe auf dem Unterformular eine TRichView-Komponente mit ihrem eigenen Color-Dialog.
Klicke ich auf den Button, erscheint unterhalb des Buttons die Farbpalette, wie man sie aus Word kennt. Nun aber wird der Fokus auf das Hauptformular gesetzt. Das heisst, ich sehe das Hauptformular und darüber die Farbpalette.
Der gleiche Effekt tritt z.B. auch mit dem SynEdit auf, wenn die Completion geöffnet wird.
Das ganze liegt an dieser Zeile: Params.WndParent := GetDesktopWindow;
Entferne ich sie, funktioniert alles wunderbar. Nur verliert das Fenster seine Alt+Tab-Funktionalität.

Über Vorschläge würde ich mich freuen

Herzlichen Dank!
RedOne
  Mit Zitat antworten Zitat