【PB案例学习笔记】-01创建应用、窗口与控件

pb · 浏览次数 : 0

小编点评

**小目标掌握pb应用程序的创建、运行、中止等最基本操作。学会使用Static Text控件、CommandButton控件和MessageBox函数上面说的控件和函数都是实际开发中最常用的二** **1. Static Text 控件** Static Text 控件用于显示静态文本内容(通常用于显示标题、标签、说明文字等静态信息) 常用属性: * Name:必选参数,用于获取控件Text控件显示的文本内容 * Tag:可选参数,用于设置按钮的标识符 * Visible:可选参数,用于设置按钮是否可见 **2. CommandButton控件** CommandButton控件用于触发特定操作或事件的按钮 常用属性: * Name:必选参数,用于设置按钮的唯一标识符 * Text:必选参数,用于设置按钮上显示的文本内容 * Icon:可选参数,用于设置按钮的图标 * Default:可选参数,用于设置默认按钮的样式 **3. MessageBox函数** MessageBox函数可以打开一个小信息窗口,不仅可以以多种方式给用户显示提示信息,还可以将用户的选择信息返回 **4. 创建程序基本框架** **步骤一:建立工作区** 1. 点击菜单栏上的“File”选项卡 2. 选择“New”选项卡 3. 在弹出的“New Workspace”对话框中输入“examplework” 4. 点击“Save”按钮,建立一个新的工作区 **步骤二:建立应用** 1. 点击菜单栏上的“File”选项卡 2. 选择“New”选项卡 3. 在弹出的“Specify New Application and Library”对话框的“Application Name”文本框中输入“ExampleApp” 4. 点击“Finish”按钮,建立一个新的应用 **步骤三:建立窗口** 1. 点击菜单栏上的“File”选项卡 2. 选择“New”选项卡 3. 在弹出的“PBObject”选项卡中选择“Window” 4. 点击“OK”按钮,建立一个新的窗口 **步骤四:创建控件** 1. 双击菜单栏上的“Insert”选项卡 2. 选择“StaticText” 3. 在“Window”窗口中单击“Add”按钮 4. 在“Controls”下拉列表中选择“StaticText” 5. 在“Window”窗口中单击“OK”按钮 6. 重复上述步骤,创建一个第二个“StaticText”控件 7. 重复步骤3和4,创建一个第二个“CommandButton”控件 **步骤五:编写按钮点击事件代码** 1. 双击“cb_1”控件 2. 在“cb_1”的“Clicked”事件中添加代码:`messagebox('欢迎使用',\"学生档案管理\")` 3. 重复上述步骤,编写代码对“cb_2”按钮进行操作

正文

写在前面

这是PB案例学习笔记系列文章的第一篇,也是最基础的一篇。后续文章中【创建程序基本框架】部分操作都跟这篇文章一样,

将不再重复。该系列文章是针对具有一定PB基础的读者,通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证

小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

掌握pb应用程序的创建、运行、中止等最基本操作。学会使用Static Text控件、CommandButton控件和MessageBox函数

上面说的控件和函数都是实际开发中最常用的

二、控件及函数简介

2.1 Static Text 控件

  • 用于显示静态文本内容(通常用于显示标题、标签、说明文字等静态信息)
  • 用户无法对其进行编辑或交互操作
  • 在界面设计中起到了信息展示和界面美化的作用

① 常用属性

属性 描述
Name 控件唯一标识,用于获取控件
Text 控件显示的文本内容。可以通过该属性设置控件上显示的文字
Tag 可以将控件的Tag属性设置为一个唯一的标识符,以便在程序中识别和操作特定的控件
Visible 控制按钮是否可见,勾选可见,值为true ,不勾选不可见,值为false
Enabled 控制按钮是否可用,勾选可见,值为true ,不勾选不可见,值为false
Border 是否有边框
BorderStyle 边框样式
Alignment 文本对齐方式
BorderColor 边框颜色
FillPattern 填充样式
FaceName 字体样式设置
TextSize 字体大小设置
Bold 是否加粗
Italic 是否斜体
Underline 是否下划线
TextColor 文本颜色设置
BackColor 控件背景色设置
X和Y 控件x,y坐标
Width 控件宽度
Height 控件高度

2.2 CommandButton控件

  • 用于触发特定操作或事件的按钮
  • 用于添加交互性,提供用户操作界面的按钮

① 常用属性

按钮有 24 个属性

