PowerBuilder 被忽略的的技术
http://tech.ddvip.com 2007年11月20日 社区交流
本文详细介绍PowerBuilder 被忽略的的技术
1.1 把Object看作类
Completed: 100 %
类(Class),仅仅在概念的层次上,是不能直接使用的,类只有在具体化(实例化)后才能使用,实例化的类我们称之为对象(Object);
在PB的帮助中常常出现Object这个词,例如介绍菜单时使用的名称是Menu Object 而不是 Menu Class。(我认为严格讲,在帮助中这样叫有不妥之处;Sybase可能会有它自己的说法,这些我们暂且不管),为了能合理解释Powerbuilder的面向对象的继承、多态、封装等特性,现在我们作如下假设:
我们暂且把Powerbuilder中的Object统一称作Class;
本次约定在接下来的几次讨论中都有效,如果我能记得我会每次都强调一下;
1.2 窗口的控件创建和释放
Completed: 100 %
控件是我们在开发中最常用的了,但是放在窗口上的控件何时被创建,何时有被销毁?
创建过程:
在windows中,控件被创建时必须指明用来承载控件的窗口对象,所以可以肯定的是窗口的创建过程肯定在所有准备使用它来承载的控件之前完成创建;
细心的话你会注意到控件的Constructor事件会在窗口的Open之前执行,事情就是这样子的,那是因为窗口Open事件并不是窗口的Constructor事件,窗口在完成自己的创建后,再把Control[]中的对象一一创建,在这时控件的Constructor事件会被触发,在所有的控件成功创建完毕后窗口才会触发Open事件。
用流程图表示:
释放过程:
释放过程正好跟创建顺序相反;
在窗口收到WM_CLOSE消息前会先收到WM_CLOSEQUERY消息,来给开发人员一个阻止WM_CLOSE发生的时机;在Powerbuilder中WM_CLOSE <= > Event Close() ,WM_CLOSEQUERY <= >Event CloseQuery()。
责编:豆豆技术应用