3.2 应用程序对象
在PowerBuilder开发环境中,应用对象是一个极为重要的概念,它是整个应用程序运行时的入口点,可以说所有的开发工作都是围绕应用对象展开的,应用对象包含了被开发的应用程序的总体信息和程序中用到的其它对象的有关信息,下面就来详细介绍应用对象的有关操作。
3.2.1 创建应用对象
创建一个应用对象的过程如下:
开发一个PowerBuilder应用程序的第一步就是为应用程序创建一个新的应用对象,单击POWERBAR工具条上的APPLICATION画板按钮,系统打开前一次开发的应用程序的应用对象,
选择FILE菜单的NEW菜单项,系统首先弹出一个对话框用来选择保存新建的应用对象的对象库文件的路径和名字,应用对象一定要存放在对象库中,这里既可以选择一个已有的对象库也可以创建一个新的对象库,作为一个新的应用对象,一般总是创建一个新的对象库来存放它。
创建好对象库之后,在弹出的SAVE APPLICATION对话框中给应用对象起个名字,然后单击OK按钮,系统提示是否为应用程序创建一个应用模板,所谓应用模板就是应用程序的大致框架,如果为应用程序创建应用模板的话,系统将会为应用程序生成一些最常用的对象和一些对象最基本的事件脚本,这样可以节省程序员开发应用程序的负担,也提高了程序的可靠性。关于模板的作用,在前面的内容中已经有了介绍,但有的时候系统生成的模板与我们所期望的程序结构有很大的差异,无论是否使用应用模板,系统都会创建一个新的应用对象。
PowerBuilder的应用程序是由窗口,菜单等许多对象组成的,而应用对象则包含了所有这些对象的总体信息,用鼠标单击POWERBAR工具条上的APPLICATION按钮,弹出的窗口中包含的就是当前正在开发的应用程序的应用对象,从这里我们可以了解应用程序的总体结构。用鼠标双击窗口中的应用对象图标,可以发现应用对象就像一个目录一样被扩展,扩展出来的内容就是应用程序所包含的第一级子对象,在有些子对象的前面还有加号,这表示这个子对象中还包含有下一级的子对象,用鼠标双击就可以打开第二级的子对象,使用这样的方法就可以了解当前所开发的应用程序中所包含的所有对象和应用程序的总体结构。
3.2.2 设置应用对象的属性
所谓应用对象的属性实际上是指应用程序一些总体上的属性,设置应用对象的属性的过程如下:
单击PAINTERBAR工具条上的PROPERTIES按钮,就可以对应用对象的属性进行设置和修改。
在弹出的APPLICATON对话框中选中ICON标签,就可以为应用程序指定图标,单击BROWSE按钮,在系统中为应用程序寻找一个合适的图标,确定后相应的图标就会预显示在对话框中,这样就为应用程序设好了图标。
接下来为应用程序指定对象搜索路径,我们已经知道PowerBuilder应用程序中包含许多的对象,这些对象都要放在对象库中,PowerBuilder并不要求把所有的对象放在一个对象库中,而且一个应用程序可以同时引用几个对象库中的对象,这样当使用一个对象的时候就存在如何在对象库中搜索对象的问题。单击APPLICATION对话框中的LIBRARIES标签,可以在这个名为LIBRARY SEARCH PATH的编辑框中输入搜索对象库的完整路径,也可以单击BROWSE按钮,然后在系统中选中一个已存在的对象库,确定后系统就把它的路径自动放到编辑框中。应用程序在使用对象的时候系统就会按照编辑框中设置的路径依次在对象库中搜索被使用的对象,如果搜索失败将会出现系统错误。
观察APPLICTION对话框不难发现其中一半的标签是用来设置字体的(图3-5), TEXT FONT用来设置静态文本的字体。COLUMN FONT用来设置数据窗口中从数据库中取回的数据的字体,LABEL FONT标签是用来设置字段的扩展属性LABEL的字体,HEADER FONT则是指定字段的扩展属性HEADER的字体。而对于每一个字体又包含字体,字的风格,字的大小,字的颜色,字的背景颜色等选项,要指出的是这里设置的字体都是面向整个应用程序的。
单击APPLICATION对话框中的GENERAL标签,其中包含的是应用程序的最基本的信息,如应用对象名,对象库名,应用程序最后一次被修改的时间等信息。
图3-5
单击VARIABLE TYPES标签,对话框中显示的是PowerBuilder为应用程序提供的缺省全局对象,每个编辑栏中的文本代表对象的名字,编辑框中的内容代表对象的类型。这里的SQLCA对象我们在前面的程序中使用过,它是事务处理类型,用来为应用程序和数据库通讯服务。SQLDA和SQLSA对象则是在进行数据库存取时使用的,ERROR对象用来记录程序运行期间的出错信息,以方便编程和调试。MESSAGE对象则是用在窗口对象之间传递信息的。
最后介绍一下应用对象的事件。确定应用对象处于打开状态,单击PAINTERBAR工具条上的SCRIPT按钮,在SCRIPT窗口中的第一个下拉列表框中显示的就是应用级事件(图3-6)。下面介绍几个主要的也是最常用的事件,OPEN事件是在应用程序启动后发生,在这个事件的脚本中主要做程序的初始工作,如给全局变量赋值,打开窗口等,CLOSE事件是在应用程序将要关闭的时候发生,这个事件的脚本是用来处理程序关闭前的善后工作,比如和后台数据库断开连接等。如果程序中调用了IDLE函数,那么应用程序运行时用户在一定的时间里没有使用鼠标和键盘就会触发IDLE事件。IDLE事件的脚本用来处理程序长时间没有输入事件的情况,比如可以在脚本中调用屏幕保护程序。SYSTEMERROR事件发生在程序运行出现严重错误的时候,这时不加以处理的话系统会弹出警告对话框指出问题的所在,我们在这个事件中编写脚本的主要目的是防止因为程序运行错误而导致应用程序,甚至整个系统的瘫痪。
图3-6
关于应用对象就介绍到这,接下来一节要介绍的是有关数据库方面的知识。即使你对数据库有了一定的了解也建议你学习一下,因为其中涉及到PowerBuilder是如何处理数据库的。