TEdit 是 Windows 程式最常用的單行文字輸入元件,掌握其屬性與三大核心事件(OnChange、OnKeyPress、OnEnter),即可實作輸入驗證、動態介面回饋等實用功能。
| 屬性 | 說明 | 預設值 |
|---|---|---|
| PasswordChar | 遮罩字元(如 '*'),隱藏真實輸入 | #0 (無遮罩) |
| AutoSize | 隨字型自動調整高度 | True |
| Text | 顯示/儲存編輯框文字內容 | 空字串 |
| MaxLength | 最大輸入字元數,0 為不限制 | 0 |
| ReadOnly | True 時禁止使用者編輯 | False |
| AutoSelect | 獲得焦點時自動全選文字 | True |
procedure TForm1.Edit1Enter(Sender: TObject);
begin
ShowMessage('請輸入您的密碼');
Button1.Enabled := False;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8]) then // #8 = Backspace
begin
Key := #0; // 取消該按鍵
MessageBeep(-1); // 發出警告音
end;
end;
關鍵:var Key: Char 參數允許修改實際輸入字元,設為 #0 即攔截該按鍵。
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Edit1.Text = '123456' then
begin
Button1.Enabled := True;
Form1.FocusControl(Button1); // 將焦點移至 Button1
end;
end;
介面配置:兩個 Label、兩個 Edit(Edit1 輸入學號、Edit2 輸入密碼)、兩個 BitBtn(Ok/Cancel)
關鍵設定:
MaxLength = 6PasswordChar = '*'OnKeyPress 限制數字輸入OnChange:滿 6 碼自動跳至 Edit2(FocusControl(Edit2))OnChange:驗證學號 950755 + 密碼 123456 → 啟用 Ok 按鈕並獲取焦點procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) = 6 then
Form1.FocusControl(Edit2);
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
if (Edit2.Text = '123456') and (Edit1.Text = '950755') then
begin
BitBtn1.Enabled := True;
Form1.FocusControl(BitBtn1);
end;
end;
完整專案原始碼包含表單建立初始化、按鈕點擊關閉/驗證通過訊息、鍵盤過濾邏輯,展示 Edit 元件在表單驗證流程中的核心角色。