Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 3. Mai 2005, 10:32
Zitat von shmia:
Zitat von jfheins:
Kann ich einen Wert direkt an ein Unterobjekt weiterreichen, statt jedemal ein Wrapperfunktion scheiben zu müssen ?
Nein, du musst jedesmal eine Wrapperfunktion schreiben.
Die Idee von Dax wird nicht funktionieren, da die VCL keine Interface benützt.
Hmpf? Schon TComponent implementiert Interfaces, deshalb kann man Controls so einfach eins "drüberstülpen".

Das Problem ließe sich mit minimalem Code lösen... Wenn nicht fast sämtliche Properties in fast sämtlichen Controls bekloppte private Getter/Setter hätten.

Mit protected Accessors wäre es nur das hier:
Delphi-Quellcode:
type
   ITextProperty = interface
      function getText(): TCaption;
      procedure setText(const Value: TCaption);

      property Text: TCaption read getText write setText;
   end;


type
   TTextProperty = class
   private
      fText: TCaption;
   protected
      function getText(): TCaption;
      procedure setText(const Value: TCaption);
   published
      property Text: TCaption read getText write setText;
   end;


type
   TSomeClass = class(TInterfacedObject, ITextProperty)
   private
      fTextProperty: TTextProperty;
   protected
      property TextProperty: TTextProperty read fTextProperty implements ITextProperty;
   public
      constructor Create(); virtual;
      destructor Destroy(); override;
   end;
In deinem Falle ließe sich eine ComboBox(Du könntest TTextProperty durch TComboBox ersetzen ) also von selbst dazu zu übereden ITextProperty für dich in deiner Klasse zu implementieren. Wenn die Property Text in TControl nicht so besch***en implementiert sein würde.
  Mit Zitat antworten Zitat