当前位置: 代码迷 >> PB >> 全局变量与全局对象,该如何解决
  详细解决方案

全局变量与全局对象,该如何解决

热度:105   发布时间:2016-04-29 07:17:21.0
全局变量与全局对象
我看到有 讨论全局变量与全局对象的问题,有几点不知道,
1、全局对象指什么,我看到好多都说非可视化全局变量的函数集,这个是怎么定义与使用的。有例子最好
2、我有好几个初始化设置的变量想放在一起,变量类型不一致,想用全局的结构,但定义全局变量时怎么不能实例化结构。

------解决方案--------------------
我的理解:
1, 对象可以有事件,可以有函数,也可以包含有标准数据类型的变量,甚至还可以在其中定义另外的一种对象的变量; 一个对象可以被当成一种数据类型,像标准数据类型如string, int, datetime 等一样被重复的声明和使用; 并且根据需要, 可以定义该对象实例的不同作用域,也就是全局的或局部的..
2, 这个问题首选的处理方式就是结构. 结构和对象不一样, 不需要实例化 create, 也不需要删除 destroy. 像标准数据类型的变量一样, 定义了即可引用.




------解决方案--------------------
1.全局对象就是指在Globle Varialbes中定义的对象,就跟全局变量一样,在整个应用程序中都可以使用。非可视化全局对象就是不可见的全局对象,通过File->New->PB Object->Custom Class可以创建不可视对象,对象可以定义自己的函数。在使用过程中需要使用create实例化对象(选中AutoInstantiate可自动实例化),然后就可以调用该对象的函数了。因此,你可以把一些常用的功能通过这种方式封装到一个对象里面,以后在编码过程中就可以随时调用了。
2.结构体和全局变量一样,直接定义就可以了,不用实例化
------解决方案--------------------
引用:
例如我通过PB_OBJECT structure定义一个结构体s_str
如果在窗口的某个事件中可以通过s_str mystr来利用此mystr,但此mystr应该是一个局部的变量,如果我想在任何地方都能用到此结构体,该如何用。


那就把s_str mystr作为窗口的实例变量,定义为public(这是默认的)这样就可以在其他的地方访问了。PB中所有的窗口类都在系统中自动实例化为一个同名的对象。
  相关解决方案