2016-05-30 150 views
0

我在Delphi 10 Seattle中創建了一個組件。 我的組件是一個面板包含一個TDBGrid(來自TCustomDBGrid)和一個TEdit 控件。 當我把我的組件形成時,一切都很好,如果我不改變網格列。 但當我更改有界的DBGrid列,運行時發生錯誤消息:「Error reading TColumn.MyGrid.Expanded:Property MyGrid.Expanded dos does not exist ...」 對於發現的錯誤,我打開窗體爲文本和看到這段代碼:將DBGrid綁定到自定義組件

MyGrid.Columns = < 
    item 
    MyGrid.Expanded = False 
    MyGrid.FieldName = 'Sid' 
    MyGrid.Visible = True 
    end 
    item 
    MyGrid.Expanded = False 
    MyGrid.FieldName = 'UserName' 
    MyGrid.Visible = True 
    end> 
FilterDataSource = DataSource1 

因此,我的組件無法正常工作。

+0

那麼,您的TMyGrid是否聲明瞭Expanded屬性,並且它在表單上使用時是否正確流式傳輸?同樣的問題你的FieldName - TCustomDBGrid沒有FieldName屬性上次我看... – MartynA

+0

我的數據集是一個表,有一些字段。我需要在網格中設置2個字段,因此,在Columns屬性(MyGrid中)中,我添加了這些字段。 –

+0

那麼,你可能認爲你已經做了正確的事情,但顯然德爾福認爲是不同的。你應該聽聽錯誤信息試圖告訴你什麼,特別是「Property MyGrid.Expanded do [e] s exists」。 「我的數據集是一個有一些領域的桌子。」 - 但是您的自定義網格是否知道它所連接的數據集只能是這種類型的? – MartynA

回答

0

我寫了一個我自己的組件,它將一個TDBGrid嵌入TPanel和一個項目中來測試它。當我在網格包含持久化TColumns時嘗試重新加載我的項目時,我得到了與您相同的錯誤。

所以,我在這裏

How to correctly stream a TCollection property of a subcomponent, e.g. the Columns property of an embedded TDBGrid

貼出我自己的q和獲得德爾福MVP烏韋·拉貝的答案基本上說,原因是TDBGridColumns的VCL流代碼中的問題,並暗示我的文件EMBA質量門戶的問題報告。所以在EMBA解決之前,我認爲沒有什麼可以解決的問題。

相關問題