![]() |
(VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird?
Ja, die Events
Delphi-Quellcode:
und
OnMinimize
Delphi-Quellcode:
der globalen Application-Variable (bzw. der
OnRestore
Delphi-Quellcode:
-Komponente) habe ich gesehen. Nur leider funktionieren die nur wenn man das Hauptformular minimiert/maximiert, nicht aber ein modales Fenster.
TApplicationEvents
Ich stelle mich zu dumm an, da einen einfachen Ausweg zu finden. Wo muss ich ansetzen? Mir fällt nur ![]() Kann mich jemand in die richtige Richtung stupsen? |
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Du könntest einen Handler für die Botschaft "WM_SIZE" schreiben und dann wie folgt das Minimieren abfragen:
Delphi-Quellcode:
if (Msg.WParam = SIZE_MINIMIZED) then
begin /// ach du weia... end; |
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Danke für den Tipp, das klappt aber leider nicht. In der Theorie sollte es klappen, in der Praxis scheint es die VCL besser zu wissen und ich bekomme die Nachricht erst gar nicht. Zumindest wenn ich über "HookMainWindow" gehe.
Meine temporäre Lösung sieht jetzt so aus:
Delphi-Quellcode:
Das muss natürlich an jedes Formular dran. Sollte eine 3rd-Party Komponente ein VCL-Popup aufmachen bekomme ich Minimieren/Maximieren natürlich wieder nicht mit.
procedure TBaseForm.WMSysCommand(var msg: TWMSysCommand);
var isModal: Boolean; begin isModal := Vcl.Forms.fsModal in FormState; case msg.CmdType of SC_RESTORE: if isModal then [...] SC_MINIMIZE: if isModal then [...] end; inherited; end; Kann das jemand so unterschreiben oder ist das Mist? |
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Zumindest für XE8 funktioniert meine Lösung - allerdings nicht mit HookMainWindow, sondern über einen ganz normalen Ereignis-Hnadler:
Delphi-Quellcode:
.
procedure WMSize( var Msg : TMessage ); message WM_SIZE;
|
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Ok, gut zu wissen. Dann machen wir ja beide im Endeffekt das gleiche- Der eine über WM_SIZE, der andere über WM_SYSCOMMAND.
Ich sehe auch grade: Ich muss mir eigentlich nicht mehr viel Sorgen machen, denn Dinge wie fremde Modaldialoge (Speichern Unter-Dialog, ...) verhindern in der Regel eigentlich das Minimieren. |
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Zitat:
|
AW: (VCL) Wie bekomme ich mit ob die Anwendumg minimiert oder wieder hergestellt wird
Oh, der ist gut.
"Desktop anzeigen" ist streng genommen kein Minimieren. Der nimmt nur das Desktop-Fenster und legt es vor alle anderen. Für den Benutzer sieht es aber meist genauso aus wie "Alle minimieren". |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz