首页 > 其他分享 >【PB案例学习笔记】-03用户名密码校验

【PB案例学习笔记】-03用户名密码校验

时间:2024-06-06 09:04:48浏览次数:26  
标签:03 控件 Text 校验 PB 内容 SingleLineEdit sle 文本

写在前面

这是PB案例学习笔记系列文章的第3篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

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

gitee代码仓库

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

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

一、小目标

本小节使用了StaticText控件、SingleLineEdit控件、CommandButton控件、Messagebox函数

这小节的目的主要是学会SingleLineEdit控件的使用,其他控件及函数在第一小节已经设计,这里就不再重复了

最终实现如下截图效果

最终效果

二、创建程序基本框架

① 创建work工作区

② 建立app应用

③ 建立w_main窗口

以上步骤如果忘记怎么操作的小伙伴,可以看看第一篇文章。这里由于篇幅原因,就不再赘述

④ 窗口中布置控件

窗口中添加两个StaticText 控件、两个SingleLineEdit 控件和两个CommandButton 控件。

如下图所示,各个控件名称为st_1sle_1st_2sle_2cb_1cb_2

控件布置

⑤ 设置控件属性

控件名称 属性值
w_main title 密码验证
st_1 Text 请输入用户名:
st_2 Text 请输入密 码:
sle_1 Text
sle_2 TextPassword 空 |true
cb_1 TextDefault 确定|true
cb_2 TextCancel 取消|true

控件添加属性

⑥ 保存窗口

三、编写事件代码

这里我们模拟系统密码为123456,实际密码需要去数据库查询获取

① 在按钮cb_1Clicked事件中添加如下代码

sle_1.Text 代码可以获取控件中文本内容

if sle_1.Text= '' then
	messagebox('提示信息','请输入用户名!')
else
	if sle_2.text = '123456' then
		messagebox('欢迎使用', sle_1.Text+'你好!')
	else
		messagebox('提示信息','密码错误,请重新输入!')
		
	end if
	
end if

② 在按钮cb_2Clicked事件中添加如下代码进行关闭窗口

close(parent)

③ 在左边System Tree 窗口中双击App应用对象,在open 事件中添加如下代码

//程序启动打开窗口w_main
open(w_main)

四、运行程序

运行程序

密码验证

五、SingleLineEdit 控件

5.1 常用属性

属性名称 描述
Visible 默认为 True。当为 False 时,该控件在窗口上隐藏
Enabled 默认为 True。当为 False 时,该控件不能获得焦点,用户不能进行编辑和选
中;控件背景为灰色
DisplayOnly 默认为 False。当为 True 时,该控件中的文字不能被修改,并且也不能
输入,但可以选中、复制
Password 默认为 False。当为 True 时,在该输入框中输入的内容显示为“ *”号,
星号的数目等于输入的字符的数目,加密规则依赖于操作系统。其实际内容和用户输入的内
容一致
AutoHScroll 默认为 True,表示当用户输入的内容显示不下时,可以自动横向滚动
光标,但是不显示滚动条
HideSelection 默认为 True,表示只有当单行编辑器获得焦点时,才高亮显示选中文
本。建议使用默认值,因为将该属性设置为 False,没有获得焦点时,选中的内容就高亮显示,
这容易让用户造成错误
Limit 默认是 0,表示没有长度限制。可以输入其他一个数字,表示该单行编辑框中
最多接受用户输入的字符个数,最大数字是 32 767
Case 有三个选项, upper 表示用户输入的内容中的字母都自动转换成大写, down
表示都自动转换成小写, any 表示不做转换
Text 这是该控件运行时最经常使用的一个属性。可以给该属性赋值来将特定信息显
示在单行编辑器中,也可以读取该属性而获得单行编辑器中的内容。设计状态下,在 Text
属性输入框中录入的文字在窗口刚刚打开时显示在单行编辑框中
Border 是否显示边框,默认为 True

5.2 事件和脚本

提供了 12 个事件, Modified 是经常使用的事件,其他事件和命令按钮的同名事件完全相同。

该事件的触发时机是在编辑器中输入内容后,焦点离开该编辑器时

单行编辑器提供了很多的函数,其中需要掌握的有 10 个经常使用的函数,这 10 个常用

5.2.1 CanUndo 函数

语法

sle_1.CanUndo ()

返回值:Boolean

  • 如果可以撤销上一次的编辑操作,则返回True
  • 如果不能撤销上一次的编辑操作,则返回False

功能

检查是否可以撤销上一次的编辑操作

5.2.2 Undo 函数

语法

sle_1.Undo()

功能

撤销上一次的编辑操作,恢复到之前的文本状态

5.2.3 Clear 函数

语法

sle_1.Clear ()

