delphi - 你能找到一个使用RTTI的实际应用程序TStringList吗

标签 delphi rtti delphi-10-seattle

我不确定 RTTI 是否真的可行,但我想问一下。

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

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

end;

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

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/

相关文章:

delphi - 如何识别显示器的数量、位置或分辨率何时发生变化?

delphi - 如何继承TObjectList<T>而不是继承TObjectList

Delphi - TStringList 保存/加载到流编码

ios - Apple App Store 中的 "App is crashing on startup",但它在 Debug/Adhock 中运行良好?

delphi - TPNGImage.LoadFromFile EPNGInvalidFileHeader

delphi - 如何将方法的嵌套过程作为参数传递?

string - 如何删除Delphi字母串中的数字

c++ - constexpr 和 RTTI

delphi - Rtti 调用类方法显示无效类型转换

c++ - 为什么 type_info 在命名空间 std 之外声明?