非可视控件与可视控件的识别(200分)

  • 主题发起人 主题发起人 joysun
  • 开始时间 开始时间
J

joysun

Unregistered / Unconfirmed
GUEST, unregistred user!
如果一个控件动态创建,我怎么知道这个控件是可视控件还是非可视控件?
 
看他的父类,如果是从TControl类继承的应该是可视的,
 
看她有没有visible属性
 
有没有函数或者属性什么的?
 
如果是他自己从头开始开发的控件那就难以判断
 
我就是担心她是从头开发的!delphi编译器是怎么是别的?
 
应该在控件建立时PAINT里会有不同吧,看看PAINT是从哪继承的.
 
可不可以通過有沒有句柄來判斷
 
如果没有源码的话,它是不是可视控件基本不能准确判断。
vcl中的可视控件都是从TControl类继承下来的,如果你用 (控件 is TControl)检测为真那么可以判断
它是可视控件;如果这个拥有Left、Top、Width、Height等属性可以判断基本上是可视控件,画它的画面
时要用到这些属性。

窗口句柄是窗口控件的特征,非可视控件也一样可以有窗口句柄。

 
看他的父类,如果是从TControl类继承的应该是可视的,
窗口句柄是窗口控件的特征,非可视控件也一样可以有窗口句柄。
 
If XXX Is TControl Then
可视;
因为可视控件都是从TControl继承下来的
 
标准的继承控件是从TControl继承下来的为可视控件,但是有没有可能出现例外!
 
自己写的在设计期是看不到的。因为IDE就是判断是否是TControl的子类来区分的。
既然设计期不可见,我想也不能叫做可视的
 
多人接受答案了。
 
后退
顶部