Zitat von
Apollonius:
Wie kommt denn die TBasisklasse in den FHelper? Du kannst nur mit Interfaces arbeiten, die nicht nil sind. Folglich muss der Konstruktor von TEditklasse und TLabelklasse überschrieben werden.
Ähm - ja - klingt logisch.
Habe nun das Create der Objekte überschrieben und weise darin FHelper eine Instanz der Basisklasse zu - so:
Delphi-Quellcode:
Constructor TLabelklasse.Create(AOwner: TComponent);
Begin
Inherited;
FHelper := TBasisklasse.Create(self);
End;
Zitat von
Apollonius:
Der Trick ist, dass der internen Cast-Funktion eine
GUID übergeben werden muss.
Hui - Sidonius hatte ja in seinem ersten Beispielcode geschrieben, dass eine
GUID benötigt würde. Er schrieb aber auch, dass diese automatisch erzeugt wird, was bei mir aber anscheinend nicht der Fall war - ist mir aber ehrlich gesagt auch gar nicht aufgefallen, dass diese fehlte. STRG+UMSCH+G hat geholfen.
Nun kann ich so casten:
(oEdit As ITestInterface).Zoom(SpinEdit1.Value);
Nun ja, ich habe wie gesagt, die Create-Methode überschrieben und das casten angepasst.
Ich bekomme nun zumindest schonmal keine Zugriffsverletzung mehr - das gewünschte Zoomen funktioniert aber trotzdem noch nicht - genauer gesagt passiert gar nichts, wenn ich den SpinEdit ändere.
Naja, mal sehen, wo 's hängt.
Danke erstmal, dass ich soweit gekommen bin
Edit: das Zoomen funktioniert nicht, da die Initialwerte im Create der Basisklasse alle als 0 ankommen.
Ich dreh hier nochmal am Reifen....
Edit: Habe mal eine aktualisierte Version hochgeladen
Sorry, aber bei mir hat's schon immer etwas länger gedauert, bis es 'klick' gemacht hat