Hi,
ich experimentiere mal wieder ein wenig und bin dabei auf eine Frage gestossen, die ich mir jetzt nicht richtig selbst beantworten kann.
Wenn ich mir eine eigene Klasse abgeleitet von einem XbasePart bauen möchte, dann habe ich mir gerade folgendes überlegt:
Die aPresParam z.B., die jeweils einem new() übergeben werden, könnten die auch in der jeweiligen Init Methode stehen, oder müssen die vorher belegt und dann mitgegeben werden? Oder macht man das dann evtl. über Default TO ? Oder ist das vollkommen egal, wie man es löst?
Ich hoffe meine Frage ist jetzt nicht zu kompliziert.
PS:Ich meine also, die Parameter als Klassenvariablen
eigene (abgeleitete) Klassen und Parameter
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
eigene (abgeleitete) Klassen und Parameter
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Re: eigene (abgeleitete) Klassen und Parameter
zuerst zum einfachsten, Parameter sind LOCAL Variablen und KEINE Klassenvariablen !Manfred hat geschrieben:PS:Ich meine also, die Parameter als Klassenvariablen
Wenn du in einer abgeleiteten Klasse Änderungen durchführen willst, musst du in den meisten Fällen die gleiche Methode der Basisklasse aufrufen. Wenn man es nicht macht, wird die Basismethode komplett ersetzt und nicht nur ergänzt oder geändert.
Hier ein Beispiel:
Code: Alles auswählen
CLASS MyClass FROM BaseClass // nur mal so als Beispiel
...
METHOD MyClass:INIT(p1,p2,p3,p4,p5)
[color=red] 1. Anmerkung[/color]
::BaseClass:INIT(p1,p2,p3,p4,p5) // gleiches Interface = gleiche Parameter
[color=red] 2. Anmerkung[/color]
...
1. Vorbelegung oder Änderung von Parametern.
grundsätzlich sind diese Variablen entweder durch das aufrufenden Programm belegt oder NIL. An dieser Stelle kann man nun leicht Variablen vorbelegen oder Inhalte ändern. So könnte man z.b. seine Lieblingsgröße in aSize := {?,?} festlegen, unabhängig ob etwas anderes angegeben wurde, oder einfach nur einen Vorschlag mit DEFAULT machen, wenn der Parameter NIL ist. Hiermit kann man sich viel Arbeit sparen oder aber immer gleiche Ergebnisse erzwingen.
2. Änderung von Standardverhalten
häufig kommt es hier vor, dass das Standardverhalten geändert werden soll. Fast immer wird hier z.B. der oDLG:TITLE geändert, da dieser von den Standardroutinen nur irgendwie vorbelegt ist. Auch die activate Codeblocks von SLE etc. kann man hier ändern, sodass im XppFD Quellcode keine Änderungen gemacht werden müssen, die bei der nächsten Änderung durch XppFD verloren gingen.
Oder man kann hier die Positionierung oder Bezeichnung ändern, alles ist möglich.
Zuletzt geändert von brandelh am Do, 17. Apr 2008 13:03, insgesamt 1-mal geändert.
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Hallo Manfred,
ich habe das in fast allen Fällen so gemacht, daß ich die Präsentationsparameter in meiner init()-Methode ebenfalls als Parameter angebe und diese dann durchreiche.
In einigen Fällen habe ich z.B., Schriftart, Farben in meiner Subklasse vorgegeben und übergebe diese dann beim init() der Superklasse. Meine eigene init()-Methode besitzt dann diesen Parameter nicht.
Es ist also (fast) alles möglich.
Gruß Gerd
ich habe das in fast allen Fällen so gemacht, daß ich die Präsentationsparameter in meiner init()-Methode ebenfalls als Parameter angebe und diese dann durchreiche.
In einigen Fällen habe ich z.B., Schriftart, Farben in meiner Subklasse vorgegeben und übergebe diese dann beim init() der Superklasse. Meine eigene init()-Methode besitzt dann diesen Parameter nicht.
Es ist also (fast) alles möglich.
Gruß Gerd
- Manfred
- Foren-Administrator
- Beiträge: 21248
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Hi,
ich bin auch schon wieder schlauer als vorhin. Im Moment experimentiere ich gerade damit herum, eine eigene Xbrowse Klasse zu erstellen. Dabei ist mir dann endlich einmal aufgefallen, das man ja XbpColumn auch noch "zerpflücken" kann. Ich stelle mal wieder fest: Ungeahnte Möglichkeiten tun sich da wieder für mich auf.
Mühsam nährt sich das Eichhörnchen
ich bin auch schon wieder schlauer als vorhin. Im Moment experimentiere ich gerade damit herum, eine eigene Xbrowse Klasse zu erstellen. Dabei ist mir dann endlich einmal aufgefallen, das man ja XbpColumn auch noch "zerpflücken" kann. Ich stelle mal wieder fest: Ungeahnte Möglichkeiten tun sich da wieder für mich auf.
Mühsam nährt sich das Eichhörnchen
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!