2012-12-11 91 views
1

我分析DBGrids.pas单元。有已公布的FieldName财产TColumn.FieldName属性编辑器

property FieldName: String read FFieldName write SetFieldName; 

它宣布为一个字符串,但在Object Inspector它显示为可编辑的ComboBox一个TColumn类(TDataFieldProperty

我分析了几乎所有DBGrids单元,不能找到那个把戏完成的地方。我应该在哪里看?

+0

查找到DBReg.pas单元。 – TLama

+0

我认为这是由你写的'DBReg.pas'中的'RegisterPropertiesInCategory'完成的。你能发表一个答案,以便我可以接受吗? – JustMe

+1

我对IDE编辑器几乎一无所知,所以我无法确认或帮助您更多地了解这一点。让我们来做一个更有经验的人。 – TLama

回答

1

你在找什么 - 亲爱的过去我 - 是RegisterPropertyEditor方法。

呼叫RegisterPropertyEditor通过与由属性类型参数指定的属性类型 的EditorClass参数指定的属性编辑器类 关联。

在你的情况,你需要一个TDataFieldProperty所以这将是这样的:

RegisterPropertyEditor(TypeInfo(string), TColumn, 'FieldName', TDataFieldProperty); 
+1

还没有找到其中“字段名”属性编辑器注册,但 – JustMe

+0

你的意思是什么“,其中‘字段名’属性编辑器注册 – jachguate

+1

@jachguate - AFAIU这意味着答案不不回答这个问题。 –