Einzelnen Beitrag anzeigen

bepe

Registriert seit: 17. Okt 2006
118 Beiträge
 
#24

AW: Property via AsString;AsInteger;AsBoolean;.. laden

  Alt 23. Aug 2012, 12:50
Delphi-Quellcode:
type
  RConfig2 = record
  private
    fKey: String;
    fValue: Variant;
    function GetAsString: String;
    function GetAsInteger: Integer;
  public
    property Key: String read fKey write fKey;
    property Value: Variant write fValue;
    property AsString: String read GetAsString;
    property AsInteger: Integer read GetAsInteger;
  end;
Ich würde im Record die Setter Methoden einfügen, nicht in der Config Klasse. Dann kannst du einfach ...AsInteger := 4711 tippen, anstatt ein Record übergeben zu müssen.

Delphi-Quellcode:
type
  TConfig = class(TObject)
  private
    ...
    fList: TConfigList;
    fList2: TConfigList2;

    ...
    function GetVariantValue(aID: String): RConfig2;
    procedure SetVariantValue(aID: string; aValue: Variant);

    ...
  public
    constructor create;

    ...
    property Item[aKey: String]: RConfig2 read GetVariantValue write SetVariantValue;
    ...
  end;
Hier ist der Getter ausreichend. Aber wenn schon ein Setter da ist, dann definitiv mit RConfig2 arbeiten nicht mit Variant. Auch wenn ich nichts gegen Variant habe (doch eigentlich schon ), es macht hier einfach keinen Sinn.

mfg,
bp
  Mit Zitat antworten Zitat