寫在前面 這是PB案例學習筆記系列文章的第3篇,該系列文章適合具有一定PB基礎的讀者。 通過一個個由淺入深的編程實戰案例學習,提高編程技巧,以保證小伙伴們能應付公司的各種開發需求。 文章中設計到的源碼,小凡都上傳到了gitee代碼倉庫https://gitee.com/xiezhr/pb-proje ...
寫在前面
這是PB案例學習筆記系列文章的第3篇,該系列文章適合具有一定PB基礎的讀者。
通過一個個由淺入深的編程實戰案例學習,提高編程技巧,以保證小伙伴們能應付公司的各種開發需求。
文章中設計到的源碼,小凡都上傳到了gitee代碼倉庫https://gitee.com/xiezhr/pb-project-example.git
需要源代碼的小伙伴們可以自行下載查看,後續文章涉及到的案例代碼也都會提交到這個倉庫【pb-project-example】
如果對小伙伴有所幫助,希望能給一個小星星⭐支持一下小凡。
一、小目標
本小節使用了StaticText
控制項、SingleLineEdit
控制項、CommandButton
控制項、Messagebox
函數
這小節的目的主要是學會SingleLineEdit
控制項的使用,其他控制項及函數在第一小節已經設計,這裡就不再重覆了
最終實現如下截圖效果
二、創建程式基本框架
① 創建work
工作區
② 建立app
應用
③ 建立w_main
視窗
以上步驟如果忘記怎麼操作的小伙伴,可以看看第一篇文章。這裡由於篇幅原因,就不再贅述
④ 視窗中佈置控制項
視窗中添加兩個StaticText
控制項、兩個SingleLineEdit
控制項和兩個CommandButton
控制項。
如下圖所示,各個控制項名稱為st_1
、sle_1
、st_2
、sle_2
、cb_1
和cb_2
⑤ 設置控制項屬性
控制項名稱 | 屬性值 | 值 |
---|---|---|
w_main |
title |
密碼驗證 |
st_1 |
Text |
請輸入用戶名: |
st_2 |
Text |
請輸入密 碼: |
sle_1 |
Text |
空 |
sle_2 |
Text 、Password |
空 |true |
cb_1 |
Text 、Default |
確定|true |
cb_2 |
Text 、Cancel |
取消|true |
⑥ 保存視窗
三、編寫事件代碼
這裡我們模擬系統密碼為123456,實際密碼需要去資料庫查詢獲取
① 在按鈕cb_1
的Clicked
事件中添加如下代碼
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_2
的Clicked
事件中添加如下代碼進行關閉視窗
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 (●'◡'●)
本文來自博客園,作者:xiezhr,轉載請註明原文鏈接:https://www.cnblogs.com/xiezhr/p/18200437