返回值:Integer

  • 清除的文本内容长度,清除一个字符,则返回1
  • 未选中内容,返回0
  • 执行错误返回-1

功能

清除SingleLineEdit控件中选中的文本内容

注: 需要在文本内容选中的情况下才能清除

5.2.4 Copy 函数

语法

sle_1.Copy()

返回值:Integer

  • 复制到剪切板的文本内容长度
  • 未选中内容,返回0
  • 执行错误返回-1

功能

SingleLineEdit控件中选定的文本复制到剪贴板。

5.2.5 Cut函数

语法

sle_1.Cut()

功能

SingleLineEdit控件中选定的文本剪切并复制到剪贴板。

返回值:Integer

  • 剪切到剪切板的文本内容长度
  • 未选中内容,返回0
  • 执行错误返回-1
5.2.6 Paste函数

语法

sle_1.Paste()

返回值:Integer

  • 剪切板的文本内容长度

功能

将剪贴板中的内容粘贴到SingleLineEdit控件中

5.2.7 SetFocus函数

语法

sle_1.SetFocus()

功能

将焦点设置到SingleLineEdit控件上

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

标签:03,控件,Text,校验,PB,内容,SingleLineEdit,sle,文本
From: https://www.cnblogs.com/xiezhr/p/18200437

相关文章

  • 初识C语言(03)—学习笔记
    常见关键字C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。归类下面是按照关键字的用途不同进行的归类变量的命名规则有意义,例如intage;floatsalary;等名字必须是字母、数字、下划线组成,不能有特殊字符,同时不能以数字......
  • validate方法进行表单异步校验时,回调函数内部避免使用全局变量
    对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。若不传入回调函数,则会返回一个promise问题代码:save(){console.log(that.pos.indexName)console.log(that.pos.indexCode)......
  • 控制台警告:[Violation] Added non-passive event listener to a scroll-blocking 'mou
    控制台警告:[Violation]Addednon-passiveeventlistenertoascroll-blocking'mousewheel'event.Considermarkingeventhandleras'passive'tomakethepagemoreresponsive.Seehttps://www.chromestatus.com/feature/5745543795965952[Viola......
  • 03--nginx架构实战
    前言:这应该是nginx梳理的最后一章,写一些关于网站架构和网站上线的知识内容,主要是感觉到运维并不是单一方向的行业,这一章概念会有一些广泛,但是非常重要,都是这几年工作中遇到的情况,整理一下相关知识,遇到时可以直接按照目录寻找解决方案。1、动态网站简介当用户访问一个网站时,动......
  • P4003 [清华集训 2017] 无限之环 解题报告
    oj:https://gxyzoj.com/d/gxyznoi/p/P93它要判断什么时候不漏水,就是需要建一种图,使得原图的最大流是答案因为是网格图,考虑黑白染色,可以将\((i+j)\)对2取模的结果作为颜色,将所有颜色为1的点向源点连边,颜色为0的点向汇点连边接下来考虑如何判断是否漏水,因为有四个方向,考虑拆点将......
  • 2024年03月 GESP等级认证Python编程(一级)试题解析
    【单选题】(每题2分)1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙,这个鸿蒙是?()A、小程序   B、计时器   C、操作系统   D、神话人物   正确答案:C2、中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是?()A、制......
  • 构建之法阅读笔记03
    第六章敏捷流程敏捷开发的原则是:1.尽早并持续地交付有价值的软件以满足顾客需求  2.敏捷流程欢迎需求的变化  3.经常发布可用的软件,发布间隔可以从几周到几个月,能短则短 4.业务人员和开发人员在项目开发过程中应该每天共同工作 5.以有进取心的人为项目核心,充分支持信......
  • [NOIP2003 普及组] 乒乓球
    洛谷P1042[NOIP2003普及组]乒乓球题目背景国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 1111 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作......
  • Luogu P2036 [COCI2008-2009 #2] PERKET
    LuoguP2036[COCI2008-2009#2]PERKET#include<bits/stdc++.h>usingnamespacestd;intn,ans=1e9+5;//ans初始化值大于所有可用食材全部使用产生的总酸度和总苦度ints[15],b[15];voiddfs(inttot,intk,intl){//k为当前酸度,l为当前甜度if(to......
  • 供应链安全论文阅读(一)Backstabber's Knife Collection: A Review of Open Source Soft
    引言该论文Backstabber'sKnifeCollection:AReviewofOpenSourceSoftwareSupplyChainAttacks发表在2020年的DIMVA上,作者为波恩大学的MarcOhm。本文是开源软件供应链安全领域较早期的一篇论文,主要针对软件供应链中恶意软件包的威胁进行了详细介绍。首先简单介绍一下软......