我不确定RTTI是否确实可行,但是我会问。

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

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

end;


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

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

最佳答案

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

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

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

关于delphi - 您可以使用RTTI找到实际的应用程序TStringList吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36306961/

10-09 10:15