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;