写在前面

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

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

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

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

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【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 参数的可用值和对应的图标样式

③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”,点击保存按钮,建立一个新的工作区

②建立应用

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

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

建立一个新的应用

③ 建立窗口

单击菜单栏上的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复选框 设置字体

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)

六、运行程序

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

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

【PB案例学习笔记】-01创建应用、窗口与控件的更多相关文章

  1. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  2. .NET MVC 学习笔记(七)— 控制input控件

    .NET MVC 学习笔记(七)— 控制input控件 画面中有时候需要输入数字,这时就需要控制input的输入.以下为保留两位有效数字. /* * 初始化数字输入 */ function initD ...

  3. Winform控件学习笔记【第二天】——常用控件

    背景:期末考试刚过就感冒了,嗓子火辣辣的,好难受.但是一想起要学习总结就打起精神来了,Winform控件网上也没有多少使用教程,大部分都是自己在网上零零散散的学的,大部分用的熟了,不总结会很容易忘得. ...

  4. Android学习笔记(九)——布局和控件的自定义

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! View是 Android中一种最基本的 UI组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件 ...

  5. Dynamic CRM 2013学习笔记(八)过滤查找控件 (类似省市联动)

    我们经常要实现类似省市联动一样的功能,常见的就是二个查找控件,一个选择了省后,另一个市的查找控件就自动过滤了,只显示当前省下的市,而不是所有的市.当然这是最简单的,实际工作中还有更复杂的功能要通过过滤 ...

  6. Windows程序设计学习笔记(四)自绘控件与贴图的实现

    Windows系统提供大量的控件供我们使用,但是系统提供的控件样式都是统一的,不管什么东西看久了自然会厌烦,为了使界面更加美观,添加一些新的东西我们需要自己绘制控件. 控件在默认情况下并不进行自绘,如 ...

  7. 【AngularJS学习笔记】封装一些简单的控件(封装成Html标签)

    bootstrap有强大的指令系统,可以自定义一些属性,基本知识请移步:http://angularjs.cn/A00r  http://www.cnblogs.com/lvdabao/p/33916 ...

  8. koa2学习笔记01 - 创建项目 —— koa生成器一键生成koa项目

    前言 从17年开始尝试学习搭建个人网站开始,就开始学习摸索node了,至今差不多快两年了. 说起来现在都9102年了,所以最近打算整体设计重构一下网站,索性node后台也重写一遍. 重温一下node, ...

  9. ios学习笔记第三天之UI控件

  10. 张高兴的 Xamarin.Android 学习笔记:(四)常用控件

    示例地址 GitHub : https://github.com/ZhangGaoxing/xamarin-android-demo/tree/master/ControlsDemo

随机推荐

  1. #拉格朗日插值,线性筛#洛谷 5442 【XR-2】约定 (加强版)

    题目 一个\(n\)个点的完全图, 第\(i\)个点到第\(j\)个点的边权是\((i+j)^k\), 现在把这个完全图变成一棵树, 求这棵树边权和的期望值 \((n\leq 10^{10000},k ...

  2. #Kruskal重构树,Dijkstra,倍增#洛谷 4768 [NOI2018]归程

    题目传送门 分析 首先Dijkstra是必需的(关于SPFA,它死了233) 无向图,所以先求出1号节点到所有点的距离,然后肯定希望起点能驾驶到离一号点最短的汽车可到的地方 但是怎么办,考虑海拔大的边 ...

  3. 活动开启 | 以梦筑码 · 不负韶华 开发者故事征集令,讲出你的故事,有机会参加HDC.Together 2023

      HarmonyOS面世以来,经历了3大版本迭代,系统能力逐步完善,生态加速繁荣.一路前行,是开发者们点亮漫天星光.点滴贡献,聚沙成塔,开发者们正用代码改变世界. 是梦想,激励我们一路前行.在黎明到 ...

  4. ArkUI框架,更懂程序员的UI信息语法

     原文:https://mp.weixin.qq.com/s/LQA6AYiG8O_AeGE1PZwxZg,点击链接查看更多技术内容.   ArkUI框架简化代码的"秘密" 在传统 ...

  5. Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件-Nacos 、Sentinel等

    概述 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用服务的必需组件. 方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 ...

  6. 调用App Store Connect Api

    对iOS的证书.描述文件.账号.设备等管理,之前都去苹果开发者中心操作,官网上操作也比较繁杂,想搞一些自动化之类的,更是麻烦,有时候官网都打不开-- 其实苹果还提供里一套API接口,创建证书.创建账号 ...

  7. 架构设计|基于 raft-listener 实现实时同步的主备集群

    背景以及需求 线上业务对数据库可用性可靠性要求较高,要求需要有双 AZ 的主备容灾机制. 主备集群要求数据和 schema 信息实时同步,数据同步平均时延要求在 1s 之内,p99 要求在 2s 之内 ...

  8. 这些Git事故灾难, 你经历过几个?

    前言 关于Git, 相信大家最常用的就是pull和push. 但随着协作规模的提升, 遇到的问题也会越来越多. 本篇文章并不科普一些命令的详细用法, 更多的是分享在工作中遇到的Git场景问题以及踩过的 ...

  9. drf视图类的继承关系

  10. 力扣745(java&python)-达到终点数字(中等)

    题目: 在一根无限长的数轴上,你站在0的位置.终点在target的位置. 你可以做一些数量的移动 numMoves : 每次你可以选择向左或向右移动.第 i 次移动(从  i == 1 开始,到 i ...