我正在开发一个使用FastReport设计进行报告的XE3项目。
当我尝试运行DFMCheck时,生成的单元尝试访问报告的子组件(即TfrxDataPage),这些子组件存在于.DFM中,但不是在表单的类定义中创建的。如果我尝试将字段添加到.PAS文件中的表单声明中,德里告诉我它没有相应的组件并要求我删除声明。
所以.dfm看起来像这样:
object frxReport1: TfrxReport
...
object Data: TfrxDataPage
Height = 1000.000000000000000000
Width = 1000.000000000000000000
end
.pas看起来像这样:
TMyForm = class(TForm)
...
frxReport1: TfrxReport;
Data: TfrxDataPage; // Added manually, but gets deleted when saving the form
...
DFMCheck生成的DfmCheck_Unit包含:
with TMyForm(nil) do { uForm2.pas }
begin
frxReport1.ClassName; { frxReport1: TfrxReport; }
Data.ClassName; { Data: TfrxDataPage; }
..
Data.Classname语句生成编译错误,因为未声明数据组件。
如何让DFMCheck接受这个并且不再为TfrxReport的子组件生成测试文件?
答案 0 :(得分:2)
DFMCheck不知道组件类。它只查看DFM并看object
什么意味着Data: TfrxDataPage
组件是表单/框架/数据模块的一部分。它无法知道FastReport创建了一个没有可访问字段的子组件。
解决这个问题的唯一方法就是黑名单那些组件,DFMCheck不支持什么(还有?)。