全书配套课件:PB程序设计(基础篇-第二版)_第1页
全书配套课件:PB程序设计(基础篇-第二版)_第2页
全书配套课件:PB程序设计(基础篇-第二版)_第3页
全书配套课件:PB程序设计(基础篇-第二版)_第4页
全书配套课件:PB程序设计(基础篇-第二版)_第5页
已阅读5页,还剩688页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章PowerBuilder8.0概述1.1 PowerBuilder简介1.2 PowerBuilder开发环境1.3 PowerBuilder应用对象

小结

返回总目录1.1 PowerBuilder简介PowerBuilder是著名的数据库应用开发工具生产商SybaseInc.的子公司PowerSoft于1991年6月推出的数据库应用开发工具,历经了多次升级换代。PowerBuilder8.0是2000年推出的最新版本,以其自由的编程风格、强大的数据库处理能力、先进的Web应用技术和友好的界面等特点,给用户留下了深刻的印象。

返回章目录1.1 PowerBuilder简介PowerBuilder的开放式数据库系统,能够访问任何一种常用的数据库管理系统(DBMS),例如Oracle、Sybase、SQLServer、DB2、Informix等,它可以通过ODBC连接各种数据库,也可以通过专用接口与常用的数据库连接,从而大大提高了连接速度和效率。Power-Builder还可以使用内嵌的SQL语句对数据库进行操作,使得应用程序对数据的处理更加方便和灵活。

返回章目录1.1 PowerBuilder简介PowerBuilder8.0在保持PowerBuilder7.0功能的基础上做了许多的改动,其中最引人注目的是:作为集成开发环境,PowerBuilder8.0更简洁、更高效;与SybaseEAServer的紧密集成;提供了强大的Web应用开发能力等。这些新特性使得应用开发更加方便和高效。

返回章目录1.1 PowerBuilder简介1.卓越的应用开发效率和新的用户界面2.新增Web特性3.新增企业应用服务器(EAServer)集成4.新的数据库连接5.其他

返回章目录1.1 PowerBuilder简介1.卓越的应用开发效率和新的用户界面(1)工作区(Workspace)和目标(Target)(2)PowerSite集成(3)新的用户交互接口(4)增强的自动脚本(5)支持命令行编译及调度(6)源码控制改变(7)更完善的错误处理方式

返回本节录1.1 PowerBuilder简介2.新增Web特性(1)Web数据窗口编程(2)数据窗口容器组件(3)Web数据窗口发布(4)新的Web数据窗口事件(5)新的Web数据窗口服务器端方法(6)Web数据窗口的JavaScript包含文件(7)控件的HTML表示

返回本节录1.1 PowerBuilder简介3.新增企业应用服务器(EAServer)集成(1)新建EAServer组件实现已有接口(2)构架EJB客户端(3)客户/组件管理的EAS事务(4)SSL(SecureSocketsLayer—安全保护协议层)连接及反馈(5)EAServer组件的并发属性(6)EAServer中的多个PB虚拟机

返回本节录1.1 PowerBuilder简介4.新的数据库连接(1)新的以及增强的数据接口(2)支持ANSI外连接(Outerjoin)的SQL语法生成(3)在EAServer上支持数据库代理连接

返回本节录1.1 PowerBuilder简介5.其他(1)改进的异常处理(2)可执行文件的版本信息(3)新的对象和控件属性(4)新的数据窗口表达式(5)新的数据窗口对象属性(6)新的及改进的PowerScript函数(7)改变了GUID及MIME类型

返回本节录本节完1.2 PowerBuilder开发环境

1.2.1

PowerBuilder基本术语

1.2.2 PowerBuilder界面简介1.2.3 PowerBuilder的系统帮助

返回章目录1.2.1PowerBuilder基本术语

在建立一个PowerBuilder8.0应用的过程中会用到很多相关的元素和环境,我们先来介绍几个PowerBuilder8.0的概念和术语。1.工作区(Workspace)和目标(Target)2.对象(Object)、属性(Properties)和事件(Event)3.库(Library)4.画板(Painter)5.脚本(Script)6.函数(Function)

返回本节录1.2.1PowerBuilder基本术语1.工作区(Workspace)和目标(Target)工作空间可以看做是开发各种应用的“空间”或“容器”,用户根据需要在一个工作空间中建立一个或多个目标(应用),可以对多个目标中的对象同时进行打开和编辑的操作,也可以同时编译和部署多个目标。PowerBuilder的目标有以下两种类型:(1)PowerBuilder目标:可以是任何应用类型,如客户端可执行程序或服务器端组件。(2)Web目标:用来建立Web应用,它包含建立Web站点所需的各种元素,例如HTML文件、脚本、图片、下载的组件等。

返回本节录1.2.1PowerBuilder基本术语2.对象(Object)、属性(Properties)和事件(Event)PowerBuilder对象就是由PowerBuilder提供的、可以用来构造应用程序的一些“部件”。PowerBuilder提供了多种类型的对象,包括如窗口、数据窗口、菜单、按钮等的图形对象,以及如数据存储、错误、定时对象等的非可视化对象。对于Web目标,对象包括HTML页面、图片以及样式表等。

PowerBuilder为这些对象约定了属性和事件。属性决定对象的特征,开发人员可以给属性指定特定的值。事件是外部作用在对象上的一个“动作”,这个动作可以触发一段程序的执行。例如,在Windows中单击一个命令按钮就会触发一个程序开始执行,这里的单击就是事件。用户也可以为对象定义新的事件。PowerBuilder开发的应用程序是事件驱动的,运行于该环境下的程序并不是顺序地执行,即不是一条指令接着一条指令地执行,而是用户通过各种操作控制应用程序的流程。

返回本节录1.2.1PowerBuilder基本术语3.库(Library)PowerBuilder库(ˇ.PBL文件)用来存储各种对象,如应用对象、窗口对象、数据窗口对象等。一个PowerBuilder应用可以只有一个库文件,也可以有多个库文件(应用的规模比较大时)。当运行应用时PowerBuilder从设定的库中搜索对象。PowerBuilder提供了一个库画板来管理库文件及其对象。

返回本节录1.2.1PowerBuilder基本术语4.画板(Painter)用来编辑对象的编辑器称为画板。它的实际含义是工具或工具箱,或者把它看做是PowerBuilder大环境下的一个小环境。PowerBuilder开发环境由一系列集成的画板组成,其绝大多数工作都是在画板内进行的。PowerBuilder为窗口、菜单、数据窗口对象、可视化和非可视化的用户对象、函数、结构、数据库、数据管道以及应用等提供了画板。例如,在窗口画板内建立和编辑窗口、设置窗口的属性、添加控件、根据需要为窗口和控件编写代码等。

