私は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
したがって、私のコンポーネントは正しく機能しません。
あなたのTMyGridはExpandedプロパティを宣言していますか?それがフォームで使用されているときに正しくストリームされていますか?あなたのFieldNameに同じq - 最後に見たときにTCustomDBGridにFieldNameプロパティがありません。 – MartynA
My Datasetはいくつかのフィールドを持つテーブルです。グリッドに2つのフィールドだけを設定する必要があるため、Columnsプロパティ(MyGrid内)にこのフィールドを追加します。 –
まあ、あなたが正しくやったと思うかもしれませんが、明らかにDelphiは違った考え方をしています。エラーメッセージがあなたに伝えようとしているもの、特に "Property MyGrid.Expanded do [e] s not exist"を聞くべきです。 「私のデータセットは、いくつかのフィールドを持つテーブルです。」 - それが接続されているデータセットはそのタイプのものでなければならないことをカスタムグリッドが認識していますか? – MartynA