Hallo!
Zunächst einmal: Bei "Alles minimieren" wird
nicht minimiert! Es wird lediglich der Desktop (der ja auch nur ein Fenster ist) mit seinem Hintergrundbild und seinen Symbolen ganz nach vorne gebracht, alle anderen Fenster sind verdeckt.
Wie ich schon erwähnte, war mein Problem genau entgegengesetzt - bei Minimieren husch husch ins Körbchen (TNA).
Leider ergab sich bei meinen Versuchen ein Problem: Die Message "WM_SHOWWINDOW" auswerten brachte nichts, weil mein Programm zu schnell war. Daraufhin habe ich ein Flag gesetzt und meinen Standard-Timer (Anzeige von Datum und Uhrzeit auf dem Hauptformular, Intervall 100) dann einmal das Ganze bearbeiten lassen. Klappte auch nur selten.
Also habe ich noch einen Zähler eingebaut, der bei gesetztem Flag vom Timer hochgezählt wird und bei Erreichen eines bestimmten Wertes dann das Verstecken des Hauptformulars auslöst.
Das Ergebnis war enttäuschend: mal reichten 2 Klicks (200 ms), mal wurden 5 (500 ms) gebraucht, um sicher zu funtionieren. Und ich fand keine Möglichkeit, festzustellen, ob das Ergebnis da war.
Da mein Programm im Prinzip nur 2 zusätzliche Threads startet und selber nur (seltene) Benutzereingaben bearbeitet, war bei mir die Lösung: "wenn in TNA, dann verstecken, sonst zeigen" aus Performancegründen akzeptabel.
Alle Angaben für Win98 und Delphi 5
Falls Du selber experimenrtieren willst:
im Interface-Teil des Formulars:
Quelltext
1:
| procedure WndProc(var nachricht: tMessage); override; |
und im Implementationsteil:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure WndProc(var nachricht: tMessage); begin case nachricht.Msg of WM_SHOWWINDOW: begin if (nachricht.WParam = 0) and (nachricht.LParam = 1) then begin // hier den Code einfügen end; end; else inherited; end; end; |
Bei Minimieren wird die markierte Stelle aufgerufen (ggf. muß auch hier der Vorgänger mit "inherited" aufgerufen werden.
Bitte nicht über das hier etwas überzogene Case wundern - bei mir werden noch weitere Meldungen ausgewertet. Oben steht nur ein Ausschnitt aus meiner Prozedur.
Gruß
Dietmar Brüggendiek