![]() |
anwendung über tna schließen, bei formclose minimieren
hallo,
meine taskbar anwendung sollte nur über ein popupmenu geschlossen, welches über das icon in der tna erreicht werden kann. das schließen über das allgemein bekannte X in der anwendung sollte verhindert werden und stattdessen die anwendung in die tna minimieren. das forum hab ich schon durchsucht und bin auf closequery gestossen. eine lösung habe ich auch schon implementiert, jedoch bin ich damit noch nicht zufrieden. zur struktur der anwendung: es besteht die möglichkeit über 3 verschiedene komponente die anwendung zu schließen. 1. X in der anwendung 2. schließen im popupmenu im tna 3. datei->beenden 1, 2 und 3 rufen alle die prozedur close auf. nun soll closequery überprüfen ob das X in der anwendung gedrückt wurde wenn ja soll die anwendung minimiert werden ANSONSTEN wird die anwendung geschlossen. mein hintergedanke ist: sollte eine weitere komponente 4 hinzukommen mit der ich anwendung schließen kann, möchte ich einfach nur die prozedur close aufrufen und das programm wird beendet. ich möchte keine werte für eine globale variable setzen um sie dann später in closequery abzufragen. wie stelle ich das an? kann man über sender herausfinden, ob das X gedrückt wurde? gruß inriz |
Re: anwendung über tna schließen, bei formclose minimieren
Zitat:
|
Re: anwendung über tna schließen, bei formclose minimieren
Du könntest sonst einfach den ganzen Rand verschwinden lassen:
MainForm.BorderSytle:=bsNone |
Re: anwendung über tna schließen, bei formclose minimieren
1. ruft nur Close auf, wenn du nicht die Botschaft WM_SYSCOMMAND behandelst und dort das Command SC_CLOSE. Dort könntest du entsprechend deinen Wünschen ein Minimieren auslösen und dann diese Botschaft nicht weiterleiten zu deiner App (kein Inherited, wenn WM_SYSCOMMAND und SC_CLOSE).
|
Re: anwendung über tna schließen, bei formclose minimieren
Wird nicht das Ereignis OnFormCloseQuery ausgelöst?
Dart kannst Du ja dann CanClose auf False setzen und die App minimieren. Beim Schließen über TNA kannst Du ja eine entsprechendes Kennzeichen setzen, daß im oben genannten Event dafür sorgt, daß CanClose dann eben auf True gesetzt wird. Sherlock |
Re: anwendung über tna schließen, bei formclose minimieren
oder einfach im FormClose
minimize und abort das sollte auch klappen. daniel. |
Re: anwendung über tna schließen, bei formclose minimieren
Zitat:
Zitat:
Zitat:
Zitat:
Das ist ja dann schon kein programmieren mehr sondern hacken... |
Re: anwendung über tna schließen, bei formclose minimieren
Zitat:
Müsste es so nicht klappen?
Delphi-Quellcode:
SC_MAXIMIZE funktioniert :gruebel:
if (Message.Msg = WM_SYSCOMMAND) and (Message.WParam = SC_CLOSE) then
Message.WParam := SC_MINIMIZE; inherited; |
Re: anwendung über tna schließen, bei formclose minimieren
Also eine private Variable im Formular sollte schon drin sein. Man darf auch nicht vergessen, das Windows mal runtergefahren wird, da ist ein einfaches verbieten des Close auch nicht so nett.
Ich hab' mal ein Copy&Paste aus einem meiner Programme, das je nach Einstellung beim "X" schließt, minimiert oder versteckt.
Delphi-Quellcode:
Zum Beenden mit einem anderen Button, wird einfach ebenfalls ShootDown vorm Close auf True gesetzt.
{TForm1}
private procedure WMQueryEndSession (var M: TWMQueryEndSession); message WM_QUERYENDSESSION; ShootDown : Boolean procedure TForm1.WMQueryEndSession (var M: TWMQueryEndSession); begin inherited; ShootDown := TRUE; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin // Wenn ShootDown, dann beenden if ShootDown then begin CanClose := TRUE; // Kein ShootDown, nur minimieren eingestellt? end else begin if CBoxMinimize.Checked then begin if CBoxNotifyIcon.Checked then AppShowHide(False) else Application.Minimize; CanClose := FALSE; end else begin CanClose := TRUE; end; end; end; |
Re: anwendung über tna schließen, bei formclose minimieren
@Viktorii: Du kannst in deiner lokalen Kopie des Message Records soviel ändern wie du willst das bekommt Windows nicht mit.
@Satty67: Mitglied im Schießclub oder warum schiesst du dein Windows immer runter (shoot) anstatt herunter zu fahren (shutdown)? :stupid: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 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 by Thomas Breitkreuz