Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: anweisungen direkt auf formular durchführen

  Alt 15. Mär 2012, 07:12
OnCreate wird ausgeführt, wenn das Formular erzeugt wird. Falls Du die automatische Formularerstellung eingeschaltet hast, werden die Formulare beim START des Programmes erzeugt. Dann ist es vermutlich etwas zu früh, die Listbox mit Daten zu befüllen.

OnShow wird immer aufgerufen, bevor das Formular sichtbar wird.

OnActivate wird immer aufgerufen, wenn das Formular angeklickt wird (und vorher im Hintergrund war)

Du musst vielleicht ein wenig aufpassen, denn die beiden Events werden also während der Lebensdauer eines Formulars öfter aufgerufen.

Wenn ich etwas nur beim erstmaligen Anzeigen eines Formulars ausführen will, merke ich mir einfach, ob die Routine schon durchlaufen wurde, etwa so:

Delphi-Quellcode:
Procedure TMyForm.OnActivate (Sender : TObject);
Begin
  If fOnActivateWurdeSchonDurchlaufen Then exit; // fOnActivate... ist ein privates Feld der TMyForm-Klasse
  
  InitialisiereEinmaligIrgendwelcheSachen();

  fOnActivateWurdeSchonDurchlaufen := True;
End;
So, OnActivate wird zwar mehrfach aufgerufen, aber InitialisiereEinmaligIrgendwelcheSachen() wird maximal 1x aufgerufen.
  Mit Zitat antworten Zitat