将 Field 和 TDataset 添加到组件属性

Adding TField and TDataset to Component Propertis

我想向我的组件添加两个属性:一个 TDataSet 和一个 TField,这样当我设置 TDataset 属性 时,我可以 select 从它在 DataField 中的字段 属性.
我不知道如何建立 DataField 和 DataSet 属性之间的关系。

我该怎么做?

如果您将组件更改为 DataSource: TDataSource 属性 而不是 DataSet: TDataSet 属性,Delphi 的标准 TDataFieldProperty编辑器会自动为您填充 DataField: string 属性。然后,您可以 link 您想要的 TDataSet 组件到 TDataSource 组件。

如果您希望下拉列表显示任何未命名为 DataFieldstring 属性,您可以为该 [=] 手动注册 TDataFieldProperty 37=] 通过 RegisterPropertyEditor().

如果你想要一个名字不是DataSourceTDataSource属性,你可以从TDataFieldProperty派生并覆盖它的虚拟GetDataSourcePropName()方法.

如果您必须直接接受 TDataSet,则必须为您的 DataField 属性 编写自定义 属性 编辑器,并让它调用 TDataSet.GetFieldNames()直接。