delphi - 从没有运行时包的 dfm 文件构建加载组件时,EClassNotFound 错误问题
问题描述
我用 Delphi XE5 制作了一些自定义组件:
TMyPanel = class(TPanel)
...
end;
TMyComponent = class(TComponent)
...
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('MyComp', [TMyPanel,TMyComponent]);
end;
...
initialization
RegisterClasses([TMyPanel,TMyComponent]);
...
并构建到“mycomp.bpl”文件并安装组件。
在我的应用程序中,加载 bpl 文件,如:
FPkgHande := LoadPackage('mycomp.bpl');
然后使用 Twriter.WriteComponent(...) 制作包含上述组件的“mydfm.dfm”文件。
并尝试加载 dfm 文件,如下所示:
...
var
Reader: TReader;
begin
...
Reader.ReadComponent(ParentControl);
...
end;
当我的应用程序使用运行时包构建时,如下所示:
Project->Options->Packages->Runtime Packages->Link with runtime packages = True
它可以加载dfm文件以成功形成。
但是当设置为 False 我的应用程序选项如下:
Project->Options->Packages->Runtime Packages->Link with runtime packages = False
然后我的应用程序出现如下错误:
"...TMyComponent class not found..."
这个错误的原因是什么?
解决方案
推荐阅读
- node.js - 未捕获的异常:SyntaxError:意外令牌:标识符:尝试以管理员身份登录 mongo shell 时
- java - spring security login 总是重定向到失败的url
- python - Scrapy:项目返回 JSON 值作为列表,尝试将列表的每个元素输出为自己的行
- apache-kafka - Kafka 消费者 API 上的 Kafka Streams DSL
- java - 如何在春季检查预先创建的对象
- javascript - 使用 koa-body 未定义 POST 请求正文
- javascript - 检查 Cookie 是否存在,如果是则执行任何操作,如果没有则设置 cookie
- php - laravel 默认 Auth 中用户验证邮件或密码重置邮件触发时添加密件抄送邮件
- java - 从 RSS 源获取媒体内容标签
- .htaccess - HTAccess HTTPS 重定向以及多个其他重定向