返回本节录1.2.1PowerBuilder基本术语5.脚本(Script)用PowerBuilder语言编写的程序通常称为脚本(Script)。PowerBuilder编程语言(Power-Script)属于第四代编程语言,功能强大。脚本通常由PowerScript函数、表达式以及为响应某个事件而要进行处理的语句组成。

返回本节录1.2.1PowerBuilder基本术语6.函数(Function)PowerBuilder提供了丰富的内置函数,可以利用这些函数对应用程序的各种对象和控件进行处理。如打开窗口的函数、检索数据的函数、更新数据库的函数等。此外,在应用程序中还可以定义自己的函数来执行某些特定的处理过程。根据这些函数的作用范围可以分为两种类型:对象级函数,它封装在对象内;全局函数,它作为独立的对象存储。

返回本节录1.2.2PowerBuilder界面简介

返回本节录系统树窗口包括以下四个标签页:●Workspace标签页●Page标签页●Language标签页●Components标签页1.2.2PowerBuilder界面简介把代码片断复制到剪贴窗口的操作方法如下(1)选中(高亮显示)要复制到剪贴窗口的代码。(2)按“Ctrl+C”键,或者右击选中的代码,在弹出式菜单中选择“Copy”菜单项。(3)单击剪贴板窗口的“Paste”按钮。(4)在文本框中输入剪贴的名称。(5)当使用某个剪贴时,从剪贴窗口中把该剪贴的名字拖到编辑窗口(或视图)。

返回本节录1.2.3PowerBuilder的系统帮助PowerBuilder提供了三类系统帮助,使用这些帮助,对于快速、准确地掌PowerBuilder的编程语言和使用方法是十分重要的。(1)网站链接:能够及时了解PowerBuilder的最新动态。(2)PowerBuilder系统内帮助:按下F1键或Help.Contents菜单项可以随时调出。它有目录页和索引页。(3)集成示例程序(CodeExamples)

CodeExamples的基本使用方法: ①打开CodeExamples应用 ②运行CodeExamples应用 ③查找和了解实例

返回本节录目录页以书目形式帮助查找所需解决的技术问题本节完1.3 PowerBuilder应用对象使用PowerBuilder开发一个传统的客户机.服务器应用系统的基本步骤如下:

(1)建立工作空间 (2)建立目标和应用对象 (3)建立窗口 (4)建立菜单(5)建立用户对象(6)建立函数、结构和事件(7)创建数据窗口对象 (8)测试和调试应用 (9)编译应用一般情况下,前两步完成后,其余步骤可以按照任意顺序进行。在以上这些步骤中,只有第一和第二步是必须的,其他都是可选的。

返回章目录1.3 PowerBuilder应用对象下面我们来介绍与应用对象相关的一些内容:

1.3.1创建应用对象

1.3.2应用画板

1.3.3应用对象的属性

1.3.4应用对象的事件

1.3.5应用对象的函数

返回章目录1.3.1创建应用对象创建一个新应用的步骤:(1)在工具栏上单击“New”按钮,弹出“New”对话框,选择“Workspace”选项卡,然后单击“OK”按钮,并且对这个工作区命名和保存,这样便建立了一个工作区。(2)在工具栏上单击“New”按钮,弹出“New”对话框,选择“Target”选项卡。(3)在Target选项卡中,选择“Application”(应用程序),单击“OK”按钮。(4)打开“SpecifyNewApplicationandLibrary”(指定新的应用和库)对话框。(5)单击“Finish”按钮完成应用的创建过程。

返回本节录1.3.2应用画板应用画板的构成如图:

返回本节录用来设置应用对象的属性,如应用程序的默认字体、应用对象的图标等不可视对象列表视图:用于浏览所有不可视对象Script(脚本)视图:在此视图中为应用对象的事件编写代码,可以通过下拉列表选择事件。FunctionList(函数列表)视图:可以查看应用对象的所有函数(包括用户自定义函数)定义应用对象的全局变量(GlobalVariables)、共享变量(SharedVariables)、实例变量(InstanceVariables)和外部函数(GlobalExternalFunctions)StructureList(结构列表)视图:用于查看所有应用对象的结构Structure(结构)视图:用来定义编辑应用对象的结构。1.3.3应用对象的属性应用对象的许多属性都是全局的重要信息,如它的字体属性就决定了应用程序在开发过程中其对象属性的文本字体。

1.General标签页

2.Toolbar标签页

返回本节录应用对象名称应用对象的替代名字输入所编写的应用程序界面的状态信息默认值Ready扩展属性设置应用程序的字体、图标和默认全局变量等数据窗口消息框标题等待DDE(动态数据交换)的最长时间设置文本的默认显示式应用程序断开数据库时是否释放内存设置应用程序的各类工具栏的标题栏标题子菜单项的显示文本1.3.4应用对象的事件应用对象的事件不多,一共只有六个,分别是Open、Close、Idle、SystemError、ConnectionBegin和ConnectionEnd事件,但它们却十分重要。下面介绍应用对象事件的触发与常见用法:1.Open(打开)事件2.Close(关闭)事件3.Idle(空闲)事件4.ConnectionBegin(连接开始)事件和ConnectionEnd(连接结束)事件5.SystemError(系统出错)事件

返回本节录1.3.4应用对象的事件1.Open(打开)事件一般来说,在Open事件处理程序中应该完成以下工作:(1)进行初始化。(2)利用INI文件设置某些属性,或初始化一个事务对象。(3)查询环境,保证应用程序所需的所有资源都可以使用。(4)连接要访问的数据库。(5)打开应用程序的第一个窗口。

返回1.3.41.3.4应用对象的事件2.Close(关闭)事件通常Close事件处理程序中完成以下工作(与Open事件相反):

(1)删除应用程序运行过程中创建的对象(例如额外的事务对象等)。 (2)在INI文件中保存状态信息,以便下次运行程序时恢复状态。 (3)关闭应用和程序中尚未关闭的文件。 (4)断开数据库的连接。

返回1.3.41.3.4应用对象的事件3.Idle(空闲)事件Idle事件通常与Idle()函数配合使用。Idle()函数设置一个定时器时间间隔,而用户的任何交互操作都将重设该定时器。如果在规定的时间间隔内用户没有敲击键盘或使用鼠标(即用户没有操作应用程序),那么系统将触发应用对象的Idle事件。Idle事件的用途有以下几种:

(1)创建自己独具特色的屏幕保护程序。(2)隐藏机密数据并强制用户在操作长时间未操作应用程序时重新输入密码。(3)了解用户是否长时间未操作应用程序,如果是那样,应用程序可以自动退出,并返回系统,这样有助于减少数据库的连接数目并节省数据库资源。

