Was bedeutet SUPER im CLASS Code ?

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Was bedeutet SUPER im CLASS Code ?

Beitrag 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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: HBColorButton - Farbe im Buttontext !

Beitrag von brandelh »

BIK hat geschrieben:Was hat es mit dem SUPER in deinem Code auf sich?
ruft die SUPER Klasse auf, also hier ::XbpPushButton()
Gruß
Hubert
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: HBColorButton - Farbe im Buttontext !

Beitrag von BIK »

Herzlichen Dank!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Was bedeutet SUPER im CLASS Code ?

Beitrag 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.
Gruß
Hubert
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Was bedeutet SUPER im CLASS Code ?

Beitrag 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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Was bedeutet SUPER im CLASS Code ?

Beitrag 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
Gruß
Hubert
BIK
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Di, 23. Aug 2011 14:34
Hat sich bedankt: 1 Mal

Re: Was bedeutet SUPER im CLASS Code ?

Beitrag von BIK »

Wie immer herzlichen Dank für die ausführliche Erklärung!

Gruß,
Bernhard
Antworten