Was bedeutet SUPER im CLASS Code ?

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Was bedeutet SUPER im CLASS Code ?

Beitragvon BIK » Do, 08. Dez 2016 11:58

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
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 65
Registriert: Di, 23. Aug 2011 13:34

Re: HBColorButton - Farbe im Buttontext !

Beitragvon brandelh » Do, 08. Dez 2016 15:25

BIK hat geschrieben:Was hat es mit dem SUPER in deinem Code auf sich?


ruft die SUPER Klasse auf, also hier ::XbpPushButton()
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: HBColorButton - Farbe im Buttontext !

Beitragvon BIK » Do, 08. Dez 2016 16:00

Herzlichen Dank!!
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 65
Registriert: Di, 23. Aug 2011 13:34

Re: Was bedeutet SUPER im CLASS Code ?

Beitragvon brandelh » Do, 08. Dez 2016 16:32

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Was bedeutet SUPER im CLASS Code ?

Beitragvon BIK » Do, 08. Dez 2016 16:52

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
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 65
Registriert: Di, 23. Aug 2011 13:34

Re: Was bedeutet SUPER im CLASS Code ?

Beitragvon brandelh » Do, 08. Dez 2016 16:55

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Was bedeutet SUPER im CLASS Code ?

Beitragvon BIK » Do, 08. Dez 2016 20:43

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

Gruß,
Bernhard
BIK
UDF-Programmierer
UDF-Programmierer
 
Beiträge: 65
Registriert: Di, 23. Aug 2011 13:34


Zurück zu OOP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast