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