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 Nach Schließen mit 'X' in die TNA (https://www.delphipraxis.net/20191-nach-schliessen-mit-x-die-tna.html)

iddqd 14. Apr 2004 14:45


Nach Schließen mit 'X' in die TNA
 
Hi !

Hab hier gerade meine Anwendung nach dem Minimieren erfolgreich in die TNA verbannt. Wie geht das nach dem Drücken auf das 'X' bzw. dem Schließen via Taskbar ?

Cheers,
Lukas

Matze 14. Apr 2004 14:46

Re: Nach Schließen mit 'X' in die TNA
 
Schreib folgendes ins OnCloseQuerry:

Delphi-Quellcode:
CanClose := false;
Application.Minimize;
Müsste gehen.

Meflin 14. Apr 2004 14:47

Re: Nach Schließen mit 'X' in die TNA
 
erfahrungsgemäß kannst du das canclose auch weglassen

fxbasic 14. Apr 2004 14:48

Re: Nach Schließen mit 'X' in die TNA
 
Hi, einfach beim Form.close

Delphi-Quellcode:
action := caNone;
// Befehl für TNA
Gruß, fxbasic

fxbasic 14. Apr 2004 14:48

Re: Nach Schließen mit 'X' in die TNA
 
Drei mehr oder weniger auf einmal, sensationell! :mrgreen:

Die Muhkuh 14. Apr 2004 14:48

Re: Nach Schließen mit 'X' in die TNA
 
Einfach ins OnCloseQuery der Form:

Delphi-Quellcode:
CanClose := False
// Und dann Code für die TNA
So kannst du halt die Form NIE schließen. Aber wenn du meinen winz-Code erweiterst dann ( mit einer IF-Abfrage ) kannst du schließen.

//Edit: OH GOTT :shock: bin ich spät dran.

iddqd 14. Apr 2004 15:03

Re: Nach Schließen mit 'X' in die TNA
 
Wow. Die Reaktionszeit hier kann sich sehen lassen :thuimb:

Danke,
Lukas

MathiasSimmack 14. Apr 2004 15:07

Re: Nach Schließen mit 'X' in die TNA
 
Okay, dann bin ich jetzt mal der, der die kritischen Fragen stellt:
  1. Das Programm lässt sich hoffentlich trotzdem irgendwie beenden?
  2. Ist das ein besonderes Schutzprogramm, dass unbedingt aktiv bleiben muss, auch wenn der User versehentlich den X-Knopf anklickt?

Will sagen, ich kenne so was eigentlich nur von Firewalls, usw., bei denen ich das erwarte, dass sie sich nicht einfach beenden lassen. ;)

Matze 14. Apr 2004 15:08

Re: Nach Schließen mit 'X' in die TNA
 
Zitat:

Zitat von MathiasSimmack
Will sagen, ich kenne so was eigentlich nur von Firewalls, usw., bei denen ich das erwarte, dass sie sich nicht einfach beenden lassen. ;)

Bei KaZaA ist es auch so . :stupid:

MathiasSimmack 14. Apr 2004 15:12

Re: Nach Schließen mit 'X' in die TNA
 
Das ist aber kein Firewall, oder? ;)
Aber gut, da will die S(ch)pyware aktiv bleiben, das kann man verstehen ... :mrgreen:

Matze 14. Apr 2004 15:14

Re: Nach Schließen mit 'X' in die TNA
 
Zitat:

Zitat von MathiasSimmack
Das ist aber kein Firewall, oder? ;)

Deshalb sag ich's ja. ;)

Zitat:

Zitat von MathiasSimmack
Aber gut, da will die S(ch)pyware aktiv bleiben, das kann man verstehen ... :mrgreen:

Hmm, du könntest recht haben. :lol:

iddqd 15. Apr 2004 16:02

Re: Nach Schließen mit 'X' in die TNA
 
Hi nochmal!

Das Programm kann man dann via einem PopMenu beenden -> rechtsclick auf TNA und dann auf Beenden oder so !
(wie man das von vielen Programmen kennt, und ist eigentlich auch besser so !)

Jetzt hab ich aber folgendes Problem mit

Code:
Action := caNone;
Application.Minimize;
, weil nämlich das Abmelden (W2K) nicht mehr funzt. (Vermutlich weil sich mein Prog nicht mehr herkömmlich schließen lässt !?) :wall:

Matze 15. Apr 2004 16:32

Re: Nach Schließen mit 'X' in die TNA
 
Und was passiert, wenn du anstatt
Delphi-Quellcode:
Action := caNone;
das OnCloseQuerry-Ereignis nimmst und
Delphi-Quellcode:
if not BeendenErlaubt then
CanClose := false;
hineinschreibst?

BeendenErlaubt ist eine einfache boolsche Variable, dessen Wert du auch true setzen muss, wenn du im Tray auf "beenden" klickst. So als Beispiel.

Mirilin 15. Apr 2004 16:37

Re: Nach Schließen mit 'X' in die TNA
 
:hi:

oder einfacher :
Delphi-Quellcode:
CanClose := BeendenErlaubt
mfg Tobias

Matze 15. Apr 2004 16:44

Re: Nach Schließen mit 'X' in die TNA
 
Dass ich immer so umständlich denke, wahrscheinlich kann ich all meine Quelltexte auf 1/3 verküzen. :lol:

iddqd 15. Apr 2004 17:21

Re: Nach Schließen mit 'X' in die TNA
 
Sorry, aber ich meine etwas anderes ....

Ich habe kein Problem mit dem Beenden des Programmes an sich. Unter "Beenden" im PopMenu nach rechtsklick auf TNA steht folgender Code:
Code:
application.terminate;
, was das Porgramm samt Icon in der TNA beendet.

Beim Abmelden des Users von W2K dürfte jedoch die Close anstatt der Terminate Methode für alle aktiven Programme aufgerufen werden, weswegen gar nichts passiert und ich zuerst das Programm manuell beenden muß bevor es geht !

:pale:
Lukas

Niko 15. Apr 2004 18:22

Re: Nach Schließen mit 'X' in die TNA
 
In dem Punkt verstehe ich das Verhalten von Delphi-Anwendungen ehrlich gesagt auch nicht ganz.
Trotzdem gibt es eine Lösung für dein Problem.
Verwende wie schon von Matze/Mirilin beschrieben eine Variable BeendenErlaubt in OnCloseQuery. Dann musst du nur noch dafür sorgen, dass sie auch beim Beenden durch Windows auf true gesetzt wird:
Delphi-Quellcode:
procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
begin
  if Msg.message = WM_CLOSE then
    BeendenErlaubt := true;
  Handled := false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMessage := AppMessage;
end;

Basic-Master 15. Apr 2004 23:46

Re: Nach Schließen mit 'X' in die TNA
 
ich benutz inmoment die tray-komponente von den jedi's und den code hier beim clicken auf das x (im onclose-event):
Delphi-Quellcode:
action := caHide;
jvtrayicon.Active := true;
jvtrayicon1.HideApplication;
... :drunken: ...

iddqd 16. Apr 2004 10:21

Re: Nach Schließen mit 'X' in die TNA
 
@Niko:

Danke für deine Mühen, geholfen hat es leider auch nicht. Das Programm bleibt stur wie ein Bock erhalten :(
Macht nichts ... ich machs jetzt eh' ganz anders !

Niko 16. Apr 2004 17:01

Re: Nach Schließen mit 'X' in die TNA
 
:gruebel: Versteh ich eigentlich nicht; bei mir hat es so funktioniert (Delphi 7).


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