S snappy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-17 #1 设计一新控件,里面包函控件TPanel,如何在设计期间能且只能让这个Panel容入别 的控件?或如何设计一个容器控件(如类似TPanel的东西),并且在容器内规定客户区 范围和大小,其它区域为控件本身所用?
设计一新控件,里面包函控件TPanel,如何在设计期间能且只能让这个Panel容入别 的控件?或如何设计一个容器控件(如类似TPanel的东西),并且在容器内规定客户区 范围和大小,其它区域为控件本身所用?
T tinytao Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-17 #2 在Delphi中,一个控件上能否成为其它控件的父控件取决于此控件的ControlStyle属性。 ControlStyle属性是集合类型的,如果此集合包含csAcceptsControls元素,则它能接受 其它控件;否则,它就不能成为其它控件的父控件。ControlStyle属性只能在控件的构 造函数(Constructor)中指定,在程序运行时它是不能被改变的。 所以只需要在继承类中重载控件的Constructor函数,并且让控件的集合属性 ControlStyle中包含或不包含csAcceptsControls即可。
在Delphi中,一个控件上能否成为其它控件的父控件取决于此控件的ControlStyle属性。 ControlStyle属性是集合类型的,如果此集合包含csAcceptsControls元素,则它能接受 其它控件;否则,它就不能成为其它控件的父控件。ControlStyle属性只能在控件的构 造函数(Constructor)中指定,在程序运行时它是不能被改变的。 所以只需要在继承类中重载控件的Constructor函数,并且让控件的集合属性 ControlStyle中包含或不包含csAcceptsControls即可。
S snappy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-17 #3 可我的意思是只让用户使用一定的区域,也就是说在我给定的区域内用户可放下别的控件, 但控件其它区域不能放控件,只由控件本身所用,比如在非用户区域内画图啦等,你怎不想 让用户放下的控件挡住它吧?!
B bbkxjy Unregistered / Unconfirmed GUEST, unregistred user! 2001-09-24 #4 你需要在控件中对 WM_NCCALCSIZE 消息进行处理,返回你所要的客户区的大小,具体你可 以参考 TWinControl 中对该消息的处理过程。