Autor Beitrag
Lucky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

XP
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

XP
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 480

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Mi 03.09.08 16:04 
Probiers mal mit Form2 := tform2.Create(Application);

_________________
We are, we were and will not be.
Lucky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

XP
Delphi 7
BeitragVerfasst: Mi 03.09.08 16:19 
ah sieht gut, vielen dankt :flehan:
Lucky Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

XP
Delphi 7
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 682

Mac OS X Snow Leopard
Xcode 3.1
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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.