Einzelnen Beitrag anzeigen

Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

Modales Fenster in der Taskleiste anzeigen

  Alt 23. Feb 2017, 09:45
Delphi-Version: XE3
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
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat