我有一个将通用项目存储在数组中的类。这些项目由默认数组属性访问:
TMyList<TData> = class
private
items: array of TItem<TData>;
public
function get(position: integer): TData;
procedure edit(position: integer; data: TData);
property Values[position: integer]: TData read get write edit; default;
end;
implementation
function TMyList<TData>.get(position: integer): TData;
begin
result:= items[position];
end;
procedure TMyList<TData>.edit(position: integer; data: TData);
var
item: TItem<TData>;
begin
items[position]:= item;
end;
end;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我存储的项目都是 TTest 类型,它也有自己的属性:
TTest = record
private
FTest: string;
procedure setFTest(const Value: string);
public
property Test: string read FTest write setFTest;
end;
implementation
procedure TColouredPoint.setFTest(const Value: String);
begin
FTest:= …Run Code Online (Sandbox Code Playgroud) 我正在创建一个双链表类,并且我正在尝试更改创建对象时列表存储的数据类型。
TItem = record
value: string;
address, prev, next: integer;
end;
TDoubleLinkedList = class
private
length, head, tail: integer;
data: array of TItem;
public
constructor Create;
procedure add(value: string);
function get(address: integer): string;
property Values[address: integer]: string read get; default;
end;
Run Code Online (Sandbox Code Playgroud)
有没有办法将 TItem.value 声明为具有在创建对象时可以更改的变量类型?我希望能够(在一个单独的单元中)调用类似于数组类型的东西,并将 TItem.value 设为该类型。
delphi ×2