Einzelnen Beitrag anzeigen

s-off
(Gast)

n/a Beiträge
 
#47

Re: Basisklasse und davon abgeleitet drei Standardklassen

  Alt 10. Okt 2007, 11:08
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
  Mit Zitat antworten Zitat