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
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.960 Beiträge
 
Delphi 12 Athens
 
#1

AW: Property -> Getter und Setter mit Parametern

  Alt 28. Jan 2015, 09:27
Ich würde dann aber die Stringindizes nicht nach außen geben, um Tippfehler zu minimieren und das z.B. so lösen (wenn die Stringindizes intern notwendig sind):
Delphi-Quellcode:
{$SCOPEDENUMS ON}

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)
  public type
    TValueInfo = (ValueA, ValueB);
  private
    const
      cValueNames: array[TValueInfo] of string = ('WertA', 'WertB');
    function GetValue(ValueKind: TValueInfo): string;
    procedure SetValue(ValueKind: TValueInfo; const Value: string);
  public
    property Value[ValueKind: TValueInfo]: string read GetValue write SetValue;
  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.GetValue(ValueKind: TValueInfo): string;
begin
  Result := EinStringWert[cValueNames[ValueKind]];
end;

procedure TMeinSpeicherobjekt.SetValue(ValueKind: TValueInfo; const Value: string);
begin
  EinStringWert[cValueNames[ValueKind]] := Value;
end;
Dann lässt sich das einfach so nutzen:
Delphi-Quellcode:
MyObject.Value[TValueKind.ValueA] := 'Test';
ShowMessage(MyObject.Value[TValueKind.ValueA]);
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

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

AW: Property -> Getter und Setter mit Parametern

  Alt 28. Jan 2015, 10:04
Dann lässt sich das einfach so nutzen:
Delphi-Quellcode:
MyObject.Value[TValueKind.ValueA] := 'Test';
ShowMessage(MyObject.Value[TValueKind.ValueA]);
Auch nicht wirklich eine alternative. Ich nutze gerne Codevervollständigung. Da möchte ich das Property direkt verwenden.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  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 17:29 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-2025 by Thomas Breitkreuz