Hallo Patrick.
Zitat von
holliesoft:
Hier im Forum gibt es auch eine Suchfunktion
Ich habe die Lösung (s.u.) schon in 2 Threads gepostet.
Die Suchfunktion habe ich natürlich schon benutzt (und auch schon ganz Google-Land abgesucht). Leider wird man (insbesondere bei Google) mit (unützen) Ergebnissen erschlagen. Und jetzt, wo ich von deinen beiden Threads wusste, hab ich sie auch gefunden.
Zitat von
holliesoft:
Zitat von
Guido Eisenbeis:
... dennoch verschwindet es ab und zu, ohne dass ich einen konkreten Grund dafür finden kann. (Und glaubt mir, ich habe gesucht!)
Warum verlässt das Mainform ab und zu den topmost-Modus?
Das Phänomen kenne ich, habe aber leider keine Antwort darauf.
Kann nur bestätigen, dass das selbe ab und zu mit der Uhr aus der Vista Sidebar passiert, die hier StayOnTop läuft.
Das werden jetzt "Langzeit-Tests" zeigen.
Zitat von
holliesoft:
Du musst beim TApplication.OnDeactivate die Prozedur "Application.RestoreTopmosts" aufrufen.
Dies war der entscheidende Hinweis! Vielen Dank dafür!
Ich hatte schon eine andere Lösung getestet, die in CreateParams() das Topmost setzt und den Desktop als Parent für Form2 zuweist. Das würde ansich auch ganz gut funktionieren, hat aber in meinem Fall den Nachteil, dass für Form2 ein weiterer Eintrag in der Taskbar erstellt wird. Wenn ich den mit Params.ExStyle beseitige, wird aber auch im Fenster-Manager ("Alt + Tab") kein Eintrag mehr angezeigt. Das alles lässt sich mit deinem Tip lösen!
Eine Frage zum
TApplication.OnDeactivate: wo bekomme ich das her? Derzeit benutze ich eine TApplicationEvents-Komponente, die auch in der Delphi-Hilfe erwähnt wird. Wie hast du das Event erstellt?
Viele Grüße,
Guido.