Einzelnen Beitrag anzeigen

Getox

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

AW: Modales Fenster in der Taskleiste anzeigen

  Alt 23. Feb 2017, 15:00
Zitat:
Ach so..
Falls ich das richtig verstanden habe.
Sollte dein Modales Fenster noch geöffnet sein wenn auch versteckt kannst du das andere nicht auf Top setzen
das funktioniert nicht.
Nochmal zur Erklärung:
Ich versuche das alles etwas zu umschreiben, weil ich nicht weiß wie viel ich von der Software hier preisgeben darf

Wenn man das Programm startet kommt eine Login-Maske. Diese ist im Programm das MainForm. Wenn man sich einloggt, wird diese Login-Maske ausgeblendet und das Hauptfenster des Programms erscheint (nicht modal). Von dort aus kann man dann das Form für das Modul modal aufrufen, während das Hauptfenster mit hide versteckt wird.

Zitat:
Unter umständen musst du die
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW; abhängig vom gerade Sichtbaren Fenster umschalten.
Modale Fenster können ja erst durch das setzen von WS_EX_APPWINDOW in der Taskleiste angezeigt werden.
Dieses setze ich ja bei allen Fenstern (Modal oder nicht) in CreateParams damit diese in der Taskleiste erscheinen. Und bei allen Masken des Programms funktioniert das auch hervorragend, außer an dieser einen Stelle, wo die Modulmaske nicht in der Taskleiste erscheint, aber wenn ich nur auf ein anderes Fenster (oder den Desktophintergrund) klicke und anschließend wieder auf das besagte Form, steht es wie von Geisterhand korrekt in der Taskleiste. ich hab schon versucht diesem programmatisch den Fokus zu entziehen und wieder zu geben, aber das bringt irgendwie nichts.

Zitat:
SetWindowPos(MainHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE) Es könnte auch helfen das Parent zu entfernen bzw.. auf 0 zu setzen. (Also nix mit GetDesktopWindow)
Das war ja das zweite Problem. Nach dem schließen des Modulforms und dem einblenden des Hauptfensters ist dieses hinter allen anderen Anwendungen.
Beide Möglichkeiten habe ich beim Hauptfenster ausprobiert und es kommt auch anschließend wieder wie gewünscht in den Vordergrund... aber da hält es sich dann auch hartnäckig - auch wenn ich danach auf ein anderes Programm oder Form klicke bleibt das Hauptfenster dann davor... in dem Falle sollte es sich aber wieder so verhalten wie "normale" Fenster, wo immer das angeklickte oben steht und das vorherige obenliegende dann eine Ebene nach unten schiebt.

Ich hoffe ich konnte meine Probleme nun etwas besser darlegen... Dieses Problem verzweifelt mich langsam -.-
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat