Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Formular während laufzeit erstellen
Lucky - Mi 03.09.08 15:50
Titel: Formular während laufzeit erstellen
hallo,
ich habe mal wieder eine Frage u. zwar ich erstelle Form2 erst während der laufzeit u. rufe über dieses Form3(->zum Sortieren meines grid->befindet sich auf form2)auf. Nun bekomme ich wenn ich vom Form3 wieder auf form2 zugreifen möchte oder von diesem form(form2) einen parameter benutzen möchte einen fehler. "Zugriffsverletzung bei Adresse..."
Geht das net? bzw. muss ich wenn ich das so aufrufe auf irgendetwas besonders achten?
Vielen Dank schon mal im Voraus
mfg chris
Gausi - Mi 03.09.08 15:56
Wie erzeugst du denn die Form zur Laufzeit? Und wie greifst du von Form3 aus darauf zu?
Normalerweise sollte das nämlcih klappen.
Lucky - Mi 03.09.08 16:00
erstelle das form2 so tform2.Create(Application);
u. wollte ich einfach z.b. auf die variable form2.tabelle zugreifen...->die tabelle ist natürlich im public teil deklariert...
Gausi - Mi 03.09.08 16:04
Probiers mal mit Form2 := tform2.Create(Application);
Lucky - Mi 03.09.08 16:19
ah sieht gut, vielen dankt :flehan:
Lucky - Do 04.09.08 08:08
jetzt hab ich doch nochmal ne frage, aber eig. nur der verständlichkeitshalber8)
u. zwar warum funktioniert das so: Form2 := tform2.Create(Application);
u. nicht rein so: tform2.Create(Application); ??
Thanks schon mal im Voraus
Dunkel - Do 04.09.08 10:12
Dir fehlen wohl die Grundlagen der OOP, mach Dich da mal ein wenig schlau!
Kurz zusammengefasst: mit tform2.Create(Application); rufst Du den Construktor der TForm2-Klasse auf. Dieser Constructor legt dann eine Instanz der Klasse an, die Instanz gibt der Constructor als Rückgabewert zurück. Da Du den Rückgabewert einfach verfallen lässt, hast Du später auch nicht die Möglichkeit auf die Instanz zuzugreifen.
Tilman - Do 04.09.08 18:43
Nur der Vollstänidgkeit halber: Theoretisch ginge es noch über TAplication.components ;)
Yogu - Do 04.09.08 19:35
... oder du setzt einfach die Eigenschaft Visible des Formulars auf False und zeigst es später zur Laufzeit mit Form2.Show an. In deinem Fall sieht es so aus, als ob sowieso nur ein Form benötigt wird. Das kann man dann ohne Probleme gleich beim Programmstart erstellen lassen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!