小编cha*_*ieb的帖子

在delphi中分配给数组属性中的字段

我有一个将通用项目存储在数组中的类。这些项目由默认数组属性访问:

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)

delphi

5
推荐指数
1
解决办法
216
查看次数

如何将变量类型声明为泛型?

我正在创建一个双链表类,并且我正在尝试更改创建对象时列表存储的数据类型。

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

1
推荐指数
1
解决办法
169
查看次数

标签 统计

delphi ×2