Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   anweisungen direkt auf formular durchführen (https://www.delphipraxis.net/167131-anweisungen-direkt-auf-formular-durchfuehren.html)

JP29 14. Mär 2012 17:19

anweisungen direkt auf formular durchführen
 
hey leute ,
gibt es eine möglichkeit, dass ich auf einem formulare ohne das etwas passiert ist schon sachen gemacht werde, also bspw. wenn ich ein neues formular öffne, dass dann bestimmte einträge in eine listbox o.ä. gemacht werden und die werte aus variablen sind...
ich möchte dabei aber nicht die werte durch eine prozedur auf einem anderen formular machen

danke :)

DeddyH 14. Mär 2012 17:22

AW: anweisungen direkt auf formular durchführen
 
OnShow, OnActivate, OnCreate etc., was in Deinem Fall am Besten passt.

Bummi 14. Mär 2012 17:24

AW: anweisungen direkt auf formular durchführen
 
Du hast jede Menge Events an die Du etwas anhängen kannst....
OnCreate,OnShow,OnActivate etc.
Du kannst den Konstruktor überschreiben, einen Timer verwenden und und und und ....

JP29 14. Mär 2012 18:27

AW: anweisungen direkt auf formular durchführen
 
ich hab jetzt mal danach gegoogelt und kam dann nur auf klassenerstellung etc., damit bin ich aber noch nicht vertraut und ein verständnisvolles tutorial welches meinem problem weiterhelfen könnte habe ich nicht gefunden , könntet ihr mir jetzt mal ein beispiel liefern, wie ich das z.b. praktisch umsetzen könnte

Coffeecoder 14. Mär 2012 18:35

AW: anweisungen direkt auf formular durchführen
 
Zitat:

Zitat von JP29 (Beitrag 1156593)
ich hab jetzt mal danach gegoogelt und kam dann nur auf klassenerstellung etc., damit bin ich aber noch nicht vertraut und ein verständnisvolles tutorial welches meinem problem weiterhelfen könnte habe ich nicht gefunden , könntet ihr mir jetzt mal ein beispiel liefern, wie ich das z.b. praktisch umsetzen könnte

Ich empfehle dir das Tutorial von Luckie anzusehen: http://www.michael-puff.de/Programmi..._in_Delphi.pdf.

JP29 14. Mär 2012 18:57

AW: anweisungen direkt auf formular durchführen
 
ok aber ich weiß nicht wie ich das auf mein problem anwenden kann

DeddyH 14. Mär 2012 19:04

AW: anweisungen direkt auf formular durchführen
 
Vielleicht haben wir das Problem auch noch nicht verstanden. Nimm doch testhalber mal ein Formular mit einer ListBox, wechsel im Objektinspektor auf "Ereignisse" und mach einen Doppelklick neben "OnShow". Und da trägst Du dann ein:
Delphi-Quellcode:
var
  i: integer;
begin
  ListBox1.Items.BeginUpdate;
  try
    ListBox1.Items.Clear;
    for i := 1 to 100 do
      ListBox1.Items.Add(IntToStr(i));
  finally
    ListBox1.Items.EndUpdate;
  end;
end;
Oder meintest Du etwas völlig anderes?

JP29 14. Mär 2012 19:09

AW: anweisungen direkt auf formular durchführen
 
ne ihr wart richtig...genau so hab ich es gemeint...hatte oncreate verwendet ging dann nämlich nicht

find ich echt nett dass ihr so geduldig seid :-D
danke

Furtbichler 15. Mär 2012 07:12

AW: anweisungen direkt auf formular durchführen
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf