2016-02-15 46 views
-1

我正在使用FastReport設計進行報告的XE3項目。Dfmcheck檢查未在單元中聲明的FastReport的子組件

當我嘗試運行DFMCheck時,生成的單元試圖訪問報表的子組件(即TfrxDataPage),它們存在於.DFM中,但不是在窗體的classdefinition中創建的。如果我嘗試將這些字段添加到.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_Unit通過DFMCheck生成包含此:

with TMyForm(nil) do { uForm2.pas } 
    begin 
    frxReport1.ClassName; { frxReport1: TfrxReport; } 
    Data.ClassName; { Data: TfrxDataPage; } 
    .. 

數據.Classname語句會生成編譯錯誤,因爲未聲明Data組件。

我該如何讓DFMCheck接受並且不再爲TfrxReport的子組件生成teststaments?

+0

您是否嘗試過與Andy聯繫解決此問題?您可以使用他的網頁作爲起點:http://andy.jgknet.de/blog/2016/01/dfmcheck-1-6-released/ –

回答

2

DFMCheck不知道組件類。它只查看DFM並看到object意味着Data: TfrxDataPage組件是Form/Frame/Datamodule的一部分。它不知道FastReport創建了沒有可訪問字段的子組件。

解決此問題的唯一方法是將這些組件列入黑名單,DFMCheck不支持(還?)。