控件包设计??十万火急!!(200分)

  • 主题发起人 主题发起人 jack.shi
  • 开始时间 开始时间
J

jack.shi

Unregistered / Unconfirmed
GUEST, unregistred user!
我想设计一个控件包,但每个控件都有一两个共同的属性,想建立一个非可视控件来设置这些属性
各位大侠,请问这个控件如何设计,在其他控件中如何调用?
 
不就是繼承或接口嗎?
你舉個例吧!
TControl-->TWinControl-->TCustomEdit-->TEdit
TControl-->TWinControl-->TCustomEdit-->TCustomMaskEdit-->TDBEdit
不就是這樣的一個實現過程嗎?
或者我理解錯了.
 
你是想做一个组件的属性编辑器吧?关键是在包的RegisterComponents过程后面加入注册
属性编辑器的过程,调用RegisterPropertyEditor来注册属性编辑器,属性编辑器就是
你用来编辑组件属性的另一个组件。如果你有《Delphi 5开发人员指南》,看看670页以
后的内容。
 
几位大虾,理解错了,你们用过一个Skinengine的控件吧,和那个控件类似!!
 
很简单呀。 在其他控件里声明一个公用控件类型的属性就可以了。 地道点再做个属性编辑器。
只要解决好控件与公用控件之间相互通讯就可以了。 主要是公用控件中属性变化要通知使用它的各个控件,最简单就如TFont这种公用控件中加个OnChange事件。
另外就是双方要重载Notification方法, 这样在释放时不会出问题。
具体例子可以参看源代码db.pas中的TDataLink类
 
详细些好吗?
 
在空间初始化时:
oncreate(sender);
if (csDesigning in ComponentState) then 或者if (csLoadingin ComponentState) then
你的非可视控件来设置这些属性,创建,发挥作用
参考TComponentState

 
wang_any@sina.com
给我发信!!
 
接受答案了.
 
后退
顶部