B balaschen Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-05 #1 我做了一个下拉组合框,下拉框是一个TStringGrid的派生类,现在的问题是如何制作下拉框 在设计阶段的编辑器? 请各路控件高手帮忙解决,没事也请帮忙提前,谢谢。
B bbkxjy Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-05 #2 应该是从 TComponentEditor 继承吧。主要是重载 Edit 方法。弹出一个 Form,在 Form 上放个你派生的 TStringGrid,让用户可视化地编辑,关闭时将 Form 中 Grid 的属性值 赋给所设计的 Grid。 一个有问题的地方是设计时这些属性如何被存入dfm文件及运行时如何从资源中读出。不知 你的 Grid 是在什么时候创建的?
应该是从 TComponentEditor 继承吧。主要是重载 Edit 方法。弹出一个 Form,在 Form 上放个你派生的 TStringGrid,让用户可视化地编辑,关闭时将 Form 中 Grid 的属性值 赋给所设计的 Grid。 一个有问题的地方是设计时这些属性如何被存入dfm文件及运行时如何从资源中读出。不知 你的 Grid 是在什么时候创建的?
B bbkxjy Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-05 #4 那应该重载控件的 DefineProperties 方法,读写所包含的 Grid 的属性。至于控件编辑器, 跟你的控件是紧密相关的,不知道该怎么说了。
B balaschen Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-06 #5 上面说得我都知道,我的主要问题是我如何显示一个编辑器(用一个Form加上一个StringGrid) ,能利用Object Inspector来编辑Grid的属性,我用的是IFormDesigner(Desinger).SelectComponent(Grid) 来选择控件,但是当我编辑完返回是,我的组合框没有重绘,我已经调用了Designer.Modified.
上面说得我都知道,我的主要问题是我如何显示一个编辑器(用一个Form加上一个StringGrid) ,能利用Object Inspector来编辑Grid的属性,我用的是IFormDesigner(Desinger).SelectComponent(Grid) 来选择控件,但是当我编辑完返回是,我的组合框没有重绘,我已经调用了Designer.Modified.
B bbkxjy Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #6 返回之前将编辑器中 Grid 的属性 Assign 给你控件中的 Grid 了吗?需要写代码赋值的。
B balaschen Unregistered / Unconfirmed GUEST, unregistred user! 2001-06-07 #7 我已经解决,方法是不再用Object Inspector来编辑Grid的属性,而是用dxInspector自己做 了一个属性编辑器。 再等一天,看看哪位大虾还有高招。 谢谢bbkxjy的积极参与。