2024年6月3日发(作者:)

[Delphi] 编辑框(Edit)

编辑框也是Windows程序中常用的组件,它主要用于输入单行文字。下面解释编辑框一些常用

属性。

属性 说明

这个属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。缺省时

PasswordChar

该属性为#0,即没有掩码。用户可以自己设置一个掩码,如„*‟,则用

户在编辑框中输入的字符都将以„*‟字符显示,而隐藏真实的字符。

AutoSize

Text

MaxLength

确定编辑框是否随字体变化而自动变动尺寸,缺省为True

该属性用于显示和保存编辑框中的字符串

确定编辑框最多可以输入的字符数,缺省时为0,表示可以输入任意多

的字符

确定程序运行时,用户是否可以改变编辑框中的内容。若为True,表

ReadOnly

AutoSelect

示不可以编辑。

确定当编辑框获得输入焦点时,编辑框中的文字是否自动被选中

Edit常用的几个事件为:OnChange、OnKeyPress、OnEnter事件,下面对它们做简单的介绍:

事件

OnChange

说明

当编辑框中的内容发生变化时,触发该事件,它是Edit中最常用,也是最

有用的事件之一

OnKeyPress

当按下一个按键时,触发该事件

OnEnter

编辑框获得输入焦点时,触发该事件

上边介绍的三个编辑框事件非常有用,在Delphi编程中经常用到。使用这三个事件,可以实现

一些很有用的功能:

1.使用OnEnter事件,可以在编辑框获得输入焦点时,给出提示或触发其它事件。下面的实例

在编辑框Edit1获得输入焦点时给出一个提示信息,并使将Button1失效。

procedure 1Enter(Sender: TObject);

begin

showmessage('请输入您的密码');

d:=False;

end;

2.使用OnKeyPress事件,可以限制在编辑框中输入的字符的种类。下面的例子限制了编辑框

Edit1中只能输入数字,而不能输入其它的字符。若按下非数字按键,将发出蜂鸣声。

procedure 1KeyPress(Sender: TObject; var Key: Char);

begin

if not(key in['0'..'9',#8])then

begin

key:=#0;

MessageBeep(-1);

end;

end;

在上边的例程中,Key为按下的字符,使用not方法来判断输入的字符是否为数字(0至9)或

者是删除键#8(注意不要连删除键也屏蔽)。如果是非数字输入,使用语句“Key:=#0”将其屏蔽,

#0为空,表示没有输入。

3.使用OnChange事件,可以在编辑框中的内容发生某种变化时,触发其它事件,如使按钮生

效或失效,让输入焦点转移到某个控件上。下面的例程在编辑框Edit1中的内容为„123456‟时,使

Button1生效,同时将输入焦点转移到Button1上。

procedure 1Change(Sender: TObject);

begin

if ='123456' then

begin

d:=true;

ontrol(button1);

end;

end;

下面我们将使用Edit控件的这些特性编写一个简单的“身份验证”程序,程序中使用了两个

Label、两个Edit和两个BitBtn控件。其中Edit1、Edit2的MaxLength属性值都为6,Edit2的

PasswordChar为„*‟;另外Edit1限制了输入,只接收数字。

当用户在Edit1中输入6个数字后,输入焦点自动跳到Edit2中;当确认Edit1和Edit2中的

学号和密码输入正确(学号为950755,密码为123456),Ok按钮被激活,并获得输入焦点。程序

界面如下图所示: