关于delphi:能不能找到一个使用RTTI的实际应用TStringList | 珊瑚贝

Can you find an actual application TStringList using RTTI


我不确定 RTTI 是否真的可以做到这一点,但我想问一下。

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

1
2
3
4
function GetStringListFromUnitByName(aUnit, aName: String): TStringList;
begin

end;

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

1
2
3
4
5
TMyPickLists = class
public
  FList1: TStringList;
  FList2: TStringList;
end;
  • 这可以说是 stackoverflow.com/questions/6730405/… 的副本


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

不过,我个人认为这里没有使用 RTTI 的意义。如果是我,我会创建一个字典并在初始化期间将列表添加到字典中:

1
2
3
4
5
6
var
  PickLists: TDictionary<string, TStringList>;
….
PickLists := TDictionary<string, TStringList>.Create;
PickLists.Add(‘List1’, List1);
// etc.
  • 可能是一个更明智的选择,只是对”可以做到”更感兴趣,无论如何感谢大卫。


来源:https://www.codenong.com/36306961/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9428.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?