pb的5种类:
custom class :不可见用户自定义类 ,如实现函数的多态
standard class :标准不可见空间 扩展类
custom visual :用户自定义 可见类
External Visual: 外部可视类,如ocx引入
Standard Visual: PB标准可视空间扩展
“Control”和“Object”的区别:
在PB里,“Control”和“Object”都是类,只不过前者是可视类,后者是不可视类,叫法不同罢了。无论使用哪种方式创建的,对于PB库画板来说,都是UserObject,通过Insert-Object-UserObject或Insert-Control-UserObject都可以把它插入到Window里,当然,这个对象应该是可视的。另外的插入办法是通过PB的IDE左侧的对象树,直接用鼠标Drag就可以了,这种方法不仅可以插入可视的UserObject,还可以插入不可视的类(可以通过View-Non Visual object llist看到它)
对于拷贝来的代码,可以用一下方式判读是从哪里继承来的:
双击该对象,观察样式
1:如果仅仅是一个DataWindow或其它控件,说明该对象是从Standsrt Visual 继承的;
2:如果是多个控件的复合体,说明它是从Custom Visual继承的
3:如果是一个PB中不存在的控件,说明它可能是从External Visual 继承的
4:如果它没有Layout视图,说明它是从Custom Class 中继承的
5:如果它LayOut视图,但没有什么控件,说明它是从Standard Class中继承的
还有一个办法是右击该对象,选择Edit source,看看它的声明,Global type XXX from YYY,YYY就是祖先的类型
总的来说,从横向和纵向来看:
横向--standard,custom
纵向--visual,nonvisual
既然是标准,就有pb基本控件的事件,属性等,反之custom则得自定义很多事件和属性
投机的检查代码:
选择Edit source,看看它的声明,Global type XXX from YYY,YYY就是祖先的类型
如果是external visual就可以看到以下代码:
global type b from userobject
integer width = 288
integer height = 168
userobjects objecttype = externalvisual!
external:一般带libray,更好认了