版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、13 应用程序设计,同济大学,本章目标,本章主要介绍使用PowerBuilder 8.0进行应用程序设计,要求掌握使用PowerBuilder8.0 进行应用程序设计的基本步骤和需要编写的代码。,应用程序是PowerBuilder程序的入口,它定义了应用程序的系统级行为,例如应用程序使用哪些应用库来保存用到的各种对象、对象的缺省字体、应用程序的图标等。,13.1 概述,对于所有的应用程序而言,都必须有一个程序入口,系统的运行必须从这个入口开始。例如,用C语言编写程序时,main( )就是入口点。与此相同使用PowerBuilder开发的应用程序同样需要一个入口点,它是PowerBuilder的
2、一个对象应用对象。每个PowerBuilder应用程序都有且恰有一个应用对象,它代表了整个应用程序。程序从应用对象开始运行。,PowerBuilder是个面向对象的开发环境,用它开发的应用程序以对象和事件驱动为基本特征。应用对象是作为PowerBuilder的对象之一,同样有一组事件,当用户运行应用程序时,这些事件在不同的情况下被触发,我们可以为这些事件编写代码以满足我们的具体要求。,13.1.1 应用程序的类别,在PowerBuilder中的应用程序有以下几种: 执行应用程序:这类应用程序是包括窗口、数据窗口和菜单等内容的集合一般用于传统的C/S模式。应用程序是分布式系统中的客户机或服务器程
3、序。 服务器应用程序:这类应用程序是包含多个用户自定义对象的组件集合,这些对象提供了分布式系统(比如Jaguar CTS.)需要的企业级信息。 网络应用程序:这类应用程序是在IE中运行的一些窗体。PowerBuilder 为我们提供了创建网络应用程序的很多扩展信息,读者可以在以后的工作中灵活调用。,13.1.2 新建应用程序,13.1.3 打开建应用程序,13.2 为应用程序编写代码,13.2.1 连接数据库 直接连接数据库是在应用程序中直接书写数据库的连接信息以实现与数据库的连接。这种方法使用起来比较简单,但是一定要注意,当数据库的信息发生变化则必须修改程序源代码以适应这些变化,由此对于移动
4、数据库来说很不适合需要。主要实现代码如下:,/接口采用ODBC,DNS是HK_ERP,UID是HK_ERP,PWD是HK_ERP sqlca.dbms = ODBC 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 打开窗口,数据库连接完成后需要打开应用系统的主窗口主要实现代码如下: / 续上节代码 Op
5、en ( w_main ),本章小结,应用程序设计的基本步骤 为应用程序设计编写代码,14 菜单设计,本章目标,本章主要介绍使用PowerBuilder 8.0进行菜单设计,要求掌握使用PowerBuilder 8.0 进行菜单设计的基本步骤和需要编写的代码。,菜单由一系列命令或选项(菜单项)构成,用户通过选择选项发出命令,指示程序完成用户期待的任务。菜单项就相当于一个命令,有时,通过菜单项和通过命令按钮可以达到同样的效果。但是,应当注意,菜单是在程序运行过程中动态生成和维护的,因此具有不稳定性,在其中应当尽量放置较少的代码。,14.1 菜单设计基础,菜单可以分为下拉式菜单、弹出式菜单、级联式
6、菜单三种类型。它们都是由一些菜单项组成的。菜单在PowerBuilder中也是一种对象,在应用设计过程中,我们可以在任何时间创建可修改菜单。,14.1.1 创建菜单,菜单项的创建和修改一般都是通过PowerBuilder系统提供的Menu画板完成的。创建菜单一般包括以下几个步骤:,14.1.2 工具栏设计,为了使应用程序使用起来更加方便,我们可以给它加上工具栏。工具栏上的图标按钮为菜单项的选择提供了一种快捷方式,用户只需单击工具栏上的图标就能完成相应菜单项的相同功能。 在PowerBuilder中:用户能够控制工具栏的显示特性;工具栏上的图标按钮直接对应于菜单中的某个菜单项,用户单击工具栏上的
7、图标按钮与单击相应菜单项的效果相同;同一个菜单可以有多个工具栏;菜单中定义的工具栏只对MDI窗口有效。对其它类型窗口来说,菜单定义的工具栏无效,不会显示在窗口上。如果用户实在需要的话只有自己编程实现;当工具栏上的图标较多时,也可以定义下拉式工具栏图标,就像PowerBuilder开发环境中控件图标那样。,创建工具栏的步骤,14.2 菜单的属性和事件,菜单的主要功能是用来执行一条或一组命令,它本身的属性和事件比较少,并且不复杂。,14.2.1 菜单的属性,打开菜单的属性页,如下图所示。用户可以在属性页内修改菜单属性,也可以在程序中进行动态赋值,前一种实现比较方便,后一种比较灵活。这两种方法可以根
8、据用户需求任意选择。,14.2.2 菜单的事件,打开菜单的属性页,如下图所示。用户可以在属性页内修改菜单属性,也可以在程序中进行动态赋值,前一种实现比较方便,后一种比较灵活。这两种方法可以根据用户需求任意选择。,Select事件:当用户使用箭头键或鼠标移动焦点到该菜单对象时触发Select事件。Select事件没有参数和返回值。常用于显示帮助信息等。 Click事件:当用户单击菜单项、用键盘选择该菜单项并按“Enter”键、按住菜单项的快捷键或者当菜单项可见时按住加速建都会触发该菜单项的Clicked事件。该事件无参数、无返回值。常用于打开窗口等操作,例如以下代码打开窗口: w_xxsz op
9、en ( w_xxsz,w_main ),14.2.3 菜单函数,Disable: 语法: menuname.Disable ( ) 功能: 使某菜单项不能使用,一般是变为灰色。 参数: menuname 菜单名称,Enable: 语法: menuname.Enable ( ) 功能: Enable ( ) 函数使得某菜单项可用。 参数: menuname 菜单名称,PopMenu: 语法: menuname.PopMenu ( xlocation, ylocation ) 功能: 在某位置显示菜单 参数: menuname 菜单名称 xlocation 位置 x 坐标 ylocation 位
10、置 y 坐标,PostEvent: 语法: objectname.PostEvent ( event, word, long ) 功能: 把指定事件放置到菜单对象事件队列的尾部。 参数: objectname:菜单对象的名称;event:事件名称;word:事件发生后用于传递事件的word参数,保存在Message的WordParm属性中;long:用于传递事件的long参数,保存在Message的LongParm属性中。,Show: 语法: objectname.Show ( ) 功能: 当指定控件或(菜单)对象被隐藏时显示该控件或(菜单)对象。如果控件或(菜单)对象时,Show函数把它显示
11、在其它对象的前面。 参数: objectname: (菜单) 对象名称,TriggerEvent: 语法: objectname.TriggerEvent ( event , word, long ) 功能: 触发指定的事件,并立即执行为该事件所编写的代码。 参数: objectname:菜单对象的名称;event:触发的事件名称;word:事件发生后用于传递事件的word参数,保存在Message的WordParm属性中。long:用于传递事件的long参数,保存在Message的LongParm属性中。,本章小结,菜单设计的方法 为菜单编写代码,15 数据窗口设计,本章目标,本章主要介绍使
12、用PowerBuilder 8.0进行应用系统的窗口设计,要求掌握使用PowerBuilder 8.0 进行窗口设计的基本步骤、常用控件的使用和代码的编写。,窗口是图形用户界面中最基本的元素,也是PowerBuilder中的一个重要对象。在使用PowerBuilder设计的应用程序时,用户的各种操作都是通过窗口来进行的。,15.1 窗口操作,窗口由属性、事件、函数、控件组成。我们将各种控件、菜单与窗口融合成一个整体作为应用程序与用户交互的界面。窗口可以显示信息,向用户请求信息,并能响应用户的键盘或鼠标操作。在Powerbuilder系统中共可以使用六种类型的窗口它们是:主窗口 、多文档界面窗口
13、 、带MicroHelp的多文档界面 、弹出式窗口、响应式窗口、子窗口。,15.1.1 创建窗口,创建窗口有两种方法,它们是新建窗口和继承窗口,新建窗口的步骤如下:,15.1.2 窗口属性,窗口的属性代表了窗口的基本性质,程序员经常需要修改窗口的属性值以达到用户的需求。为了更改窗口的属性,先要通过单击工具栏中的“Open“图标打开它;然后在Window画板的Layout视图单击该窗口以选择它(不要单击窗口上的控件部分)。这样就可以在Property视图中修改它的属性了。窗口的属性页包含四个页面,分别为: General标签页 Scroll标签页 ToolBar标签页 Other标签页,Gene
14、ral 标签页,Scroll 标签页,ToolBar 标签页,Other 标签页,15.1.2 窗口事件,基于Windows平台的程序都是事件驱动的,在学习窗口的设计时窗口的事件必须要掌握。下面我们介绍窗口的基本事件操作: Open事件: Open事件在打开窗口时被触发,一般可以在Open事件中作一些变量的初始化工作。 Close事件: Close事件在窗口关闭时发生。一旦触发Close事件,将无法阻止关闭窗口。在Close事件中,通常销毁一些在窗口中创建的对象。,CloseQuery事件: CloseQuery事件在窗口关闭之前发生。它的发生先于Close事件,一般在该事件中编写一些代码进行
15、错误检查。如果不符合要求,可以停止关闭窗口。 Resize事件: Resize事件在窗口的大小发生改变时发生。 Timer事件: Timer事件在Timer ( ) 函数调用后触发。但不是立即触发,而是每经过Timer ( ) 函数的参数指定的时间后就触发。,Clicked、DoubleClicked事件: Clicked、DoubleClicked事件分别在单击或者双击窗口时触发。这里单击或者双击的是窗口,而不是窗口中的控件。 Key事件: 当焦点不在一些编辑控件 ( 如SingleLineEdit、RichTextEdit、ListView等 ) 时,如果用户按下键,那么就会触发Key事件
16、。,MouseMove、MouseDown、MouseUp事件: 当在窗口区域内移动鼠标时触发MouseMove事件; 当在窗口上没有控件覆盖的地方单击鼠标左键时触发事件MouseDown事件; 释放鼠标左键时触发MouseUp事件。,15.2 窗口中的控件,窗口的主要功能是通过控件来实现的,任何一个窗口都必须包含有控件,PowerBuilder提供了几十种控件,我们在此介绍一些常用的控件及其常用属性。,15.2.1 命令按钮,命令按钮通常用来传达用户的一个操作命令。,命令按钮的属性,以下是一个命令按钮控件的Click事件中的代码: /打开一个窗口,同时关闭当前窗口 Open(w_main)
17、Close(w_dl),命令按钮比较常用的事件是Click事件。当单击命令按钮控件时,该事件被触发。Click事件没有参数,只有一个唯一的返回值0,表示可以继续执行。,15.2.2 图形按钮,图形按钮与一般命令按钮的不同之处在于它不但可以显示文本,还可以显示图片,使得可以更加形象地表示按钮的基本功能。,图形按钮的属性,15.2.3 静态文本,一般静态文本用来显示一些提示性的内容,以指示用户完成某些操作。静态文本之所以称为静态,是因为它一般不能由用户通过键盘和鼠标改变。但可以通过代码来更改该控件的显示文本。,静态文本的属性,15.2.4 单行编辑,单行编辑控件用来接受用户的信息,显示用户输入的文
18、本。,单行编辑框的属性,单行编辑控件比较重要的事件有3个: GetFocus事件:在单行编辑控件获得焦点时被触发。可以在这个事件中编写代码进行一些输入前的准备工作。 LostFocus事件:在单行编辑控件失去焦点时被触发。可以在这个事件中编写代码进行输入后的检查工作。 Modified事件:在用户改变单行编辑控件中文本内容并改变焦点后被触发,即它是在LostFocus控件之后被触发的。更一般地,我们在这个事件中编写代码进行检查工作。因为LostFocus事件不论用户是否进行了修改工作,都将被触发。,15.2.5 掩码编辑,掩码编辑与单行编辑类似,只不过它可以创建一个掩码,要求用户必须按照一个的格式进行输入,而且还可以对用户的输入进行自动格式化。,掩码编辑的属性,15.2.6 多行编辑,多行编辑和单行编辑类似,但是它可以输入多行文本,在里面可以对文本进行简单地编辑。,多行编辑的属性,15.2.7 单选钮,单选按钮组是一组互斥的选项,用户只能从中选择一项。单选钮依靠分组框来分组。如果不对窗体上的单选钮分组,那么整个窗体上的单选钮就成为一组。,单选按钮的属性,15.2.8 复选按钮,与单选钮相比,每个复选按钮都是独立的(无论是否对它们进行分组)。对一个复选按钮的选择与否并不影响对其他控件的选择。,复选按钮的属性,15.2.9 标签,通常所说的标签(Tab)指的是标签页的标题,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东麟州投资控股有限公司招聘10人备考题库附参考答案详解【研优卷】
- 2026年福建厦门市发展和改革委员会招聘非在编辅助岗人员1人备考题库附完整答案详解【各地真题】
- 售前销售激励策略与实施方案
- 幼儿园安全教育活动方案设计集
- 砂砾石施工方案
- 班级文化建设与学生行为规范方案
- 中小企业融资方案及风险评估报告
- 幼儿园晨间活动方案设计
- 临床护理路径优化方案
- 金融机构风险管理控制体系建设方案
- 四年级数学等量关系式的练习题
- 2024年职称英语等级考试综合类(A级)试题及答案
- 2023年嘉兴市招聘警务辅助人员考试真题及答案
- 人教版小学生必背古诗词(129首完整版)
- CCMD3中国精神障碍分类与诊断标准第3版
- 铁总-2014-11-2(铁路建设项目质量安全事故与招标投标挂钩办法铁总建设(2014)-290号)
- 重庆国隆农业科技产业发展集团有限公司招聘考试真题2022
- 钢结构工程施工工法
- YS/T 320-2014锌精矿
- LY/T 2842-2017林业常用药剂合理使用准则(一)
- 3到6岁幼儿园识字表
评论
0/150
提交评论