返回1.3.41.3.4应用对象的事件4.ConnectionBegin(连接开始)事件和ConnectionEnd(连接结束)事件

ConnectionBegin事件和ConnectionEnd事件用于分布式PowerBuilder的服务器端。当客户程序试图连接或断开服务器时,触发服务应用对象的ConnectionBegin事件或ConnectionEnd事件。

返回1.3.41.3.4应用对象的事件5.SystemError(系统出错)事件SystemError事件是处理运行错误的最后一道关卡,用来处理最严重的错误,可以在此处编写错误处理和可能的恢复代码,最简单的措施是显示出错信息。如果未对此事件编程,那么系统出错时,PowerBuilder会通过对话框显示错误代码和错误信息。

返回1.3.41.3.5应用对象的函数应用对象的函数可以在函数列表视图中看到。其中常用函数有:(1)ClassName():返回应用对象的名字。(2)TypeOf():返回应用对象的类型。(3)GetApplication():取当前应用对象的句柄

返回本节录本节完

小结PowerBuilder是一种快速的数据库及Web应用开发工具,特别是PowerBuilder8.0具有很多优秀的特点。在本章中介绍了PowerBuilder的高度集成的可视化、面向对象的开发环境以及在这一环境中的各种术语,为了帮助读者学习和提高PowerBuilder的编程技巧,本章介绍了联机帮助和PowerBuilder提供的CodeExamples实例程序,这些典型的应用程序可以加速提高编程水平。本章详细介绍了应用对象,应用对象对开发PowerBuilder应用程序至关重要,需要重点掌握。

返回章目录第2章PowerScript编程语言2.1 PowerScript语言基础2.2 数据类型2.3 运算符及表达式2.4 变量2.5 PowerScript语句2.6 语句应用实例小结

返回总目录2.1 PowerScript语言基础2.1.1注释2.1.2标识符2.1.3特殊的ASCII字符

2.1.4空值2.1.5代词

返回章目录2.1.1注释注释是添加在程序中的一些说明性文字。注释并不会被执行,而是简单地被跳过。PowerScript有两种注释:

行注释:用//表示,从双杠开始到行尾均为注释。块注释:用/**/表示,从/*开始到*/结束为注释。例如,下面是两种注释的使用://这是一行注释st1.Text=″希望本书为您提供帮助″//占用半行注释/*从此行起注释

…中间行…尾行结束注释*/

