| Autor |
Beitrag |
Lucky
      
Beiträge: 84
XP
Delphi 7
|
Verfasst: Mi 03.09.08 15:50
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
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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.
_________________ We are, we were and will not be.
|
|
Lucky 
      
Beiträge: 84
XP
Delphi 7
|
Verfasst: 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
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 03.09.08 16:04
Probiers mal mit Form2 := tform2.Create(Application);
_________________ We are, we were and will not be.
|
|
Lucky 
      
Beiträge: 84
XP
Delphi 7
|
Verfasst: Mi 03.09.08 16:19
ah sieht gut, vielen dankt 
|
|
Lucky 
      
Beiträge: 84
XP
Delphi 7
|
Verfasst: 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
      
Beiträge: 682
Mac OS X Snow Leopard
Xcode 3.1
|
Verfasst: 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.
_________________ Ich streite einsam mich mit dieser Oberflächenwelt
Gutes sei ein löblich Brot von dem ich zehre - bis zum Tod [Das Ich - Im Ich]
|
|
Tilman
      
Beiträge: 1405
Erhaltene Danke: 51
Win 7, Android
Turbo Delphi, Eclipse
|
Verfasst: Do 04.09.08 18:43
Nur der Vollstänidgkeit halber: Theoretisch ginge es noch über TAplication.components 
_________________ Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: 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.
|
|