属性 描述
name 例如:cb_1 按钮唯一标识
Text 按钮上显示的文本内容。可以通过该属性设置按钮上显示的文字
Tag 可以将控件的Tag属性设置为一个唯一的标识符,以便在程序中识别和操作特定的控件
Visible 控制按钮是否可见,勾选可见,值为true ,不勾选不可见,值为false
Enabled 控制按钮是否可用,勾选可见,值为true ,不勾选不可见,值为false
Default 表示按钮是默认按钮,当用户没有选择控件,按Enter键时,触发该按钮得Cliced事件
Cancel Cancel 取值为 True 时,表示当用户单击 Esc 键时,可以触发按钮的 Clicked 事件
FaceName 设置按钮上显示文本字体
TextSize 设置按钮上显示文本字体大小
Bold 设置按钮上显示文本是否加粗
Italic 设置按钮上显示文本是否斜体
Underline 设置按钮上显示文本是否下划线
X 按钮横坐标
Y 按钮纵坐标
Width 按钮宽度
Height 按钮高度

② 事件和脚本

事件 触发时机
Clicked 控件单击时
Constructor 在窗口的打开事件之立即触发
Destructor 在窗口的打开事件之立即触发
DragDrop 当被拖放对象释放时触发
DragEnter 被拖放对象的中心通过边缘进入时触发
DragLeave 被拖放对象的中心离开时触发
DragWithin 被拖放对象的中心位于其内时触发
GetFocus 在接受焦点之前(在选中并激活之前)触发
LoseFocus 当失去焦点时触发
Other 当非 PowerBuilder 事件消息发生时触发
RButtonDown 鼠标右键按下时触发

2.3 MessageBox

函数可以打开一个小信息窗口 ,不仅可以以多种方式给用户显示提示信息,还可以将用户的选择信息返回

①语法

小信息窗口有标题、提示信息、图标、按钮等 4 个元素

MessageBox ( title, text {, icon {, button {, default } } } )
  • title : 必选参数,提示框标题
  • text: 必选参数,提示框内容
  • icon: 可选参数,提示框图标
  • button: 提示框按钮

② icon 参数的可用值和对应的图标样式

icon值

③button 的可用取值和返回值的意义

参数取值 显示样式 返回值意义
OK! 显示 【确定】 按钮,该取值为默认值 总返回 1
OKCancel! 显示 【确定】和 【取消】按钮 1-【确定】, 2-【取消】
YesNo! 显示 【是】 和 【否】 按钮 1-【是】, 2-【否】
YesNoCancel! 显示 【是】、 【否】 和 【取消】 三个按钮 1-【是】, 2-【否】, 3-【取消】
RetryCancel! 显示 【重试】和 【取消】按钮 1-【重试】, 2-【取消】
AbortRetryIgnore! 显示 【放弃】、 【重试】和 【忽略】三个按钮 1-【放弃】, 2-【重试】, 3-【忽略】

三、创建程序基本框架

① 建立工作区

单击工具栏上的File→New命令,在弹出的New对话框中选择Workspace选项框中的Workspace图标,如下图所示,单击OK按钮,

在弹出的New Workspace对话框中输入“examplework”,点击保存按钮,建立一个新的工作区

examplework

②建立应用

单击菜单栏上的File→New命令,在弹出的对话框中选择Target选项卡,在选项卡中选择Application图标,并单击OK按钮,

在弹出的Specitfy New Application and Library 对话框的Application Name 文本框中输入“ExampleApp”,单击Finish按钮,

建立一个新的应用

Application

appname

③ 建立窗口

单击菜单栏上的File→New命令,在弹出的对话框中选择PBObject选项卡,在选项卡中选择Window图标,并单击OK按钮,

建立一个新的窗口

创建新窗口

④ 建立控件

单击菜单栏上的Insert→Control命令,选择StaticText控件,单击加到窗口中,同样的方法,建立2个CommandButton

控件,并调整位置

各个控件名称依次为st_1,cb_1,cb_2

程序基本框架

⑤保存窗口

单击工具栏中的File→Save 命令或者快捷键【Ctrl+S】,将建立的窗口保存为w_main

保存窗口

四、设置各个控件的外观属性

①StaticText 控件外观属性设置

  • 在w_main 窗口中st_1控件上单击

  • General选项卡,将st_1的Text属性改为:“学生管理系统”

  • Font 选项卡,在FaceName中选择宋体,TextSize复选框中选择18,勾选Bold复选框 设置字体

image-20240417170423868

