Fenster nach minimieren wieder anzeigen
-
@th69 Das hat leider auch nicht geholfen.
-
Hast du denn jeweils nur genau eine der 5 Methoden ausprobiert?
Du mußt natürlich zuerst das Fenster anzeigen lassen und danach dann in den Vordergrund bringen.Zur Info: In einem C# Tray-Projekt benutze ich zuverlässig folgendes:
if (!Visible) { Visible = true; WindowState = FormWindowState.Normal; Activate(); }
(sollte also im Prinzip auch so mit der VCL umsetzbar sein)
-
Eventuell ist es auch eine eigenart von Windows selbst.
Ich hatte schon einigemale folgendes phänomen gehabt:
Hatte im Explorer eine kopieraktion angestoßen und der Kopier-Fortschrittsdialog wurde dabei nicht im Vordergrund geöffnet
-
Wichtig ist, daß bei "BringToFront" das Fenster selbst schon den Fokus hat (also "active" ist), ansonsten erscheint der Flash-Effekt beim Taskbar-Button (d.h. das orange Blinken).
Und genau dies erledigt dann in .NET dieActivate()
-Methode.
-
@th69 Ich habe alles mögliche ausprobiert. Einzel, alle hintereinander in unterschiedliche Reihenfolge. Alle Handels ausgetauscht mal Application->Handle mal this->Handle. Und deine Methode von C# ebenfalls. Leider kein Erfolg.
-
@th69 gerade ausprobiert und es hat nicht geholfen.
-
@firefly Ja die vermutung habe ich auch.
-
Welches Windows benutzt du denn?
Ich habe noch Windows 7 und da funktioniert es ja mit meinem .NET-Programm (das ja intern auch nur die WinAPI benutzt).
-
@th69 Windows 10
-
Hier ist eine Routine in Delphi, die lässt sich auch leicht in C++ umsetzen: