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 :arrow: 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