收藏 分享(赏)

11- 应用程序设计.ppt

上传人:gnk289057 文档编号:8435865 上传时间:2019-06-27 格式:PPT 页数:92 大小:870.50KB
下载 相关 举报
11- 应用程序设计.ppt_第1页
第1页 / 共92页
11- 应用程序设计.ppt_第2页
第2页 / 共92页
11- 应用程序设计.ppt_第3页
第3页 / 共92页
11- 应用程序设计.ppt_第4页
第4页 / 共92页
11- 应用程序设计.ppt_第5页
第5页 / 共92页
点击查看更多>>
资源描述

1、13 应用程序设计,同济大学,本章目标,本章主要介绍使用PowerBuilder 8.0进行应用程序设计,要求掌握使用PowerBuilder8.0 进行应用程序设计的基本步骤和需要编写的代码。,13.1 概述,对于所有的应用程序而言,都必须有一个程序入口,系统的运行必须从这个入口开始。例如,用C语言编写程序时,main( )就是入口点。与此相同使用PowerBuilder开发的应用程序同样需要一个入口点,它是PowerBuilder的一个对象应用对象。每个PowerBuilder应用程序都有且恰有一个应用对象,它代表了整个应用程序。程序从应用对象开始运行。,PowerBuilder是个面向对

2、象的开发环境,用它开发的应用程序以对象和事件驱动为基本特征。应用对象是作为PowerBuilder的对象之一,同样有一组事件,当用户运行应用程序时,这些事件在不同的情况下被触发,我们可以为这些事件编写代码以满足我们的具体要求。,13.1.1 应用程序的类别,在PowerBuilder中的应用程序有以下几种: 执行应用程序:这类应用程序是包括窗口、数据窗口和菜单等内容的集合一般用于传统的C/S模式。应用程序是分布式系统中的客户机或服务器程序。 服务器应用程序:这类应用程序是包含多个用户自定义对象的组件集合,这些对象提供了分布式系统(比如Jaguar CTS.)需要的企业级信息。 网络应用程序:这

3、类应用程序是在IE中运行的一些窗体。PowerBuilder 为我们提供了创建网络应用程序的很多扩展信息,读者可以在以后的工作中灵活调用。,13.1.2 新建应用程序,13.1.3 打开建应用程序,13.2 为应用程序编写代码,13.2.1 连接数据库直接连接数据库是在应用程序中直接书写数据库的连接信息以实现与数据库的连接。这种方法使用起来比较简单,但是一定要注意,当数据库的信息发生变化则必须修改程序源代码以适应这些变化,由此对于移动数据库来说很不适合需要。主要实现代码如下:,/接口采用ODBC,DNS是HK_ERP,UID是HK_ERP,PWD是HK_ERP sqlca.dbms = “OD

4、BC“ sqlca.dbparm = “Connectstring=DSN=HK_ERP;UID=HK_ERP;PWD=HK_ERP“ Connect If sqlca.sqlcode 0 Then MessageBox(“数据库连接错误“, sqlca.sqlerrtext, Exclamation!)Halt Close End if,13.2.2 打开窗口,数据库连接完成后需要打开应用系统的主窗口主要实现代码如下:/ 续上节代码 Open ( w_main ),本章小结,应用程序设计的基本步骤为应用程序设计编写代码,14 菜单设计,本章目标,本章主要介绍使用PowerBuilder 8.

5、0进行菜单设计,要求掌握使用PowerBuilder 8.0 进行菜单设计的基本步骤和需要编写的代码。,菜单由一系列命令或选项(菜单项)构成,用户通过选择选项发出命令,指示程序完成用户期待的任务。菜单项就相当于一个命令,有时,通过菜单项和通过命令按钮可以达到同样的效果。但是,应当注意,菜单是在程序运行过程中动态生成和维护的,因此具有不稳定性,在其中应当尽量放置较少的代码。,14.1 菜单设计基础,菜单可以分为下拉式菜单、弹出式菜单、级联式菜单三种类型。它们都是由一些菜单项组成的。菜单在PowerBuilder中也是一种对象,在应用设计过程中,我们可以在任何时间创建可修改菜单。,14.1.1 创

6、建菜单,菜单项的创建和修改一般都是通过PowerBuilder系统提供的Menu画板完成的。创建菜单一般包括以下几个步骤:,14.1.2 工具栏设计,为了使应用程序使用起来更加方便,我们可以给它加上工具栏。工具栏上的图标按钮为菜单项的选择提供了一种快捷方式,用户只需单击工具栏上的图标就能完成相应菜单项的相同功能。在PowerBuilder中:用户能够控制工具栏的显示特性;工具栏上的图标按钮直接对应于菜单中的某个菜单项,用户单击工具栏上的图标按钮与单击相应菜单项的效果相同;同一个菜单可以有多个工具栏;菜单中定义的工具栏只对MDI窗口有效。对其它类型窗口来说,菜单定义的工具栏无效,不会显示在窗口上

