AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Property -> Getter und Setter mit Parametern
Thema durchsuchen
Ansicht
Themen-Optionen

Property -> Getter und Setter mit Parametern

Ein Thema von bernau · begonnen am 28. Jan 2015 · letzter Beitrag vom 29. Jan 2015
 
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.303 Beiträge
 
Delphi 12 Athens
 
#1

Property -> Getter und Setter mit Parametern

  Alt 28. Jan 2015, 09:59
Ein Gedankengang zum Thema "wie spare ich Tipperei".

Ich habe ein CustomObject, welches Parameter speichert. Egal wo und wie. Und es gibt eine Ableitung in der ich einige Properties definiere, welche Properties des Parent verwendet. Der Zugriff wird in der Implementation geregelt.

Delphi-Quellcode:
interface

type
  TCustomSpeicherobjekt = class(TObject)
    private
      function GetEinStringWert(aIndex: string): string;
      procedure SetEinStringWert(aIndex: string; const Value: string);
    public
      property EinStringWert[aIndex:string]:string read GetEinStringWert write SetEinStringWert;
    end;


  TMeinSpeicherobjekt = class(TCustomSpeicherobjekt)
    private
      function GetWertA: string;
      function GetWertB: string;
      procedure SetWertA(const Value: string);
      procedure SetWertB(const Value: string);
    public
      property WertA:string read GetWertA write SetWertA;
      property WertB:string read GetWertB write SetWertB;
    end;


implementation

{ TMeinSpeicherobjekt }

function TCustomSpeicherobjekt.GetEinStringWert(aIndex: string): string;
begin
  // Hier steht Code zum Lesen
end;

procedure TCustomSpeicherobjekt.SetEinStringWert(aIndex: string; const Value: string);
begin
  // Hier steht Code zum Schreiben
end;


{ TMeinSpeicherobjekt }

function TMeinSpeicherobjekt.GetWertA: string;
begin
  Result:=EinStringWert['WertA'];
end;

function TMeinSpeicherobjekt.GetWertB: string;
begin
  Result:=EinStringWert['WertB'];
end;

procedure TMeinSpeicherobjekt.SetWertA(const Value: string);
begin
  EinStringWert['WertA']:=Value;
end;

procedure TMeinSpeicherobjekt.SetWertB(const Value: string);
begin
  EinStringWert['WertB']:=Value;
end;
Gibt es einge Möglichkeit den Code zu verkürzen. Ich denke an so etwas wie die direkte Funktionsübergabe mit Parameter. Dann könnte man sich die Implementation sparen.

Beispiel:

Delphi-Quellcode:
  TMeinSpeicherobjekt = class(TCustomSpeicherobjekt)
    private
    public
      // Entweder so
      property WertA:string read EinStringWert['WertA'] write EinStringWert['WertA'];
      // oder so
      property WertB:string read GetEinStringWert('WertB') write SetEinStringWert('WertB');
    end;
Oder gibt es andere Ansätze?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
 


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 22:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz