Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Unterscheidungen zwischen dem Schließen einer Form (https://www.delphipraxis.net/178757-unterscheidungen-zwischen-dem-schliessen-einer-form.html)

RWarnecke 25. Jan 2014 13:02

Unterscheidungen zwischen dem Schließen einer Form
 
Hallo zusammen,

ich suche nach einer Möglichkeit im Programm zu unterscheiden, ob sich eine Form oben rechts über den Button geschlossen hat oder über die Funktion Close im Programm zum Beispiel durch eine Bedingung. Das Fenster wird mit Show aufgerufen. Gibt es da eine Möglichkeit ?

Uwe Raabe 25. Jan 2014 13:12

AW: Unterscheidungen zwischen dem Schließen einer Form
 
Du könntest dich in den WMSysCommand Message-Handler einklinken.

hathor 25. Jan 2014 13:14

AW: Unterscheidungen zwischen dem Schließen einer Form
 
HTCAPTION auswerten oder die WM_NCLBUTTONDOWN message

Delphi-Quellcode:
  protected
    procedure WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN;
...
procedure TForm1.WMNCLButtonDown(var Msg: TWMNCLButtonDown);
begin
  if (Msg.HitTest = HTCAPTION) then...

himitsu 25. Jan 2014 13:50

AW: Unterscheidungen zwischen dem Schließen einer Form
 
Zitat:

Zitat von hathor (Beitrag 1245296)
HTCAPTION auswerten oder die

Vergiss nicht das Beenden über's Menü des Hauptfensters (das im Icon), Doppelklick auf's Icon, Schließen im Taskleistenmenü,
Task benenden im Taskmanager (Anwendungen-Tab)
und dann bleiben noch WM_QUIT von irgendeiner Anwendung und das WM_QUIT beim Abmelden des Benutzers, bzw. Runterfahren des Computers.

Das Schließen/Beenden des internen Application-Fensters, über's Hauptmenü oder den Taskmanager, betrifft auch "ältere" Delphiversionen, wo noch nicht die MainForm in der Taskleiste angezeigt wurde.
Nja, und das Abschießen des Tasks, durch Irgendwas, lässt sich garnicht abfangen.


PS: Es wird nicht beim DOWN geschlossen, sondern beim UP. :!:
[X] runterdrücken, die Maus vom Button runterziehen und dann loslassen, beendet keine "ordentliche" Anwendung. (nur einige geskinnte Anwendungen reagieren da falsch)

hathor 25. Jan 2014 14:03

AW: Unterscheidungen zwischen dem Schließen einer Form
 
Zitat:

Zitat von himitsu (Beitrag 1245301)
PS: Es wird nicht beim DOWN geschlossen, sondern beim UP. :!:!
[X] runterdrücken, die Maus vom Button runterziehen und dann loslassen, beendet keine "ordentliche" Anwendung. (nur einige geskinnte Anendungen reagieren da falsch)


Da ist es aber schon zu spät...

himitsu 25. Jan 2014 14:34

AW: Unterscheidungen zwischen dem Schließen einer Form
 
Zitat:

Zitat von hathor (Beitrag 1245304)
Da ist es aber schon zu spät...

Aber wenn man dann doch nicht beenden tut?
z.B. wenn man den Button daneben verfehlt hatte, eigentlich maximieren wollte und die Maus noch schnell vom X runternimmt.

Oder noch besser, man klickt auf Maximieren, zieht den Zeiger auf Beenden und läßt ihn dort los.
Wobei Letzteres eigentlich nicht funktioniert (zumindestens aktuell), aber vorallem DevExpressSkins reagieren da gern falsch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 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