【PB案例學習筆記】-03使用者名稱密碼校驗

xiezhr發表於2024-06-06

寫在前面

這是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 (●'◡'●)

相關文章