Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine Funktion automatisch bei Programmstart starten lassen? (https://www.delphipraxis.net/30124-eine-funktion-automatisch-bei-programmstart-starten-lassen.html)

Ultimator 20. Sep 2004 15:42

Re: Eine Funktion automatisch bei Programmstart starten lass
 
Naja, man könnte ja eine Boolesche Variable ins OnShow-Ereignis einbauen, und diese beim ersten ausführen der Prozedur auf true stellen, etwa so:
Delphi-Quellcode:
procedure TDeineForm.FormShow(Sender: TObject);
var Ausgefuehrt: boolean;
begin
  if ausgefuehrt = false then
  begin
    //Deine Anweisungen
    Ausgefuehrt := true;
  end
  else
    ShowMessage('Deine Anweisungen wurden bereits ausgeführt.');
end;

Aenogym 20. Sep 2004 15:45

Re: Eine Funktion automatisch bei Programmstart starten lass
 
Zitat:

Zitat von Tyrael Y.
Zitat:

...das ganze nicht bei OnCreate sondern bei OnShow des Formulars reinzupacken - dann bist du auf der sicheren seite..

Vorsicht !!!!


OnShow wird nicht nur einmal ausgelöst.

Wenn du den Fokus auf ein anderes Fenster setzt und dann auf dein Fenster zurückspringst wird
OnShow wieder ausgelöst, deshalb vorsicht mit OnShow.
Man sollte genau gucken, was man vor hat und je nach dem das Ereignis auswählen.


mfg

das ist nicht ganz richtig. wenn ich ein anderes fenster aktiviere und dann wieder zu meiner anwendung zurückspringe, dann wird OnActivate ausgelöst. wenn ich mein fenster allerdings per [oh]TForm.Close;[/oh] schließe, es per [oh]TForm.Hide;[/oh] verstecke oder die eigenschaft Delphi-Referenz durchsuchenTForm.Visible auf False stelle, dann wird OnShow beim nächsten anzeigen wieder ausgelöst.

demnach wäre es die beste methode, den gewünschten code unmittelbar vor Application.Run; in der Projektdatei auszuführen.

Aenogym

alcaeus 20. Sep 2004 15:46

Re: Eine Funktion automatisch bei Programmstart starten lass
 
Zitat:

Zitat von Ultimator
Naja, man könnte ja eine Boolesche Variable ins OnShow-Ereignis einbauen, und diese beim ersten ausführen der Prozedur auf true stellen, etwa so:
Delphi-Quellcode:
procedure TDeineForm.FormShow(Sender: TObject);
var Ausgefuehrt: boolean;
begin
  if ausgefuehrt = false then
  begin
    //Deine Anweisungen
    Ausgefuehrt := true;
  end
  else
    ShowMessage('Deine Anweisungen wurden bereits ausgeführt.');
end;

Da liegst du falsch, denn die Variable ist lokal und wird bei jedem Aufruf von OnShow neu "erstellt". Du bräuchtest eine Klassenvariable dafür.

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr.
Seite 2 von 2     12   

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