Zitat von
Sidorion:
Da hab ich mich jetzt wohl etwas unverständlich ausgedrückt.
Ok, dann haben wir das ja jetzt geklärt
- vielen dank nochmal
Zitat von
guidok:
Vielleicht kannst du ja sowas machen: [...]
Als ich das Beispiel mit den Interfaces lauffähig bekommen habe, dachte ich ehrlich gesagt genau das Gleiche.
Warum den abgeleiteten Standardcontrols nicht eine zusätzliche Eigenschaft in Form eines Objektes der zusätzlichen Klasse verpassen.
Ob es im Endeffekt genauso funktioniert, wie erwartet - also so wie die Interface-Geschichte - , habe ich schlussendlich allerdings nicht mehr getestet. Könnte man aber nochmal machen
Edit: ok, habe es nun getestet - funktioniert ohne Interface genauso wie mit.
Mit dem einen Unterschied, dass ich dann beim Aufruf nicht caste, sondern über die Property gehe.
Delphi-Quellcode:
TEditklasse = Class(TEdit)
private
FHelper: TBasisklasse;
public
Constructor Create(AOwner: TComponent); override;
Property MyHelper: TBasisklasse read FHelper write FHelper;
End;
Constructor TEditklasse.Create(AOwner: TComponent);
Begin
Inherited;
FHelper := TBasisklasse.Create(Self);
Parent := TWinControl(AOwner);
End;
oEdit := TEditklasse.Create(Self);
oEdit.MyHelper.Zoom(SpinEdit1.Value);
Und das ist dann wohl genau das, was Jelly vorgestern schon mit
Zitat von
Jelly:
Es bleibt dir wohl nichts anderes übrig, als 3 neue Unterklassen von TEdit, TMemo und TLabel zu erstellen, und dort jeweils als Referenz auf deine TBasisklasse zu referieren (Assoziation im
UML Jargon)
und Hansa mit
Zitat von
Hansa:
Du wärst schon lange fertig, wenn die 3 Komponenten jeweils eine property mehr hätten.
meinten.
Habe mir mal die Modellansicht zu dem Projekt angeschaut, und siehe da:
Zitat:
Assoziationsbeziehung
zu Klasse TBasisklasse
Supplier
TBasisklasse
Client
FHelper
Type
Assoziation
Verrückte Welt