CommandButton控件属性设置

  • 在w_main 窗口中cb_1控件上单击
  • General选项卡,将cb_1的Text属性改为“学生档案管理”
  • 同上,将cb_2的Text属性改为“学生选课管理”

按钮属性设置

五、编写按钮点击事件代码

①双击cb_1 控件,进入cb_1 按钮的Clicked 事件,添加如下代码

messagebox('欢迎使用',"学生档案管理")

②双击cb_1 控件,进入cb_2 按钮的Clicked` 事件,添加如下代码

messagebox('欢迎使用',"学生选课管理")

③双击应用对象,在exampleapp的open中添加如下代码

open(w_main)

image-20240417173538579

六、运行程序

单击菜单栏上运行按钮或者按快捷键【Ctrl+R】运行程序

运行程序

运行程序

点击按钮后

本期内容到此就结束了,希望对您有所帮助。我们下期再见,ヾ(•ω•`)o (●'◡'●)

与【PB案例学习笔记】-01创建应用、窗口与控件相似的内容:

【PB案例学习笔记】-01创建应用、窗口与控件

写在前面 这是PB案例学习笔记系列文章的第一篇,也是最基础的一篇。后续文章中【创建程序基本框架】部分操作都跟这篇文章一样, 将不再重复。该系列文章是针对具有一定PB基础的读者,通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证 小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上

【PB案例学习笔记】-02 目录浏览器

写在前面 这是PB案例学习笔记系列文章的第二篇,该系列文章适合具有一定PB基础的读者, 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-proje

一文详解数仓GaussDB(DWS) 函数出参带出方式

摘要:本文主要讲解DWS函数出参带出方式。 本文分享自华为云社区《GaussDB(DWS)功能 -- 函数出参 #【玩转PB级数仓GaussDB(DWS)】》,作者:譡里个檔 。 DWS的PL/pgSQL函数/存储过程中有一个特殊的语法PERFORM语法,用于执行语句但是丢弃执行结果的场景,常用于一

5步带你入门GaussDB(DWS)的GDS导入导出

摘要:本篇文档为使用GDS导入示例的具体简单步骤和示例。 本文分享自华为云社区《带你快速入门GDS导入导出,玩转PB级数仓GaussDB(DWS)》,作者: yd_220527686。 1、创建导入目标表 CREATE TABLE tpcds_reasons ( r_reason_sk intege

Trino容错模式深度测评与思考

Trino是一款开源的高性能、分布式SQL查询引擎,专门用于对各种异构数据源运行交互式分析查询,支持从GB到PB的数据量范围。

GaussDB(DWS)迁移:一种执行高效的TereData的marco迁移方案

摘要:提供一种执行高效的TereData的marco迁移方案。 本文分享自华为云社区《GaussDB(DWS)迁移 - teredata兼容 -- macro兼容 # 【玩转PB级数仓GaussDB(DWS)】》,作者: 譡里个檔 。 Teradata的宏是一组可以接受参数的SQL语句,通过调用宏名

基于SpringBoot实现操作GaussDB(DWS)的项目实战

摘要:本文就使用springboot结合mybatis plus在项目中实现对GaussDB(DWS)的增删改查操作。 本文分享自华为云社区《基于SpringBoot实现操作GaussDB(DWS)的项目实战【玩转PB级数仓GaussDB(DWS)】》,作者:清雨小竹。 GaussDB(DWS) 数

详解数仓的网络调度与隔离管控能力

摘要:GaussDB目前采用的FIFO调度机制,该调度机制无法满足用户的网络隔离需求和QoS需求,同时FIFO调度可能带来比较严重的抖动。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】GaussDB(DWS)网络调度与隔离管控能力》,作者:门前一棵葡萄树 。 一、常见的调度算法

解密数仓高可用failover流程

摘要: Gaussdb的HA采用主备从的架构实现数据可靠性。当主DN发生故障时,备DN走failover流程,升级成为新主DN,保证集群不因单DN故障而中断业务。 本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】dws高可用之failover流程大解密》,作者:fxy0224。 众所

bucket表:数仓存算分离中CU与DN解绑的关键

摘要:Bucket存储是数据共享中重要的一环,当前阶段,bucket存储可以将列存中的CU数据和DN节点解绑。 本文分享自华为云社区《存算分离之bucket表——【玩转PB级数仓GaussDB(DWS)】》,作者:yd_278301229 。 在云原生环境,用户可以自由配置cup型号、内存、磁盘、带