Delphi 之 編輯框控制元件(TEdit)
阿新 • • 發佈:2018-11-28
TEdit 元件主要用於資料的輸入和顯示和編輯等操作。
AutoSelect
獲取元件焦點。該屬性只能在單行文字元件使用。值為True為選中。false則不選中。
BorderStyle
設定編輯框控制元件的外觀效果。當值為bsSingle,為一個單線邊框。為bsNone則無邊框
CanUndo
該屬性可以確定使用者修改文字後可以undo方法回退。
CharCase
設定編輯框控制元件文字的大小寫。
如圖所示
MaxLength
設定文字的最大長度,為0表示長度沒有限制。
PasswordChar
用來顯示字元通常用(*)符號來設定密碼
ReadOnly
設定只讀,不能修改元件的文字內容
SelStart
設定文字的起始位置,如果為0,則指向第一個文字。
SelLength
設定文字的最大長度
示例 選中指定長度的文字如圖所示
procedure TForm1.Button1Click(Sender: TObject); begin Edit3.SetFocus; //獲取焦點 Edit3.SelStart:=StrToInt(Edit1.text); //設定字元的起始位置 Edit3.SelLength:=StrToInt(Edit2.text);//設定字元的個數 end;
TEdit元件的事件
OnChange
編輯框元件被改變時觸發該事件
示例 驗證文字的合法性
procedure TForm1.Edit1Change(Sender: TObject); var str:string; begin str:=''; str:=Edit1.Text; if Length(str)>0 then if not(str[Length(str)]in ['0'..'9',#8]) then begin Application.MessageBox('請輸入數字(','提示',MB_OKCANCEL+MB_ICONINFORMATION);
Edit1.Text:=LeftStr(Str,Length(Str)-1); end; Edit1.SelStart:=Length(Edit1.text); end;
OnEnter
元件接受輸入焦點時產生該事件,當視窗元件為啟用狀態時,可使事件處理執行指定的處理。
示例 元件焦點的設定
procedure TForm1.Edit1Enter(Sender: TObject); begin if Sender is TEdit then (Sender as TEdit).Color := $00C8FFFF else if Sender is TComboBox then (Sender as TComboBox).Color := $00C8FFFF; end; procedure TForm1.Edit1Exit(Sender: TObject); begin if Sender is TEdit then (Sender as TEdit).Color := clWhite else if Sender is TComboBox then (Sender as TComboBox).Color := clWhite; end;
OnExit
當焦點離開時產生的事件
OnKeyPress
按下鍵盤上的按鍵時產生該事件
示例 限制輸入的資料
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['a'..'z','A'..'Z',#8]) then begin Application.MessageBox('只能輸入英文字元!', '提示', MB_OKCANCEL + MB_ICONINFORMATION); Key := #0; end; end;
OnKeyDown
按下鍵盤上的按鍵觸發該事件,該事件的key是一個整數,是由鍵盤的虛擬鍵值而定。
示例 顯示鍵盤上對應按下的鍵值
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin Edit2.Text := IntToStr(Key); if Shift = [ssShift] then Edit1.Text := 'Shift' else if Shift = [ssAlt] then Edit1.Text := 'Alt' else if Shift = [ssCtrl] then Edit1.Text := 'Ctrl' else Edit1.Text := ''; end;