Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FormActivate gegenstück (https://www.delphipraxis.net/132730-formactivate-gegenstueck.html)

uhuleitz 18. Apr 2009 12:42


FormActivate gegenstück
 
Hallo liebe delphi kenner^^

Ich habe mich gefragt, ob es auch eine Art Gegenstück zum FOrmactivat gibt, sodass wenn die exe geschlossen wird, eben eine nachricht angezeigt wird oder oder oder

bisger musste ich das über einen button regeln, der sich beenden nannte...


aber wenn die leute auch X klicken, wird ja mein befehl nciht umhesetzt...


WIe kann cih das also erreichen?


Vielen Dank schonmal für eure Antworten^^

himitsu 18. Apr 2009 12:51

Re: FormActivate gegenstück
 
Delphi-Referenz durchsuchenOnDeactivate? :angel2:


oder gefällt dir Delphi-Referenz durchsuchenOnCloseQuery Delphi-Referenz durchsuchenOnClose Delphi-Referenz durchsuchenOnDestroy


wie dem auch sei ... schau dir doch einfach mal im OI an, welche Ereignisse dir deine Form so bietet? :zwinker:

uhuleitz 18. Apr 2009 19:54

Re: FormActivate gegenstück
 
ja danke, werde diese begriffe mal durchsuchen^^

aber ich dachte eher an ne direkte befehl auflistung^^

uhuleitz 18. Apr 2009 21:28

Re: FormActivate gegenstück
 
danke für die begriffe, habe diese in der help funktion durchgelesen, aber bin ncith sicher ob das richtige für mcih dabei ist, bzw wie ich es anwenden soll..

ich möchte, dass wenn die form geschlossen wird durch click auf x (oben rechts an der form in rot)

dass dann eine shell execute ausgeführt wird, zb auf die seite google.de



wie baue ich einen solchen befehl und welchen ein???

jbg 19. Apr 2009 09:54

Re: FormActivate gegenstück
 
Zitat:

Zitat von uhuleitz
FOrmactivat

Ich hoffe, du weißt, dass OnActivate nicht nur nach dem Anzeigen des Formulars angezeigt wird, sondern auch noch zu anderen Gelegenheiten (wechsel zwischen zwei geleichberechtigten Formularen). OnActivate ist kein "OnAfterShow".

uhuleitz 19. Apr 2009 11:13

Re: FormActivate gegenstück
 
nein, von Onactivate habe ich ncoh ncihts gehört, bin noch nciht soo sehr vertraut mit Delphi...

meine Frage war ja aber, ob es eine funktion gibt, die etwas ausführt wenn das programm geschlossen wird, und falls ja, wie ich einen solchen befehl zu formulieren habe

thkerkmann 19. Apr 2009 11:26

Re: FormActivate gegenstück
 
Ich empfehle Dir für deinen Zweck mal das OnDestroy Event.
Das wird aufgerufen, wenn die Anwendung geschlossen wird, egal ob über das X oben rechts, oder ob Du im Programm auf einen Button mit Close reagierst.

Versuch macht klug. :-D

jaenicke 19. Apr 2009 11:31

Re: FormActivate gegenstück
 
OnClose ist eigentlich das richtige. Bei OnDestroy wird das Formular bereits zerstört. Und bei OnCloseQuery kann man das Schließen verhindern.

uhuleitz 19. Apr 2009 11:45

Re: FormActivate gegenstück
 
okay, und welchen "Namen" würde meine procedure tragen?

also ganz normal, wie formactivate einfach oder???

stelle cih mcih doof an oder sehe ich einfach cnith wie es lauten muss?

DeddyH 19. Apr 2009 11:49

Re: FormActivate gegenstück
 
Klick auf Dein Form, wechsle im OI auf den Reiter "Ereignisse" und mache einen Doppelklick auf OnClose oder OnCloseQuery. Siehe da, da ist der Code, den Du nur noch mit Inhalt füllen musst :zwinker:.

Hawkeye219 19. Apr 2009 11:54

Re: FormActivate gegenstück
 
Hallo,

auch die Verwendung von OnClose ist nicht unproblematisch: klick

Gruß Hawkeye

uhuleitz 19. Apr 2009 12:05

Re: FormActivate gegenstück
 
also mein code lautet nun:


procedure TTravianSammlung.closing(Sender: TObject);
begin
shellexecute(handle,'open','http://uhuleitz.kleine-stadt.com',nil,nil,sw_show);
end;


nur leider passiert ncihts, wenn ich auf das schliessen x drücke

DeddyH 19. Apr 2009 12:06

Re: FormActivate gegenstück
 
Wo kommt denn das Closing her? Hast Du mein letztes Posting nicht gelesen?

uhuleitz 19. Apr 2009 12:07

Re: FormActivate gegenstück
 
na doch^^

bei klick auf das ondeactivate musste ich eine caption angeben habe diese eben closing genannt...

name ist doch eig egal oder?

himitsu 19. Apr 2009 12:10

Re: FormActivate gegenstück
 
Zitat:

Zitat von DeddyH
Wo kommt denn das Closing her? Hast Du mein letztes Posting nicht gelesen?

Der Name ist vollkommen egal (erkönnte es ebenfalls Opening nennen, auch wenn's sinnlos und unverständlich wär),
solange die Ereignisprozedur dem Ereignis zugeordnet ist.

jaenicke 19. Apr 2009 12:11

Re: FormActivate gegenstück
 
Schreibs bei OnClose hin, dann klappt das auch... Doppelklicke einfach auf OnClose...

uhuleitz 19. Apr 2009 12:37

Re: FormActivate gegenstück
 
Zitat:

Zitat von himitsu
Zitat:

Zitat von DeddyH
Wo kommt denn das Closing her? Hast Du mein letztes Posting nicht gelesen?

solange die Ereignisprozedur dem Ereignis zugeordnet ist.

Genau hier scheint mein problem zu sein, denn es kommt keine fehlermeldung derart, dass ich eine seltsame procedur habe oder dass diese unbenutzt wäre...

wie stelle ich also fest, dass sie richtig zugeordnet ist?

DeddyH 19. Apr 2009 12:39

Re: FormActivate gegenstück
 
Mach einen Doppelklick im OI, dann wird das Ereignis auch zugeordnet.

himitsu 19. Apr 2009 12:50

Re: FormActivate gegenstück
 
Zitat:

Zitat von uhuleitz
wie stelle ich also fest, dass sie richtig zugeordnet ist?

Indem du in den OI schaust und nachsiehst ob deine Prozedur dem entsprechenden Ereignis zugeordnet ist.

mz23 25. Jan 2010 18:03

Re: FormActivate gegenstück
 
Zitat:

Zitat von uhuleitz
danke für die begriffe, habe diese in der help funktion durchgelesen, aber bin ncith sicher ob das richtige für mcih dabei ist, bzw wie ich es anwenden soll..

ich möchte, dass wenn die form geschlossen wird durch click auf x (oben rechts an der form in rot)

dass dann eine shell execute ausgeführt wird, zb auf die seite google.de



wie baue ich einen solchen befehl und welchen ein???


@uhuleitz

Habe mir bisher immer so geholfen, dadurch wird der Abbrecher
mit dem [X] Knopf auch dazu gezwungen, die Routine zu durchlaufen,
als wenn er den [Exit] Button angeklickt hätte.

Delphi-Quellcode:

bExit : TButton;
...
private
   var ExitIsCalled : boolean;
...

function TForm1._beforeExit:boolean;
begin
// add a query before close application here
{-}
result:=True; // or always close app
end;

procedure TForm1.bExitClick(Sender: TObject);
begin
ExitIsCalled:=_beforeExit;
if ExitIsCalled then Form1.Close;
{-}
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
ExitIsCalled:=False;
...
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ExitIsCalled then begin
   {bExit was already pressed, user want to exit now}
end else begin
   {bExit not pressed, but [X]-button be pressed}
   ShowMessage('Please Use In Future Times The ExitButton - Okay:)');
   if _beforeExit then {okay, closing form now}
                  else Action:=caNone; {stop closing form}
end;
end;
Mit freundlichen Grüßen
Manfred Zenns


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