gpt4 book ai didi

Delphi 2010 RTTI - RttiContext.FindType

转载 作者:行者123 更新时间:2023-12-03 15:44:04 27 4
gpt4 key购买 nike

使用RttiContext.FindType('Classes.TStringList')我可以毫无问题地获得TStringList的RttiType。但是使用 RttiContext.FindType('MyUnit.TMyClass') 我总是得到 nil (当然 MyUnit 在 use 子句中)。为什么,出了什么问题?

示例:

unit MyUnit; 
interface
uses
Classes;
type
TMyClass = class(TStringList)
end;
implementation
end.

Main unit:
...
uses
MyUnit,
...
var
oCont: TRttiContext;
oType: TRttiType;
begin
oCont := TRttiContext.Create;
try
oType := oCont.FindType('MyUnit.TMyClass'); <== oType = nil !!
...

最佳答案

delphi 链接器可能未将该类包含在最终的可执行文件中。快速尝试如下:

  1. 在您的类上声明一个静态方法。该方法应该是一个空方法,一个简单的begin end
  2. 在此单元的初始化部分调用此静态方法。
  3. 确保您的项目中某处引用了该单元。
  4. 现在您应该看到带有 TRttiContext.FindType 的类。

关于Delphi 2010 RTTI - RttiContext.FindType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com