2016-05-30 13 views
0

私はDelphi 10 Seattleで1つのコンポーネントを作成します。 私のコンポーネントは、1つのパネルに1つのTDBGrid(TCustomDBGridから)と1つのTEdit コントロールが含まれています。 グリッド列を変更しないと、コンポーネントをフォームに配置すると、すべて問題ありません。 バインドされたDBGrid列を変更すると、実行時に「TColumn.MyGrid.Expanded:Property MyGrid.Expanded dos 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に同じq - 最後に見たときにTCustomDBGridにFieldNameプロパティがありません。 – MartynA

+0

My Datasetはいくつかのフィールドを持つテーブルです。グリッドに2つのフィールドだけを設定する必要があるため、Columnsプロパティ(MyGrid内)にこのフィールドを追加します。 –

+0

まあ、あなたが正しくやったと思うかもしれませんが、明らかにDelphiは違った考え方をしています。エラーメッセージがあなたに伝えようとしているもの、特に "Property MyGrid.Expanded do [e] s not exist"を聞くべきです。 「私のデータセットは、いくつかのフィールドを持つテーブルです。」 - それが接続されているデータセットはそのタイプのものでなければならないことをカスタムグリッドが認識していますか? – MartynA

答えて

0

TPanelにTDBGridを埋め込んだ独自のコンポーネントと、それをテストするプロジェクトを書きました。グリッドにTColumnsが含まれているときにプロジェクトをリロードしようとしたときと同じエラーが表示されます。

だから、私は基本的に原因がTDBGridColumnsのVCLストリーミングコードの問題であることを言って、私はファイルのことを示唆している、ここで

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

自分のqを掲示し、デルファイMVPウーヴェ・ラーベからの回答を得ましたEMBAの品質ポータルの問題報告。だから私は、EMBAがそれを修正するまで、問題について多くのことができるとは思わない。

関連する問題