Einzelnen Beitrag anzeigen

zappa2

Registriert seit: 12. Apr 2015
8 Beiträge
 
#1

Generische Array-Propertys

  Alt 23. Feb 2021, 09:45
Ich kämpfe gerade mit dem Verständnis von Generics. Die Deklaration des generischen offenen Arrays klappt klaglos:

Code:
type
  TValue<T> = class
  protected
    a: array of T;
    function GetT(const Index: Integer): T;
    procedure SetT(const Index: Integer; const Value: T);
  end;

  TAStr = TValue<String>;
  TAInt = TValue<Integer>;

..

implementation

function TValue<T>.GetT(const Index: Integer): T;
begin
  Result := a[Index];
end;

procedure TValue<T>.SetT(const Index: Integer; const Value: T);
begin
  a[Index] := Value;
end;
Das läuft, so weit so gut. Wenn ich das jetzt aber anwenden will, klappt nix mehr.
Simples Beispiel:

Code:
  TTest = class
  private
    aStr: TAStr;
    aInt: TAInt;
  published
    property s0: String index 0 read GetT<String> write SetT<String> ;
    property i0: Integer index 0 read GetT<Integer> write SetT<Integer> ;
  end;
Wo liegt mein Denkfehler? Wie komme ich denn nun an die Items ran?
  Mit Zitat antworten Zitat