返回本节录2.1.2标识符用来标识变量名、数组名、文件名、函数名、窗口名、控件名及对象名等的字符序列,称为标识符PowerScript中标识符的命名必须遵循以下原则:(1)必须以字母或下划线“”开头。(2)不可以是保留字。(3)最长可以到40个字符,但中间不能有空格(实际可以比这更长)。(4)不区分大小写字母(PART和Part、part是等价的)。(5)可以是任何字母、数字及一些特殊符号(-、、S|、#、%)的组合。

返回本节录

2.1.3特殊的ASCII字符在字符串中可以包含一些特殊的ASCII字符,特别是控制字符。特殊的ASCII字符或控制字符用符号“~”做前缀。

返回本节录2.1.3特殊的ASCII字符

返回本节录特殊字符表示方法特殊字符表示方法换行~n走纸~f回车~r退格~b制表符~t波浪线~~垂直制表~v十进制形式的ASCII码~000-~255单引号~′十六进制形式ASCII码~h00-~hFF双引号~″八进制形式的ASCII码~o000-~o3772.1.4空值空值(Null)是关系数据库的一个特殊概念,可以把它看做是一个特定的值,代表数据未定义、不确定。它与空字符串、数值零以及日期0000ˉ00ˉ00的意义完全不同。空值在程序中用英文单词Null表示。

返回本节录2.1.5代词PowerBuilder提供了四个代词:This、Parent、ParentWindow和Super,可以用于引用某指定对象或控件,来增加程序代码的通用性This:代表窗口、用户对象、菜单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象Parent:指当前控件所在的窗口arentWindow:代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用。Super:此代词只在使用了继承时使用,指代的是该对象的父对象。调用祖先对象函数的语法格式是:Super::〈函数名〉(〈参数表〉)

返回本节录本节完

2.2数据类型2.2.1标准数据类型2.2.2系统对象数据类型2.2.3枚举数据类型2.2.4Any数据类型

返回章目录2.2.1标准数据类型

标准数据类型是我们在各种程序设计语言中已经熟悉的数据类型,如字符型、数值型、日期型等。下面我们简单介绍一下这些数据类型Blob:大型二进制类型。包括文本文件、图像等。Boolean:布尔类型。布尔型变量只有True和False,用于逻辑表达式。声明布尔类型变量时,默认值为False。Character(或Char):单个ASCII字符。Date:日期类型。包括年(4位数)、月(2位数)、日(2位数)。如:2002ˉ12ˉ05。

返回本节录2.2.1标准数据类型DateTime:日期时间类型。包括年、月、日和时间。如:2002ˉ12ˉ0519∶23∶36Decimal(或Dec):数值型。带符号,最多18位数,小数点位置不限。如:456.2312Double:双精度类型。范围从2.2E-308到1.7E+308,默认值为0。如:1.234E-5。Integer(或Int):整型。16位带符号整数,范围从-32768到32767,默认值为0Long:长整型。32位带符号整数,范围从-2147483648到2147483647,默认值为0

返回本节录2.2.1标准数据类型Real:实型。具有6位有效数字的带符号浮点数,范围从1.17E-38到3.4E+38,默认值为0。如:56.43E+6String:字符串类型。用于存储任意的ASCII字符,32位环境中长度只受系统能力的限制。书写时,用单引号(′′)或双引号(″″)括起来,如:′ABC′Time:24小时制时间,包括小时、分、秒及几分之一秒。范围从00∶00∶00到23∶59∶59∶999999。如:12∶45∶56∶123456

返回本节录2.2.1标准数据类型UnsignedInteger(UnsignedInt或UInt):无符号整型。16位数,范围从0到65535。UnsignedLong(或ULong):无符号长整型。32位数,范围从0到4294967295。

返回本节录2.2.2系统对象数据类型在PowerBuilder中,窗口、菜单、各种控件都是系统对象,每一种系统对象实际上都是定义在PowerBuilder内部的一种数据类型。在Browser画板中通过System选项卡可以浏览到PowerScript的全部系统对象数据类型。通常只需在相应画板中定义它们,对它们进行可视化操作。但有时候需要动态地处理窗口、菜单、控件等系统对象,这时就要定义系统对象数据类型。

返回本节录2.2.3枚举数据类型枚举类型是一种用符号代替的数值,是PowerBuilder定义的特殊常量。在PowerBuilder8.0中开发人员不能定义自己的枚举类型,只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号(!)结束。如:Center!、Left!、Right!。枚举数据类型有以下两种用途,其中,后一种用途较多:(1)作为函数的参数。(2)指定对象或控件属性。

返回本节录

2.2.4Any数据类型PowerBuilder支持任意数据类型(Any),它可以存储包括标准数据类型、对象、结构和数组等各种类型的数据值。

Any数据的类型由初值类型决定,也就是说,当不能确定变量声明为何种类型时,可以将它声明为Any类型,以后可以为此变量赋任意类型的值,但一旦赋值,它的类型也就决定了。说明Any类型变量的方法和说明其他类型变量的方法是一样的。可以用一般的赋值语句对变量赋值,也可将一个数组赋值给单一的Any变量。当对Any变量赋值后,可以使用ClassName函数检测它的实际数据类型。

返回本节录2.2.4Any数据类型在使用Any类型的变量时要注意以下规则和约束:(1)可以赋值给Any变量任何值。(2)当把Any变量的值赋给兼容的数据类型变量时,必须知道Any变量的内容。(3)如果Any变量的值是一个数组,不可以直接存取数组的元素。(4)如果Any变量的值是一个结构,不可以使用圆点符号(.)来直接存取结构的元素。(5)当一个Any变量被赋值后,该变量不能再改为没有数据类型的一般Any变量,但它可以再被赋予其他类型的值。

返回本节录本节完2.3运算符及表达式2.3.1运算符2.3.2表达式

返回章目录2.3.1运算符PowerScript支持的运算符可以分为四种类型:算术运算符、关系运算符、逻辑运算符和连接运算符。运算符有优先级和结合律。1.算术运算符算术运算符用于完成数学运算。算术运算符有加(+)、减(-)、乘(ˇ)、除(.)、乘方(^)。其中加(+)、减(-)还用于正、负号表示。

返回本节录2.3.1运算符算术运算优先级别:乘方最高、乘除次之、加减最低;同级运算遵循自左至右的原则。PowerScript还提供了一组扩展算术运算符:++、--、+=、-=、.=、ˇ=、^=。例: A++把A加1赋给

AA--把A减1赋给A A+=B把A加B赋给A A-=B把A减B赋给A Aˇ=B把A乘B赋给A A.=B把A除以B赋给A A^=B把A的B次方赋给A

返回本节录2.3.1运算符2.关系运算符关系运算符用来对相同类型的操作数进行大小比较运算,常用于条件语句和循环语句。关系运算符有大于(>)、等于(=)、小于(<)、不等于(<>)、大于等于(>=)、小于等于(<=)。关系运算符的结果是True和False。例:″abc″=″abc″结果是True″abc″=″Abc″结果是False

返回本节录2.3.1运算符3.逻辑运算逻辑运算符用来对布尔型的变量进行运算,运算符有非(Not)、与(And)、或(Or),其结果是True和False。例:IfA>10AndA<100Then……4.连接运算符连接运算符只有一个,即:“+”,用于把两个String型或Blob型变量的内容连接在一起形成新的同类型数据。例:s1=″computer″+″book″,此时s1的值为″computerbook″

返回本节录2.3.2表达式操作符代表了符号化的运算,PowerScript利用操作符构成表达式,完成一定的运算。表达式的运算次序是由运算符的优先级定义的。使用括号可以改变表达式的运算次序。因此,运算符的优先级共分九级,同级运算自左至右结合。

返回本节录2.3.2表达式()括号+、-、++、--正号、负号、自增、自减^ 幂运算*、/ 乘、除+、- 加、减及连接运算=、>、<、>=、<=、<>关系运算符Not逻辑非And逻辑与Or逻辑或

返回本节录本节完2.4变量2.4.1变量的作用域2.4.2变量的声明

返回章目录2.4.1变量的作用域在PowerBuilder中,有四种不同范围的变量,它们有不同的作用域和用途:

(1)局部变量(Local):在相应的代码段定义和使用的临时变量,代码结束此变量消失。所以它的作用范围仅在所在的事件和函数内起作用。(2)实例变量(Instance):属于一个对象且与这个对象的一个实例相关,它只能在这个对象内部的任何地方使用。当在Window下定义时,其作用范围是在该窗口及其窗口内的各种控件的所有事件、函数等。

返回本节录2.4.1变量的作用域(3)全局变量(Global):可以在应用的任何地方存取,它的定义独立于任何对象。在整个应用程序中,对全局变量的调试和跟踪非常困难,建议不用或少用全局变量。(4)共享变量(Shared):在一个对象内定义,但可以在这个对象的所有实例中引用。共享变量是在第一次创建该类的对象时初始化的。当用户删除该对象时,共享变量将保留其最后一个值。

返回本节录2.4.2变量的声明在PowerBuilder中,所有变量在使用之前,都要首先予以声明。变量声明的简单格式为

数据类型变量名[=初值][,变量名[=初值]……]需要说明的是:(1)变量名必须是PowerScript合法的标识符。(2)一次说明多个变量时,变量之间用逗号分隔。(3)未定初值时,数值型值为零,字符型值为空字符。(4)系统预定义的五个全局变量(SQLCA、SQLDA、SQLSA、Error、Message)不需事先声明。例如:Integerscore=100 Stringcity=″大连″,country

返回本节录本节完2.5PowerScript语句2.5.1赋值语句2.5.2条件语句2.5.3循环语句

2.5.4其他常用语句

返回章目录2.5.1赋值语句赋值语句能够把一个表达式的结果或者变量和常量的值赋给一个变量、某对象的属性或成员变量。它的语法格式如下: variablename=expression

其中,variablename代表变量名,expression代表表达式,其作用是把表达式的值赋给等号左边的变量。例如:area=3.14ˇrˇr。由于等号也是关系运算符,因此不能使用多重的赋值方法。例如:lsstr1=lsstr2=″abc″//这条语句是错误的

返回本节录2.5.2条件语句条件控制语句通过判断关系表达式的返回值决定程序的执行语句,常用的条件控制语句有If语句和ChooseCase语句。If语句首先计算一个逻辑表达式,然后根据表达式的值是真(True)还是假(False)决定下一步执行的语句组;ChooseCase语句可同时处理多种情况。下面分别介绍这两种语句。

返回本节录2.5.2条件语句1.If语句

If语句的格式有两种形式,我们从简单到复杂逐一介绍。(1)单行If……Then格式单行形式的If语句的语法格式如下:If表达式(expression)Then语句(statements1)[Else语句2]它的含义是:当关系表达式成立(返回值是True)的时候,程序执行语句1;如果关系表达式不成立(返回值是False)的时候,跳过语句1,执行下一条语句(如果方括号中写有语句2,则先执行语句2)。例如:Ifgsuserid=′super′ThenMessageBox(′欢迎′super!′)单行If……Then语句书写时整条语句写在一行上,而且最后不能加EndIf,否则编译会报错。

返回本节录2.5.2条件语句(2)多行的形式多行形式的If……Then语句的语法格式如下:If表达式1 Then语句1[ElseIf表达式2 Then语句2…][Else语句n]

EndIf

它的含义是:当关系表达式1成立(返回值是True)的时候,程序执行语句1;如果关系表达式不成立(返回值是False)的时候,执行ElseIf中关系表达式2,如果成立,则执行语句2;否则继续向下跳,直至执行语句n。

返回本节录2.5.2条件语句2.ChooseCase语句

ChooseCase语句根据某变量的不同取值执行相应的语句。常用于情况比较多的事件的处理。

ChooseCase的语法格式是:ChooseCasetestexpression Caseexpression_list1 statements1

[Caseexpression_list2 statements2… Caseexpression_listn statementsn] [CaseElse statementsn+1]

EndChoose

返回本节录2.5.2条件语句ChooseCase条件语句中的表达式列表,可有如下几种不同的写法:(1)独立的单个变量值。(2)用逗号分隔的一些变量值的列表,比如:0,2,4。(3)用To表示一个区间范围,例如:2To10或′b′To′h′。(4)用Is代表测试值,后跟关系操作符和比值,例如:Is>=0。(5)以上几种语句的组合(中间以逗号隔开),例如:5,6,8To12,Is>20。

返回本节录2.5.3循环语句循环语句用来根据设置好的判断依据的状态,决定是否循环执行某段程序块,被重复执行的语句叫做循环体。循环可以分为两种,一种是事先知道循环的执行次数,一种是知道循环结束的条件。PowerScript提供的循环语句有三种形式: Do……Loop循环语句、

For……Next循环语句、

Goto循环语句。

返回本节录2.5.3循环语句1.Do……Loop循环语句无论是知道循环的次数,还是知道循环结束的条件,都可以使用Do……Loop语句来控制循环。Do……Loop语句中,Do表示循环的开始,Loop表示循环结束,在它们之间的是循环体。PowerScript根据循环条件放的位置和结束值,提供了四种形式:

返回本节录2.5.3循环语句(1)DoWhile……Loop语句,格式如下:DoWhileCondition StatementBlockLoop其中,Condition为循环条件表达式,StatementBlock为循环体(循环执行的语句,以下含义与此相同)。当程序执行到DoWhile语句时,通过判断条件表达式的真假,决定是否执行循环语句中的程序块。如果表达式返回真值(True),则执行程序块,然后再回到DoWhile语句,判断表达式的真假,决定是否继续执行循环语句,否则跳出循环,执行下一条语句。

返回本节录2.5.3循环语句(2)DoUntil……Loop语句,格式如下:DoUntilCondition StatementBlockLoop当程序执行到DoUntil语句时,如果条件表达式返回假值,则执行程序块,然后再回到DoUntil语句,判断表达式的真假,如果仍是假则继续执行循环语句,否则跳出循环,执行下一条语句。也就是程序一直执行循环,直到条件表达式为真。

返回本节录2.5.3循环语句(3)Do……LoopWhile语句,格式如下:Do StatementBlockLoopWhileCondition

这种格式的用法与第一种类似,只是由于条件表达式的判断在最后,因此先执行了程序块之后再判断是否进行循环。

返回本节录2.5.3循环语句(4)Do……LoopUntil语句,格式如下:Do StatementBlockLoopUntilCondition这种格式的用法与第二种类似,只是由于条件表达式的判断在最后,因此也是先执行了程序块以后,再判断是否进行下一循环。

返回本节录2.5.3循环语句2.For……Next循环语句For……Next是一个计数循环,用于循环次数确定的循环结构,它使循环体内的语句执行规定的次数。其语法结构为: ForVarname=StartToEnd[StepIncrement] StatementBlock Next

其中,Varname代表循环变量,Start和End分别为初值和终值,Increment为步长增量,缺省值为1。程序首先将变量赋以初值,执行程序块,然后将变量值增加一个步长,再执行程序块。这样循环执行,直到变量值等于终值,最后执行程序体后,退出循环,执行Next后的语句。这种语句通常用在循环次数确定的代码中。

返回本节录2.5.3循环语句3.Goto语句Goto语句是一条无条件转移语句,它将控制跳转到程序中的其他位置,用Goto语句也可以构成循环。Goto语句的语法格式为

GotoLabel

其中,Label是语句标号,它符合标识符的命名规则。但程序中尽量避免使用Goto语句,以方便程序的管理和维护。

返回本节录2.5.3循环语句4.Continue(继续循环)

Continue语句是用在循环语句中的控制语句,自身不带任何参数。PowerScript语言中,在Do……Loop和For……Next语句的循环体中,遇到Continue语句后,将不执行Continue语句后与循环结束前的所有语句,而提前开始新一轮循环。

Do……Loop与For……Next循环语句均可嵌套使用,而Continue只在当前的循环体内有效,并不会影响外层的循环体。

返回本节录2.5.3循环语句5.Exit(退出循环)Exit也是用在循环语句中的控制语句,可在循环体的任何地方使用。当程序执行Exit语句时,程序就退出当前循环体。与Continue语句一样,在嵌套循环的情况下,Exit语句退出当前层循环,而不是所有循环。

返回本节录2.5.3循环语句6.循环嵌套循环嵌套就是把一个循环放在另一个循环的内部,后面(2.6节中)通过一个实例说明循环嵌套的工作方式。

返回本节录2.5.4其他常用语句1.Return语句

Return语句用于从脚本中返回调用程序,等待用户的下一个动作。其语法格式为

Return[Expression]Return语句还可以用在用户定义函数中。当程序执行到Return处时,退出函数,继续执行调用函数处以下的代码。用在函数中时,Return后面可以带一个返回值Expression,此返回值的类型必须与函数的返回值类型相同。

返回本节录2.5.4其他常用语句2.Halt语句Halt语句是用来中止应用程序的。其语法格式为

Halt[Close]当应用程序出现重大问题或者不应该继续执行的时候,可以使用Halt语句来终止应用程序。如果在Halt后有Close关键字,应用程序先执行应用对象的Close事件中的代码,然后再终止应用程序。

返回本节录2.5.4其他常用语句3.Create语句Create语句生成对象实例变量,在生成后,用点操作符引用对象的成员。语句将返回一个可以在变量中保存的对象实例句柄。它有两种语法格式:Objectvariable=CreateObjectTypeObjectvariable=CreateUsingObjectTypeString其中,Objectvariable持有该对象实例,ObjectType代表对象类型,ObjectTypeString是保存需要创建的对象类型名称的字符串。

返回本节录2.5.4其他常用语句4.Destroy语句

Destroy语句用来释放用Create语句创建的对象实例。其语法格式为

DestroyObjectVariable

返回本节录本节完

2.6语句应用实例

例2.1求解100以内能够被5整除的自然数之和。这里使用三种循环语句完成,请注意它们的格式。例2.2完成学生的百分成绩的转换。这里使用条件语句完成,请注意它们的格式

返回章目录本节完小结PowerBuilder是事件驱动的应用程序,事件发生时所要处理的事情需要程序完成。PowerBuilder系统提供了一种独有的编程语言———PowerScript,它是一种高级的、结构化的、面向对象的编程语言。本章介绍了PowerScript语言的基础知识及其用法,与C语言十分类似,知识本身比较简单,但在后续课程和实际编程中却非常灵活,常常把标识符的合法性、变量的类型、变量的作用域以及语句等知识综合在一起进行使用。本章讲述的内容不是课程的重点,而是PowerBuilder的基础

返回章目录本节完第3章窗口与控件3.1 窗口及控件在应用中的地位和作用3.2 窗口的基础知识3.3 窗口及窗口控件的使用3.4 窗口及控件实例小结

返回总目录3.1 窗口及控件在应用中的地位和作用窗口是Windows应用程序中最常见的也是最重要的界面元素之一,它是一种人机交互的界面。应用程序的主要操作都是在窗口上实现的。Windows操作系统下主要的人机交互功能都是由窗口完成的。窗口和控件均有自己的属性、事件和函数,通过设置它们的属性,为事件编写脚本,可以定制它们的外观和行为,实现应用程序的功能。

返回章目录本节完3.2窗口的基础知识3.2.1窗口画板3.2.2窗口属性3.2.3窗口事件3.2.4窗口类型

返回章目录3.2.1窗口画板窗口对象在窗口画板中进行编辑

返回本节录保存当前窗口复制选中的内容打开当前窗口或控件的属性视图剪切选中的内容编写当前窗口或控件的脚本重做刚才的操作控件下拉工具栏撤消当前的操作把剪贴板中的内容粘贴到当前位置设置控件的Tab顺序预览窗口关闭窗口画板3.2.1窗口画板

返回本节录选择所有内容注释脚本当前行取消当前行注释查找字符串查找下一处替换字符串编译窗口粘贴函数粘贴SQL语句粘贴PowerBuilder语句粘贴全局变量粘贴共享变量粘贴窗口实例变量粘贴窗口的名字粘贴对象的名字粘贴参数3.2.1窗口画板

返回本节录设置控件放在上一层设置控件放在下一层打开布局下拉工具栏设置控件的前景颜色设置控件的背景颜色打开边框下拉工具栏,设置控件的边框样式3.2.1窗口画板

返回本节录用来输入和编辑控件的文本用来选择文本的字体字体用来设置字体的大小文本以粗体显示文本以斜体显示文本加下划线文本向左对齐文本居中对齐文本向右对齐3.2.2窗口属性

窗口的属性决定其显示风格。要设置窗口的属性,可按下述步骤进行:

(1)右击窗口背景的空白处,弹出菜单选择“Properties”,打开窗口的属性视图 (2)选择属性视图的不同标签页,设置相应的属性窗口。属性视图共有4页:基本特征标签页(General)、滚动条标签页(Scroll)、工具栏标签页(Toolbar)、其他标签页(Other)。其中最重要的是基本特征标签页。

返回本节录3.2.2窗口属性1.General标签页

返回本节录设置窗口标题一个字符串类型的属性,指定窗口的标签值设置与窗口关联的菜单3.2.2窗口属性2.Scroll标签页设置窗口的滚动条属性及其滚动速度

返回本节录设置当用户单击垂直滚动条中的向上或向下箭头时,向上或向下滚动的距离设置当用户单击水平滚动条中的向左或向右箭头时,向左或向右滚动的距离设置当用户单击水平滚动条时窗口滚动的列数设置当用户单击垂直滚动条时窗口滚动的行数3.2.2窗口属性3.Toolbar标签页

返回本节录在工具栏浮动时使用3.2.2窗口属性4.Other标签页

返回本节录3.2.3窗口事件PowerBuilder的窗口事件有许多种,下面列出了这些事件触发条件及意义。Activate事件:在激活(Active)窗口前触发。该事件发生后,窗口中第一个跳转次序号最小的对象首先得到焦点。如果窗口中没有这样的对象,则窗口本身得到焦点。

Clicked事件:用户单击窗口中空白区域时触发。

Close事件:窗口被关闭时触发。触发该事件后,没有办法阻止窗口关闭操作,但可以在该事件脚本中处理关闭前的准备工作,如:数据库断开连接、关闭文件等。

CloseQuery事件:在开始关闭窗口时,触发该事件。执行该事件的事件处理程序后,系统检查返回值,如果返回值为1,则窗口不被关闭,通常情况下紧随其后触发的Close事件不启动;如果返回值为0,则窗口被关闭。利用该事件的这种特性,程序能够根据当前状态提醒用户保存数据、询问用户是否真要关闭窗口。窗口被关闭时,同时关闭任何与之相关的子窗口和弹出窗口。

返回本节录3.2.3窗口事件Deactivate事件:当窗口为不活动时触发。DoubleClicked事件:当双击窗口客户区中任何未被有效控件占用的部分时触发。DragEnter事件:当可拖放对象进入窗口客户区时触发。DragLeave事件:当可拖放对象离开窗口客户区时触发。

DragWithin事件:当可拖放对象在窗口客户区中被拖动时触发。

HotLinkAlarm事件:在动态数据交换(DDE)服务器应用发送了新的(修改后的)数据、且客户DDE应用程序已经接收到数据时触发。

返回本节录3.2.3窗口事件Key事件:当用户在键盘上按下一个键且插入点不在编辑区域(如单行编辑框、超文本框等)中时触发。MouseDown事件:当用户在窗口客户区中任何未被有效控件占用的部分按下鼠标左键时触发。MouseMove事件:当鼠标在窗口内移动时触发。MouseUp事件:当用户在窗口客户区中任何未被有效控件占用的部分放开鼠标左键时触发。Open事件:在窗口打开之后、显示之前触发,此时系统已经构造好了窗口的所有属性以及其上的所有控件。RbuttonDown事件:当用户在窗口客户区中任何未被有效控件占用的部分按下鼠标右键时触发。

返回本节录3.2.3窗口事件Resize事件:当窗口大小发生变化时触发,窗口被打开时也触发此事件。

SystemKey事件:当插入点不在编辑框中且用户按下Alt或Alt+其他键时触发。Timer事件:在调用Timer函数启动定时器、设定时间后触发。ToolbarMoved事件:当MDI窗口上的工具栏被移动时触发。

返回本节录3.2.3窗口事件这些事件的发生有着严格的顺序,在为窗口事件编写脚本时需要正确理解它们触发的前后顺序,以达到预期的功能。窗口事件发生的顺序为

Open→Show→Activate→窗口活动时的各种鼠标事件、键盘事件及其他事件→Deactivate→CloseQuery→Close

返回本节录3.2.4窗口类型PowerBuilder提供了6种类型的窗口:1.主窗口(Main) 主窗口在应用程序中使用十分普遍。主窗口不依赖其他窗口而存在,它可以覆盖其他窗口,也可以被其他窗口覆盖。2.弹出式窗口(Popup)弹出式窗口是在另外的窗口中打开的窗口,在大多数情况下,打开弹出式窗口的窗口也就是该弹出式窗口的父窗口。

返回本节录3.2.4窗口类型3.子窗口(Child) 子窗口通常在主窗口或弹出式窗口中被打开,这些窗口也就成为子窗口的父窗口。4.响应式窗口(Response) 响应式窗口用于向用户接收请求信息并得到用户的应答,它们总是在其他窗口(它的父窗口且非响应式窗口)中打开。5.MDI框架窗口(MDIFrame)

MDI窗口是个框架窗口,可以在它的里面打开多个文档窗口(Sheet),并且可以任意切换和移动这些文档窗口。

返回本节录本节完3.3窗口及窗口控件的使用3.3.1窗口的创建及保存3.3.2窗口控件的使用3.3.3常用的窗口控件

返回章目录3.3.1窗口的创建及保存创建窗口的方法有两种:普通方式继承方式。普通方式 创建一个新窗口的步骤如下:

(1)选择“File.New”菜单项,或者单击PowerBuilder工具栏上的“New”按钮,打开“New”对话框

返回本节录3.3.1窗口的创建及保存

返回本节录选择“PBObject”标签页选中“Window”图标在Target下拉列表框中选择要建立新窗口的目标。单击“OK”按钮。PowerBuilder打开窗口画板工作区设置窗口的属性,为窗口添加各种控件,编写事件的脚本。保存窗口3.3.1窗口的创建及保存2.继承方式创建窗口面向对象编程的特点之一是对象具有继承性,PowerBuilder的窗口也具有继承性。使用继承方法建立一个后代窗口的步骤如下:(1)选择“File.Inherit”菜单项,或者单击PowerBuilder工具栏上的“Inherit”按钮,打开“InheritfromObject”对话框

返回本节录3.3.1窗口的创建及保存

返回本节录选择“Windows”选择包含窗口的目标选择包含窗口的库3.3.1窗口的创建及保存(3)双击要建立后代窗口的祖先窗口名称,或者选择一个窗口后,单击“OK”按钮。(4)根据选择的窗口创建一个后代窗口,并在窗口画板内根据需要对后代窗口作适当的修改,然后以新文件名存盘。

返回本节录3.3.1窗口的创建及保存当使用继承的方法建立一个其他对象时,与以上步骤相同,不同之处在于要根据所要创建的对象类型在ObjectofType下拉列表框中选择相应的类型。对于使用继承方式创建的窗口,用户可以根据需要进行如下操作:(1)改变窗口的属性。(2)向后代窗口添加新控件和修改已存在控件。(3)调整窗口及其控件的大小和位置。(4)为窗口及其控件的事件建立新的脚本或定义窗口及其控件的用户事件。(5)引用祖先的函数、事件和结构。访问祖先的属性,例如实例变量(前提是属性的作用范围是Public或Protected类型的)。(6)扩展或者替换继承的脚本。(7)声明窗口的函数、结构、变量。(8)在后代的窗口中,不允许的操作是删除继承而来的控件。如果在后代窗口不需要某个继承而来的控件,可以在后代窗口把它Visible或Enabled属性设置为False。

返回本节录3.3.1窗口的创建及保存3.保存窗口在制作窗口及窗口控件的过程中要经常进行存盘操作。在第一次存盘操作时,系统会给出一些提示信息,具体的操作步骤如下:(1)选择“File.Save”菜单项,或者单击画板工具栏的“Save”按钮。(2)对于没保存过的窗口,PowerBuilder打开“SaveWindow”对话框

返回本节录3.3.1窗口的创建及保存(3)在Windows文本框中输入窗口的名称。窗口的名称可以是40个字符以内的任何合法的PowerBuilder标识符。PowerBuilder对象的名字应该由两部分组成,前一部分标识该类对象,窗口一般用“w”开头,后一部分为指示该对象功能的有意义的名称。(4)在Comments编辑框中输入对窗口的注释,说明窗口的用途,方便合作。(5)在ApplicationLibraries列表中选择要保存窗口的库。(6)单击“OK”按钮,返回画板工作区。

返回本节录3.3.2窗口控件的使用1.在窗口中插入控件(1)选择“Insert.Control”菜单项,或者单击画板工具栏中的控件下拉工具栏(2)在“Insert.Control”菜单项的级联菜单中选择要插入的控件名称菜单项,或者单击下拉工具栏中的控件按钮。(3)在窗口的布局视图中,单击要放置控件的位置。(4)插入控件后,可以调整它的大小和位置,设置它的各种属性以及为它的事件编写脚本。

返回本节录3.3.2窗口控件的使用2.控件的复制和删除复制控件的方法有两种:外观复制和完全复制。外观复制只复制控件的外观和属性,而控件的事件脚本不复制。具体操作是:

(1)选择要复制的控件。 (2)选择“Edit.Duplicate”菜单项或者按“Ctrl+T”键即可。

返回本节录3.3.2窗口控件的使用完全复制时,控件的所有属性及其所有脚本都会被复制。具体操作基本同上相似,步骤如下:

(1)选择要复制的控件。 (2)选择“Edit.Copy”菜单项或者按“Ctrl+C”键,或者单击画板工具栏的“Copy”按钮。控件被复制到PowerBuilder剪贴板中。(3)如果在同一窗口内复制控件,则选择“Edit.Paste”菜单项或者按“Ctrl+V”键,或者单击画板工具栏的“Paste”按钮;如果在不同的窗口间复制,则首先打开一个窗口并使其成为活动窗口,然后进行上述操作。 (4)粘贴后就得到了该控件的一个拷贝。如果粘贴的控件与窗口内已存在的另一个控件同名,则PowerBuilder会把复制后的控件自动重新命名。 (5)在复制控件时,PowerBuilder把控件粘贴到目标窗口的同一位置,因此如果在同一个窗口内复制控件,应该把复制后的控件移动到其他位置,任意更改复制后的控件,原来的控件不会受到影响。

返回本节录3.3.2窗口控件的使用要删除窗口中某一控件时,可以执行下面的某一项操作:(1)右击要删除的控件,在弹出式菜单中选择“Delete”菜单项。(2)选中要删除的控件,单击画板工具栏的“Cut”按钮。(3)选中要删除的控件,按Delete键。

返回本节录3.3.2窗口控件的使用3.控件的布局选择控件可以在布局视图或控件列表视图内进行。选择控件可以分成以下几种情况:(1)选择单个控件:在窗口的布局视图上单击要选择的控件,或者在控件列表视图中单击控件的名字。(2)选择相邻的多个控件:在相邻控件某一角的窗口空白处按住鼠标左键,拖动鼠标,使它经过所要选择的控件,这时PowerBuilder会显示一个表示选择范围的方框,当所有要选择的控件都在方框内时,释放鼠标左键。(3)选择不相邻的多个控件:可以单击某个控件,然后按住Ctrl键,再单击其他控件。(4)选择所有控件:可以选择“Edit.SelectAll”菜单项或按“Ctrl+A”键。

返回本节录3.3.2窗口控件的使用4.设置控件的通用属性●标题(Text)属性●Visible属性●Enabled属性●快捷键●颜色属性

返回本节录3.3.2窗口控件的使用5.控件的命名每个控件都必须有一个名字,在PowerBuilder应用程序开发中,应该遵循一个统一的命名规范。把控件添加到窗口中时,PowerBuilder会为每一个控件指定一个惟一的名字。该名字由两部分组成:前半部分是该控件的默认前缀,后半部分是一个1~4位的数字。

返回本节录3.3.2窗口控件的使用6.设定控件的Tab顺序改变控件的Tab顺序的步骤如下:(1)选择“Format.TabOrder”菜单项,或者单击画板工具栏的“TabOrder”按钮(2)单击要改变的Tab值,或者按Tab键移动焦点到Tab值处,输入一个新的Tab值(取值范围为0~9999)。(3)重复上一步骤,直到所有控件的Tab值设置完毕。(4)再次选择“Format.TabOrder”菜单项或者单击“TabOrder”按钮,Tab顺序将被保存下来。

返回本节录3.3.3常用的窗口控件1.命令按钮(CommandButton)和图形按钮(PictureButton)

返回本节录3.3.3常用的窗口控件2.静态文本(StaticText)与静态超链接(StaticHyperLink)

返回本节录3.3.3常用的窗口控件3.单行编辑框(SingleLineEdit)和多行编辑框(Multi-LineEdit)

返回本节录3.3.3常用的窗口控件4.单选按钮(RadioButton)与复选框(CheckBox)单选按钮的属性

返回本节录3.3.3常用的窗口控件5.掩码编辑框(EditMask)及标签TAB(1)掩码编辑框

返回本节录3.3.3常用的窗口控件(2)标签TAB●为标签控件添加标签页

返回本节录3.3.3常用的窗口控件●标签控件的属性

返回本节录3.3.3常用的窗口控件●标签页的属性

返回本节录3.3.3常用的窗口控件●删除标签页与调整标签页的次序右击标签页,在弹出式菜单中选择“Delete”菜单项。默认情况下,PowerBuilder按插入标签页的先后顺序作为标签页的次序,可以根据需要调整标签页的排列次序,操作方法是:

(1)选择标签控件属性视图的“PageOrder”标签页。(2)单击标签名称前面的按钮,按住鼠标左键不放,拖动该条目到新位置,释放鼠标按钮。

返回本节录3.3.3常用的窗口控件●标签控件的事件标签控件有一些特有的事件,如:RightDoubleClicked(在控件上右击时触发)事件、SelectionChanged(选择另一个标签页之时触发)事件、SelectionChanging(选择另一个标签之前触发)事件。

返回本节录3.3.3常用的窗口控件6.列表框(ListBox)及图片列表框(PictureListBox)(1)列表框类控件的通用属性:●DisableNoScroll:设置滚动条的行为。●ExtendedSelect:允许用户同时选中多个项目,允许时可以按下Shift键后单击鼠标选中连续多项,或按下Ctrl键后单击选中不连续的多项,或拉出矩形框选中框内连续的多项。●MultiSelect:允许用户同时选中多个项目,但只能通过鼠标单击来选择。 ●AllowEdit:允许在编辑框中进行编辑。 ●ShowList:使下拉列表框变为列表显示,失去下拉功能。 ●Items:用于输入列表框中的项目。控件有Items属性页,在这一页输入其列表值,按Tab键输入下一行,可以对输入的列表项进行选择、删除、移动等操作。

返回本节录3.3.3常用的窗口控件(2)列表框的事件列表框的常用事件包括:DoubleClicked(双击列表框时触发)事件、SelectionChanged(选中了列表框的某个项目时触发)事件。

返回本节录3.3.3常用的窗口控件7.进度条(HProgressBar.VProgressBar)与滚动条(HScrollBar.VScrollBar)(1)进度条的属性(2)进度条的事件进度条的事件包括Clicked、DoubleClicked、Rbuttondown等,它们分别在单击、双击、右击进度条时触发。

返回本节录3.3.3常用的窗口控件(3)滚动条的属性

返回本节录3.3.3常用的窗口控件(4)滚动条的事件水平滚动条和垂直滚动条共有的事件有:Moved(单击或拖动滚动条的滑块时触发)事件、RbuttonDown(右击滚动条时触发)事件。水平滚动条的主要事件有:LineLeft(单击控件的左箭头按钮时触发)事件、LineRight(单击控件的右箭头按钮时触发)事件、PageLeft(单击滚动条的左边滑块时触发)事件、PageRight(单击滚动条的右边滑块时触发)事件。垂直滚动条也有类似的四个事件。

返回本节录本节完3.4窗口及控件实例例3.5创建一个窗口wcontrol,此窗口用来控制颜色选择。首先向窗口添加控件,并更改它们的相应属性。

返回章目录3.4窗口及控件实例

返回本节录3.4窗口及控件实例例3.6最后,我们把例3.2到例3.5组合在一起。在本例中,使用了我们在前面介绍的大部分控件,只是展示一下如何使用这些常用控件。并以选项卡的形式完成的。实现的应用程序窗口外观如图3ˉ39所示。

返回本节录3.4窗口及控件实例

返回本节录本节完小结本章介绍如何创建一个窗口、为窗口添加

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论