7、。如果用户实在需要的话只有自己编程实现;当工具栏上的图标较多时,也可以定义下拉式工具栏图标,就像PowerBuilder开发环境中控件图标那样。,创建工具栏的步骤,14.2 菜单的属性和事件,菜单的主要功能是用来执行一条或一组命令,它本身的属性和事件比较少,并且不复杂。,14.2.1 菜单的属性,打开菜单的属性页,如下图所示。用户可以在属性页内修改菜单属性,也可以在程序中进行动态赋值,前一种实现比较方便,后一种比较灵活。这两种方法可以根据用户需求任意选择。,14.2.2 菜单的事件,打开菜单的属性页,如下图所示。用户可以在属性页内修改菜单属性,也可以在程序中进行动态赋值,前一种实现比较方便,后

8、一种比较灵活。这两种方法可以根据用户需求任意选择。,Select事件:当用户使用箭头键或鼠标移动焦点到该菜单对象时触发Select事件。Select事件没有参数和返回值。常用于显示帮助信息等。 Click事件:当用户单击菜单项、用键盘选择该菜单项并按“Enter”键、按住菜单项的快捷键或者当菜单项可见时按住加速建都会触发该菜单项的Clicked事件。该事件无参数、无返回值。常用于打开窗口等操作,例如以下代码打开窗口:w_xxszopen ( w_xxsz,w_main ),14.2.3 菜单函数,Disable: 语法:menuname.Disable ( ) 功能: 使某菜单项不能使用,一般

9、是变为灰色。 参数:menuname 菜单名称,Enable: 语法:menuname.Enable ( ) 功能: Enable ( ) 函数使得某菜单项可用。 参数:menuname 菜单名称,PopMenu: 语法:menuname.PopMenu ( xlocation, ylocation ) 功能: 在某位置显示菜单 参数:menuname 菜单名称xlocation 位置 x 坐标ylocation 位置 y 坐标,PostEvent: 语法:objectname.PostEvent ( event, word, long ) 功能:把指定事件放置到菜单对象事件队列的尾部。 参数

10、:objectname:菜单对象的名称;event:事件名称;word:事件发生后用于传递事件的word参数,保存在Message的WordParm属性中;long:用于传递事件的long参数,保存在Message的LongParm属性中。,Show: 语法:objectname.Show ( ) 功能:当指定控件或(菜单)对象被隐藏时显示该控件或(菜单)对象。如果控件或(菜单)对象时,Show函数把它显示在其它对象的前面。 参数:objectname: (菜单) 对象名称,TriggerEvent: 语法:objectname.TriggerEvent ( event , word, lon

11、g ) 功能:触发指定的事件,并立即执行为该事件所编写的代码。 参数:objectname:菜单对象的名称;event:触发的事件名称;word:事件发生后用于传递事件的word参数,保存在Message的WordParm属性中。long:用于传递事件的long参数,保存在Message的LongParm属性中。,本章小结,菜单设计的方法为菜单编写代码,15 数据窗口设计,本章目标,本章主要介绍使用PowerBuilder 8.0进行应用系统的窗口设计,要求掌握使用PowerBuilder 8.0 进行窗口设计的基本步骤、常用控件的使用和代码的编写。,窗口是图形用户界面中最基本的元素,也是Po

12、werBuilder中的一个重要对象。在使用PowerBuilder设计的应用程序时,用户的各种操作都是通过窗口来进行的。,15.1 窗口操作,窗口由属性、事件、函数、控件组成。我们将各种控件、菜单与窗口融合成一个整体作为应用程序与用户交互的界面。窗口可以显示信息,向用户请求信息,并能响应用户的键盘或鼠标操作。在Powerbuilder系统中共可以使用六种类型的窗口它们是:主窗口 、多文档界面窗口 、带MicroHelp的多文档界面 、弹出式窗口、响应式窗口、子窗口。,15.1.1 创建窗口,创建窗口有两种方法,它们是新建窗口和继承窗口,新建窗口的步骤如下:,15.1.2 窗口属性,窗口的属性

13、代表了窗口的基本性质,程序员经常需要修改窗口的属性值以达到用户的需求。为了更改窗口的属性,先要通过单击工具栏中的“Open“图标打开它;然后在Window画板的Layout视图单击该窗口以选择它(不要单击窗口上的控件部分)。这样就可以在Property视图中修改它的属性了。窗口的属性页包含四个页面,分别为:General标签页 Scroll标签页 ToolBar标签页 Other标签页,General 标签页,Scroll 标签页,ToolBar 标签页,Other 标签页,15.1.2 窗口事件,基于Windows平台的程序都是事件驱动的,在学习窗口的设计时窗口的事件必须要掌握。下面我们介绍

14、窗口的基本事件操作: Open事件:Open事件在打开窗口时被触发,一般可以在Open事件中作一些变量的初始化工作。 Close事件:Close事件在窗口关闭时发生。一旦触发Close事件,将无法阻止关闭窗口。在Close事件中,通常销毁一些在窗口中创建的对象。,CloseQuery事件:CloseQuery事件在窗口关闭之前发生。它的发生先于Close事件,一般在该事件中编写一些代码进行错误检查。如果不符合要求,可以停止关闭窗口。 Resize事件:Resize事件在窗口的大小发生改变时发生。 Timer事件:Timer事件在Timer ( ) 函数调用后触发。但不是立即触发,而是每经过Ti

