Seite 1 von 1

Was bedeutet SUPER im CLASS Code ?

Verfasst: Do, 08. Dez 2016 11:58
von BIK
Hallo Hubert!
METHOD HBColorButton:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
SUPER:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
Was hat es mit dem SUPER in deinem Code auf sich?

Gruß,
Bernhard

Re: HBColorButton - Farbe im Buttontext !

Verfasst: Do, 08. Dez 2016 15:25
von brandelh
BIK hat geschrieben:Was hat es mit dem SUPER in deinem Code auf sich?
ruft die SUPER Klasse auf, also hier ::XbpPushButton()

Re: HBColorButton - Farbe im Buttontext !

Verfasst: Do, 08. Dez 2016 16:00
von BIK
Herzlichen Dank!!

Re: Was bedeutet SUPER im CLASS Code ?

Verfasst: Do, 08. Dez 2016 16:32
von brandelh
Ich hab das mal ausgelagert, da es mit dem ursprünglichen Thema nichts zu tun hatte und die Beiträge der Wissensdatenbank kurz sein sollen.

Re: Was bedeutet SUPER im CLASS Code ?

Verfasst: Do, 08. Dez 2016 16:52
von BIK
Danke auch fürs auslagern, wird nun doch etwas länger.
Man möge mir meine Unwissenheit verzeihen, aber ich muss da noch einmal nachhaken.

Ist das mit einer bestimmten Version verbunden? ( ich habe 1.90.331 )

Gruß,
Bernhard

Re: Was bedeutet SUPER im CLASS Code ?

Verfasst: Do, 08. Dez 2016 16:55
von brandelh
Ist das mit einer bestimmten Version verbunden? ( ich habe 1.90.331 )
ja, ich meine SL1, also 1.90.355, aber man kann es auch einfach auf alte Schreibweise umsetzen:

SUPER nach ::XbpPushButton ändern.

Gründe warum man das so macht ...

Code: Alles auswählen

// alte Schreibweise, immer noch gültig !
CLASS HBColorButton FROM XbpPushButton
METHOD HBColorButton:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
   * Methode der Superklasse ausführen
   ::XbpPushButton:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
NACHTEIL: sollte ich eine Klasse dazwischen schieben wollen, müsste ich die Zeile immer ändern

Code: Alles auswählen

// etwas moderner !
METHOD HBColorButton:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
SUPER:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
VORTEIL: unabhängig vom tatsächlichen SUPER Klassennamen, ist Cut & Paste einfacher und auch eingefügte Klassen stimmen bei gleichen Parametern automatisch

Eigentlich sollte es noch einfacher gehen, aber ich habe damit schlechte Erfahrungen gemacht (eventuell schon verbessert ?)

Code: Alles auswählen

// Noch einfacher wäre  !
METHOD HBColorButton:init( oParent, oOwner, aPos, aSize, aPresParam, lVisible )
SUPER
NACHTEIL: Parameter müssen identisch sein und die zumindest in vorherigen Versionen kam der Zeilenzähler durcheinander

Re: Was bedeutet SUPER im CLASS Code ?

Verfasst: Do, 08. Dez 2016 20:43
von BIK
Wie immer herzlichen Dank für die ausführliche Erklärung!

Gruß,
Bernhard