Funktionsaufruf

Yudansha

Grünschnabel
Hi, hab ne Frage:
Wenn ich im Borland ein Projekt angelget habe und es starte führt er ja als erstes automatisch den Formload aus.
Alles was danach kommt sind ja Ereignisse, z.B. ButtonClick usw.
Ich will aber jetzt eine Funktion Starten die immer Automatisch nach dem Formload starten soll, weiß aber nicht wie das Funktionieren soll. Habe es Versucht in den Formload zu machen, jedoch kann ich dann ja nicht auf die Buttons uns sonstiges zugreifen, da dies ja noch nicht abgeschlossen ist.
Wäre schön wenn mir jemand helfen könnte.
Danke schon mal.

mfg
 
Du suchst das Creation/Load/Enter-Erreignis des Forms.
 
Zuletzt bearbeitet:
Nee, wo die Form geladen wird weiß ich ja.
Ich möchte wissen, wie ich eine Funktion nach dem laden der Form ausführn kann.
 
Hallo,
Code:
void deineFunktion()
{
 ...
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
{
     deineFunktion();
}

In dem Konstruktor sind alle Form-Komponenten schon geladen und du kannst in deiner Funktion ohne weiteres schon in ListBoxen einfügen oder sowas.
Da kommt keine Meldung das diese noch nicht existiert.
Ich vermute das da dein Denkproblem liegt ;)

MfG Turri
 
Hi Turri, danke erstmal für die Antwort.
Aber glaub das hilft mir nicht weiter, denn wie ich ne Funktion anlege weiß ich.
Ich brauch jedoch ne Funktion die automatis startet, denn so wie deine Funktion aussieht, muss ich diese ja erst irgendwo aufrufen.
Verstehst du was ich meine
Die Funktion muss automatisch starten, na dem erzeugen der Form starten.

mfg
 
Ich frag mich nur gerade nach dem Sinn, was haste denn vor?
Wenn du sagst das eine Funktion gerufen werden soll wenn der Form komplett ist, dann mach das so. In meinem Beispiel wird die dann automatisch gerufen wenn...
Eine eigene "Event Sink" zu hackeln scheint mir hier unabgebracht.

MfG Turri
 
Die Funktion die ich habe ist eine Endlos Funktion, muss immer wieder durchlaufen, gleichzeitig muss ich aber auch aufs Form zugreifen, was bei mir nur ein Icon in der Taskleiste ist.
So wie du das gemacht hast muss doch die Funktion erst irgendwo anders aufgerufen werden, oder nicht?
Ich hab es nämlich so probiert und es nacht Funktioniert.
Ich habe es auch schon mit dem Event OnActivate von der Form ausprobiert, jedoch konnte ich dann nicht mehr auf die Form zu greifen.
 
Na wenn die Funktion immer wieder aufgerufen werden soll, dann leg dir doch nen Timer auf dein Form, und starte im Timer immer die Funktion.
Den Timer lässt du im Konstruktor starten.
Das Intervall des Timers ist ja einstellbar.

MfG Turri
 
Oder wenn es nicht ganz sooo zeitkritisch ist, dann kann deine Endlosfunktion ja im OnIdle der Applikation ablaufen. Da brauchst du nur die entsprechende OnIdle im OnCreate des Hauptformulars umbiegen. Das ist etwas einfacher als mit einem Timer aber dafür wird der OnIdle auch nicht in millisekundengenau gleichen Intervallen aufgerufen:

Code:
void __fastcall TForm1::OnIdle(TObject* Sender, bool& Done)
{
  EndloseFunktion();
}

...

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Application->OnIdle = OnIdle;
}

Wäre aber tatsächlich hilfreich, wenn du genauer sagen könntest, welche Funktionalität bei dir geplant ist, denn wie du siehst gibt es schon einige verschiedene Möglichkeiten, eine Funktion automatisch und ständig aufrufen zu lassen.


Nachtrag: Sorry für das Icon im Post, da habe ich mich verklickt.
 
Der Timer läuft dafür auch wenn man im Form rumklickert, wie nen paralleler Thread ;)
OnIdle wird doch nur gerufen wenn man wie gesagt "idlet" und nichts macht am Form oder?
 

Neue Beiträge

Zurück