15、mer ( ) 函数的参数指定的时间后就触发。,Clicked、DoubleClicked事件:Clicked、DoubleClicked事件分别在单击或者双击窗口时触发。这里单击或者双击的是窗口,而不是窗口中的控件。 Key事件:当焦点不在一些编辑控件 ( 如SingleLineEdit、RichTextEdit、ListView等 ) 时,如果用户按下键,那么就会触发Key事件。,MouseMove、MouseDown、MouseUp事件: 当在窗口区域内移动鼠标时触发MouseMove事件; 当在窗口上没有控件覆盖的地方单击鼠标左键时触发事件MouseDown事件; 释放鼠标左键时触发M

16、ouseUp事件。,15.2 窗口中的控件,窗口的主要功能是通过控件来实现的,任何一个窗口都必须包含有控件,PowerBuilder提供了几十种控件,我们在此介绍一些常用的控件及其常用属性。,15.2.1 命令按钮,命令按钮通常用来传达用户的一个操作命令。,命令按钮的属性,以下是一个命令按钮控件的Click事件中的代码:/打开一个窗口,同时关闭当前窗口Open(w_main)Close(w_dl),命令按钮比较常用的事件是Click事件。当单击命令按钮控件时,该事件被触发。Click事件没有参数,只有一个唯一的返回值0,表示可以继续执行。,15.2.2 图形按钮,图形按钮与一般命令按钮的不同之

17、处在于它不但可以显示文本,还可以显示图片,使得可以更加形象地表示按钮的基本功能。,图形按钮的属性,15.2.3 静态文本,一般静态文本用来显示一些提示性的内容,以指示用户完成某些操作。静态文本之所以称为静态,是因为它一般不能由用户通过键盘和鼠标改变。但可以通过代码来更改该控件的显示文本。,静态文本的属性,15.2.4 单行编辑,单行编辑控件用来接受用户的信息,显示用户输入的文本。,单行编辑框的属性,单行编辑控件比较重要的事件有3个: GetFocus事件:在单行编辑控件获得焦点时被触发。可以在这个事件中编写代码进行一些输入前的准备工作。 LostFocus事件:在单行编辑控件失去焦点时被触发。

18、可以在这个事件中编写代码进行输入后的检查工作。 Modified事件:在用户改变单行编辑控件中文本内容并改变焦点后被触发,即它是在LostFocus控件之后被触发的。更一般地,我们在这个事件中编写代码进行检查工作。因为LostFocus事件不论用户是否进行了修改工作,都将被触发。,15.2.5 掩码编辑,掩码编辑与单行编辑类似,只不过它可以创建一个掩码,要求用户必须按照一个的格式进行输入,而且还可以对用户的输入进行自动格式化。,掩码编辑的属性,15.2.6 多行编辑,多行编辑和单行编辑类似,但是它可以输入多行文本,在里面可以对文本进行简单地编辑。,多行编辑的属性,15.2.7 单选钮,单选按钮

19、组是一组互斥的选项,用户只能从中选择一项。单选钮依靠分组框来分组。如果不对窗体上的单选钮分组,那么整个窗体上的单选钮就成为一组。,单选按钮的属性,15.2.8 复选按钮,与单选钮相比,每个复选按钮都是独立的(无论是否对它们进行分组)。对一个复选按钮的选择与否并不影响对其他控件的选择。,复选按钮的属性,15.2.9 标签,通常所说的标签(Tab)指的是标签页的标题,同时也是标签页的标识。当某个标签页被其它标签页遮挡时,单击该标签页的标题,这个标签页就成为当前标签页,显示在标签控件中,同时遮挡住其它标签页。标签页是标签控件的主要部分,它处于标签控件的下部,通常可以在上面添加其他控件。一般来说,每个

20、标签控件都有多个标签页,分别对应多组数据和/或选项。这些标签页占据标签控件中的相同区域,某时刻,用户只能看到当前标签页,它覆盖了其它标签页。,标签的属性,Tab Page 标签页,事件: SelectionChanging事件:当用户选择另外一个标签页时,将触发SelectionChanging事件; SelectionChanged事件:当用户选择另外一个标签页后,或者最初显示窗体而初始化一个控件后,将触发SelectionChanged事件。它在SelectionChanging事件之后发生。,函数: CloseTab函数:关闭用OpenTab ( )或OpenTabWithParm ( )函数打开的标签页。执行CloseTab ( )函数后,将触发相应用户对象的Destructor事件。 MoveTab函数:用于移动一个标签页到另外一个位置,并随之改变索引号。 OpenTab函数:用来打开一个用户对象作为当前控件的一个标签页。 OpenTabwithParm函数:同OpenTab函数。 SelectTab函数:用来选定一个标签页,同时把它作为当前的标签页。,本章小结,窗口设计的步骤常用控件代码编写,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报