![]() |
Unterschied: OnActivate und OnCreate
Klärt mich mal bitte auf was genau der Unterschied ist, bin mir da nicht sicher ob ich was in OnActivate oder in OnCreate meines Formulares reincoden soll .. thx
|
Re: Unterschied: OnActivate und OnCreate
wieder den focus bekommen und kreieren
|
Re: Unterschied: OnActivate und OnCreate
OnCreate wird beim Erstellen des Forms aufgerufen, OnActivate jedes Mal sobald es den Focus erhält (AFAIK, ich kann mich aber auch täuschen)
Greetz alcaeus [edit]Zu langsam...[/edit] |
Re: Unterschied: OnActivate und OnCreate
Wie die Bezeichnungen schon sagen: OnCreate = beim Create, also im Constructor und somit nur einmal. OnActivate eben beim aktivieren und kanns somit mehr als einmal aufgerufen werden
|
Re: Unterschied: OnActivate und OnCreate
Leute, ihr seid zu schnell für diese Welt .. =) rasend schnelle Antworten hier im Forum.. big up!! .. danke habs gecheckt...
aber .. ehem .. da wir schon mal gerade dabei sind eine Folgefrage: Warum funktioniert die close-anweisung darin nicht?
Code:
:?:
procedure TForm1.FormCreate(Sender: TObject);
begin if not fileexists('main.exe') then showmessage('Programm muss sich im Hauptverzeichnis befinden'); close; end; |
Re: Unterschied: OnActivate und OnCreate
Close schließt das Form, welches zum Zeitpunkt von Create noch nicht existiert. Löse es über einen Timer, der in der OnShow eingeschaltet wird.
Greetz alcaeus |
Re: Unterschied: OnActivate und OnCreate
stell dir vor das form create initialisiert nur ;)
|
Re: Unterschied: OnActivate und OnCreate
du kannst auch ein Application.Terminate machen, dann schliests sich das programm auch (ich denke, das is das was du willst, oder?)
|
Re: Unterschied: OnActivate und OnCreate
Zitat:
Code:
procedure TForm1.FormCreate(Sender: TObject);
begin if not fileexists('main.exe') then showmessage('Programm muss sich im Hauptverzeichnis befinden'); form1.OnShow.timer1.Interval[1000] // <--- wie jetzt hier mit close?? end; |
Re: Unterschied: OnActivate und OnCreate
Zitat:
-edit- lol nur application.terminate ist ausreichend stimmts ?? =) -edit- |
Re: Unterschied: OnActivate und OnCreate
leider falsch...
Delphi-Quellcode:
Im Objektinspektor musst du den Timer natürlich ausschalten
procedure TForm1.Timer1Timer(Sender: TObject);
begin Timer1.Enabled := False; if not fileexists('main.exe') then showmessage('Programm muss sich im Hauptverzeichnis befinden'); end; procedure TForm1.FormShow(Sender: TObject); begin Timer1.Interval := 250; Timer1.Enabled := True; end; Greetz alcaeus |
Re: Unterschied: OnActivate und OnCreate
hmmm... jetzt mal ne gute frage... ich hab jetzt das programm im hauptverzeichnis... starte es und es schliesst sich direkt wieder, aber genau das will ich doch verhindern mit der if-abfrage??? hab es mal mit dem dem application.terminate versucht:
Code:
wieso schließt sich mein programm direkt wieder wenn die if bedingung ja garnicht relevant ist sobald sich die exe im hauptverzeichnis befindet ?? ... brauch ich noch sowas wie ein "else machnormalweiter" ?? sorry aber delphi hats wieder gepackt mich zu verwirren .. :gruebel:
procedure TForm1.FormCreate(Sender: TObject);
begin if not fileexists('main.exe') then showmessage('muss sich im hauptverzeichnis befinden'); begin application.terminate; // <--- soll sich nur schließen wenn programm nicht im hauptverzeichnis end; end; |
Re: Unterschied: OnActivate und OnCreate
Delphi-Quellcode:
So müsste es gehen! :stupid:
procedure TForm1.FormCreate(Sender: TObject);
begin if not fileexists('main.exe') then begin showmessage('muss sich im hauptverzeichnis befinden'); application.terminate; // <--- soll sich nur schließen wenn programm nicht im hauptverzeichnis end; end; PS: Ich würde noch zur Sicherheit den Dateipfad zur Datei angeben, also so:
Delphi-Quellcode:
if not fileexists(ExtractFilePath(application.exename) + 'main.exe') then
begin [...] |
Re: Unterschied: OnActivate und OnCreate
Zitat:
geht doch gegen die delphi-logik ... :| |
Re: Unterschied: OnActivate und OnCreate
Hast du das mit dem Pfad auch eingebaut :?:
Weiß zwar nicht, ob das was bringt, aber kann ja sein! :roll: |
Re: Unterschied: OnActivate und OnCreate
nein ohne phad-angabe .. der phad ist ja individuell ... mich würde mal ne einfach lösung interessieren falls es jemand hinbekommnt mit application.terminate in dieser if bedingung wie dann der quellcode aussieht... wie gesagt.. programm schliesst sich auch wenn die if-bedingung wahr oder unwahr ist...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:27 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