Objekt Eigenschaften übergeben

23/10/2009 - 13:25 von Roland | Report spam
Hi NG,

wenn ich z.B. einem Grid eine Tabelle zuweisen möchte, kann ich den "Pfad"
zum Grid ja so definieren.

Form.Ini
oGrd = ThisForm.PageFram1.Page3.Grid2
oGrd.RecordSource = "Test"

Nun die Frage.
Gibt es eine Möglichkeit den kpl. "Pfad" in der Eigenschaft.Init von Grid2
auszulesen und an eine Variable z.B. oGrd zu übergeben ?

mit
x = This.name bekomme ich zwar den Namen,
aber wie bekomme ich "ThisForm.PageFram1.Page3.Grid2"

Gruß Roland
 

Lesen sie die antworten

#1 Bernhard Sander
23/10/2009 - 14:07 | Warnen spam
Hallo Roland,

wenn ich z.B. einem Grid eine Tabelle zuweisen möchte, kann ich den "Pfad"
zum Grid ja so definieren.

Form.Ini
oGrd = ThisForm.PageFram1.Page3.Grid2
oGrd.RecordSource = "Test"

Nun die Frage.
Gibt es eine Möglichkeit den kpl. "Pfad" in der Eigenschaft.Init von Grid2
auszulesen und an eine Variable z.B. oGrd zu übergeben ?

mit
x = This.name bekomme ich zwar den Namen,
aber wie bekomme ich "ThisForm.PageFram1.Page3.Grid2"



Du könntest im Init des Grid z.B. einer Form-Eigenschaft oder auch einer
Variablen einfach nur this zuweisen:
thisform.oDasGrid = this

Dann kannst Du von überall wo diese Formeigenschaft/Variable verfügbar ist
direkt auf das Grid zugreifen:
thisform.oDasGrid.RecordSource="blabla"
Dafür musst Du den kompletten Objektpfad nie wissen.

Ich habe sowas in der umgekehrten Richtung verwendet. Die Elemente eines Grids
wissen nicht so genau, zu wem sie gehören und eine Variable der Art thisGrid
gibt es ja nicht. Daher habe ich im Init dieser Element eine kleine Schleife
eingebaut, die die Objekthierarchie abklappert, bis das nàchsthöhere Grid
gefunden wird. Dessen Referenz speichere ich dann in einer Eigenschaft
Element.oThisGrid und kann dann in diversen Methoden der Gridelemente viel
leichter auf das zustàndige Grid zugreifen.

Ein wichtiger Punkt sei noch berücksichtigt:
Wenn man derartige Referenzen speichert sollte man unbedingt dafür sorgen, dass
beim Auflösen der betroffenen Objekte diese Referenzen auch wieder gelöscht
werden, also spàtestens im Destroy, besser noch vor dem Destroy. Der beste Ort
hàngt ab von der jeweiligen Konstruktion.
Wenn man das nicht tut, làuft man Gefahr dass Referenzen hàngenbleiben. Das kann
zur Konsequenz haben, dass man eine Form nicht oder nicht vollstàndig löschen
kann. Die hàngt dann u.U. irgendwo im Hintergrund und unsichtbar rum und stört
ungemein!

Gruß
Bernhard Sander

Ähnliche fragen