Guten Morgen,
ich habe da ein Problem.
In der
DPR habe ich
Code:
Application.MainFormOnTaskBar := true;
gesetzt. Alle Fenster die angezeigt werden habe ich durch das Überschreiben von CreateParams in der Taskleiste angezeigt.
Code:
procedure TFormHauptfenster.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := GetDesktopWindow;
end;
Das Hauptform ist nicht das wirkliche Hauptfenster, sondern eine Login-Maske, welche immer ausgeblendet ist. Nun möchte ich ein weiteres Fenster (ich nenne es mal Modul) auf Knopfdruck öffnen, welches CreateParams auf die gleiche weise überschreibt. Es muss modal geöffnet sein und das andere Fenster wird ausgeblendet:
Code:
FormHauptfenster.Hide;
Application.CreateForm(TFormModul, FormModul);
try
FormModul.ShowModal;
[...weiterer Code...]
finally
FreeAndNil(FormModul);
FormHauptfenster.Show;
end;
jetzt habe ich 2 Probleme:
1. Das Modulfenster wird in der Taskleiste zunächst nicht angezeigt. wenn ich aber den Focus von diesem Fenster nehme (durch anklicken z.B. vom Desktophintergrund) und dann wieder in das Fenster klicke erscheint es plötzlich doch in der Taskleiste. Dort soll es aber von anfang an stehen. Ich habe schon versucht per Code den Focus von diesem Fenster zu nehmen und wieder drauf zu setzen, aber das bringt keinen Erfolg.
2. wenn ich das Hauptfenster wieder einblende, ist es hinter allen anderen fenstern (auch hinter meinem Browser und meiner Delphi-
IDE. ein anschließendes BringToFront hat keine Wirkung. Dieses Problem besteht, seit ich im Modul-Form CreateParams überschrieben habe.
Ich hoffe es hat jemand ein paar Lösungsvorschläge für mich
Liebe Grüße