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)
来源: http://www.bubuko.com/infodetail-2863848.html