Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programm mit linker Maustaste minimieren mit rechter beenden (https://www.delphipraxis.net/5303-programm-mit-linker-maustaste-minimieren-mit-rechter-beenden.html)

Hansa 31. Mai 2003 19:49


Programm mit linker Maustaste minimieren mit rechter beenden
 
Hi,

so ein ähnlicher Thread war ja schon hier, aber irgendwie ging es da um runterfahren von Rechnern. Ich will nur folgendes erreichen: wenn auf das Kreuz oben rechts geklickt wird, soll das Programm minimiert werden und erst bei klicken mit der rechten Maustaste soll es tatsächlich beendet werden. Application.minimize macht irgendwie nicht was ich will, oder ich habe das an der falschen Stelle eingebaut.

Stanlay Hanks 31. Mai 2003 20:00

Es ging darum, dass wenn man dem Programm "verbietet" es zu beenden der Rechner nicht heruntergefahren werden kann, wenn das Programm läuft. Aber im Prinzip is das bei dir genau das gleiche. Schau dir mal den anderen Thread an, und den Link.

man liest sich, Stanlay

Hansa 31. Mai 2003 20:23

Natürlich habe ich das gelesen. Die Frage sieht ähnlich aus, ist aber doch anders. Es heißt doch immer: neue Frage neuer Thread. Also: Klick auf kreuz --> minimieren, rechte Maustaste: Programm beenden (Option: Schließen). Ja das wärs dann.

Stanlay Hanks 31. Mai 2003 20:28

Du meinst also, man soll das Prog nur über einen Menüpunkt beenden können. Dann nimm eine Boolean Variable die Standardmäßig auf false is und wenn du auf denn Beenden Menüpunkt klickst, wird diese Variable auf true gesetzt. Dann musst du im CloseQuery nur noch sagen

Delphi-Quellcode:
CanClose := BeendenVariable;
IF CanClose = false THEN
   Application.minimize

Captnemo 4. Jun 2003 12:26

Als erstes musst du abfangen, welche Maustaste gedrückt wurde. Mit OnMouseDown oder so, von der Form geht das aber nicht, da die den Mausklick auf dem Kreuz nicht erhält. Windows erhält den Mausklick und sendet deiner App ein WM_CLOSE.

Ich denke das einfachste isses, wenn du die Titelleiste ausblendest und selbst eine zeichnest.
Da kannst du dann mit OnMouseDown eine Bool-Variable setzten, je nachdem welche Maustaste gedrückt wurde.
In OnCloseQuery der Form kann du dann die Variable benutzen um zu enscheiden, ob minimiert oder beendet werden soll.

Vielleicht gibts ja noch eine API-Funktion, mit der man die zuletzt gedrückte Maustaste ermitteln kann, weiß ich aber nicht. Wenn ja, dann könnte man die Info im OnCloseQuery auswerten.

3. Idee:
Bei den Jedis gibts ne Kompo, mit der du Buttons in die Titelleiste setzten kannst. Da kannst du die Maustaste auswerten. Also BeendenButton ausblenden und nen eigenen rein.

Vielleicht hilft dir das weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz