1. 程式人生 > >Delphi 之 編輯框控件(TEdit)

Delphi 之 編輯框控件(TEdit)

數字 不能 delphi icon readonly mes tex border 方法

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;
技術分享圖片

Delphi 之 編輯框控件(TEdit)