你能用RTTI找到一个真正的应用程序TStringList吗?

时间:2016-03-30 11:05:09

标签: delphi rtti delphi-10-seattle

我不确定这是否真的可以用RTTI,但我会问。但是我会问。

我有一个全局单元,它只以TStringList的形式保存了许多var选择列表。通过返回字符串的数据库记录,我可以使用RTTI通过“name”在单元中找到正确的字符串列表并返回吗?

function GetStringListFromUnitByName(aUnit, aName: String): TStringList;
begin

end;

如果所有字符串列表都作为公共变量存储在泛型类中会有帮助吗?

TMyPickLists = class
public
  FList1: TStringList;
  FList2: TStringList;
end;

1 个答案:

答案 0 :(得分:3)

无法使用RTTI枚举全局变量。您需要按照建议使用类的变量。这些可以是实例变量或类变量。

就个人而言,我不明白在这里使用RTTI的意义。如果是我,我会创建一个字典,并在初始化期间将列表添加到字典中:

var
  PickLists: TDictionary<string, TStringList>;
....
PickLists := TDictionary<string, TStringList>.Create;
PickLists.Add('List1', List1);
// etc.