寫在前面
這是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 (●'◡'●)