AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wert direkt an Unterobjekt weiterreichen

Ein Thema von jfheins · begonnen am 2. Mai 2005 · letzter Beitrag vom 3. Mai 2005
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

Wert direkt an Unterobjekt weiterreichen

  Alt 2. Mai 2005, 21:39
Kann ich einen Wert direkt an ein Unterobjekt weiterreichen, statt jedemal ein Wrapperfunktion scheiben zu müssen ?

Also ich habe z.B.
Delphi-Quellcode:
TFMyClass = class(TCustomControl)
  private
    MeineTolleCombobox: TComboBox;
Und möchte sowas machen:
Delphi-Quellcode:
published
    property Text: String read MeineTolleComboBox.Text write MeineTolleComboBox.Text;
Geht aber nicht (Undefinierter Bezeichner TMeineTolle...)

Muss ich für jede Property, die ich "weitergeben" möchte, eine Wrapperfunktion schreiben ?

Oder geht das so, wie ich mir das gedacht habe ?
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 2. Mai 2005, 22:19
Eventuell geht das über Interfaces und Method Resolution Clauses.. frag morgen nochmal, ich geh jetzt pennen..
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 3. Mai 2005, 07:43
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.
Andreas
  Mit Zitat antworten Zitat
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
3. Mai 2005, 10:50
Dieses Thema wurde von "sakura" von "VCL / WinForms / Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 3. Mai 2005, 12:17
Wenn ich das jetzt richtig verstanden hab' geht es also nicht, weil die alle private Getter und Setter haben ...

Dann muss ich halt für alles und jeden eine Wrapperfunktion schreiben ... Naja
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 3. Mai 2005, 12:58
Aber: Wenn du ja eh Delphi Professional hast, hast du automatisch die Saucen der VCL. Wenn du dir die Mühe machen willst, kannst du ja die Getter/Setter der Properties, die du brauchst, nach protected schieben und Roberts Code nehmen
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: Wert direkt an Unterobjekt weiterreichen

  Alt 3. Mai 2005, 13:18
Zitat von Dax:
Aber: Wenn du ja eh Delphi Professional hast, hast du automatisch die Saucen der VCL. Wenn du dir die Mühe machen willst, kannst du ja die Getter/Setter der Properties, die du brauchst, nach protected schieben und Roberts Code nehmen
Das bedeutet aber, dass der Code nur bei ihm kompostierbar ist.

Will er es wirklich ändern, sollte er das TListItem gleich mit ändern. Mit der Originalversion ist es schlichtweg unmöglich irgendwas sinnvolles mit TListView anzufangen.
Dank private accessors bringt dir nämlich eine Ableitung von TListItem fast keinerlei Vorteil.
Und was bringt dir eine ListView-Ableitung ohne spezielle Items, die man an Objekte binden kann?

Ob es in Delphi 2006 eine VCL geben wir, bei der es einem nicht den Magen verdreht?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz