Seite 1 von 1
Parent ermitteln
Verfasst: So, 13. Jan 2019 18:54
von Manfred
ich habe ein Objekt1, was von einer Klasse erbt. Diese Klasse hat noch andere Objekte. Das Objekt1 hat eine Methode, in der die anderen Objekte aufgerufen werden müssen. Da beide den gleichen Parent haben, müßte doch darüber was machbar sein? Aber wie?
Re: Parent ermitteln
Verfasst: So, 13. Jan 2019 19:12
von Martin Altmann
Analog des Beispiels bei XbpCombobox
schau Dir mal die Hilfe dazu an:
Code: Alles auswählen
oCombo := XbpCombobox():new()
oCombo:type := XBPCOMBO_DROPDOWN
oCombo:create( ,, {50, 100}, {200, 150} )
// Link data from entry field to LOCAL variable
oCombo:XbpSLE:dataLink := {|x| IIf( x==NIL, cDay, cDay := x ) }
oCombo:XbpSLE:setData()
Du siehst, dass dort explizit die jeweilige Parentklasse mit angesprochen wird.
Viele Grüße,
Martin
Re: Parent ermitteln
Verfasst: So, 13. Jan 2019 19:17
von Manfred
ich habe eine Klasse dialog, diese Klasse hat mehrere Objekte in sich. Ein Objekt1 hat eine Methode, in der die anderen Objekt aufgerufen werden müßten. Die sind aber nicht Teil des Objekt1, sondern Teil der Klasse Dialog, der auch Objekt1 angehört. Jetzt dachte ich, da alle Objekte zu der Klasse Dialog gehören müßte man irgendwie innerhalb der Obkekt1 Methode an die anderen Objekte herankommen, in dem man ermittelt, wie die klasse von Objekt1 heißt. DAs scheint aber doch nur eine Schnapsidee gewesen zu sein.
Re: Parent ermitteln
Verfasst: Mo, 14. Jan 2019 2:08
von AUGE_OHR
hi,
Manfred hat geschrieben: Da beide den gleichen Parent haben, müßte doch darüber was machbar sein? Aber wie?
wenn es wirklich der Parent wäre würde man mit o:SetParent() ihn finden.
nun sprichst du aber von einer CLASS und weiter "Objecten".
Manfred hat geschrieben: ↑So, 13. Jan 2019 19:17
Jetzt dachte ich, da alle Objekte zu der Klasse Dialog gehören müßte man irgendwie innerhalb der Obkekt1 Methode an die anderen Objekte herankommen, in dem man ermittelt, wie die klasse von Objekt1 heißt. DAs scheint aber doch nur eine Schnapsidee gewesen zu sein.
du musst es schon "vorbereiten" z.b. so
Code: Alles auswählen
CLASS AAA FROM XbpDialog
METHOD AAA:Init( oParent, oOwner, aPos, aSize, aPres, lVisible )
::B1 := BBB() :new( ::drawingArea ... )
::B1:xParent := Self
::C1 := CCC() :new( ::drawingArea ... )
::C1:xParent := Self
CLASS BBB FROM XYZ
VAR xParent
INLINE METHOD BBB:Do_1()
xParent:C1:DO_2()
RETURN
ENDCLASS
CLASS CCC
VAR xParent
INLINE METHOD CCC:Do_2()
// mach was
RETURN
ENDCLASS