PB中object,contral,custom class,custom visual,custom external等概念的区别

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,更好认了  

发布了18 篇原创文章 · 获赞 47 · 访问量 47万+

猜你喜欢

转载自blog.csdn.net/tlammon/article/details/99024688
今日推荐