【3.Delphi常用组件】2.输入显示组件

本文详细介绍了Delphi中常用的组件,包括Edit编辑框、Label标签、Memo备注框和MaskEdit格式化编辑框的属性和用法。Edit组件用于输入文本,Label用于显示文本,Memo适用于多行文本显示,而MaskEdit则提供数据格式化的输入限制。通过示例代码展示了如何使用这些组件实现特定功能,如文字投影效果、文本输入与显示、电话号码和日期掩码输入等。
摘要由CSDN通过智能技术生成

2.输入显示组件

2.1 Edit组件

编辑框 Edit 组件可用于输入文本,也可以显示文本。主要属性如下:

属性说明
AutoSelect设置组件获得焦点时,文本是否自动选中。
AutoSize决定组件是否自动随字体的变化而改变大小。
Enable设置编辑框是否能使用
BorderStyle用来设置编辑框的边框类型,取值: bsSingle - 单线边框;bsNone - 无边框
MaxLength设置编辑框所能接受的最大字符数
PasswordChar该属性设置为非#0字符时,将代替用户输入的字符被显示
ReadOnly设置编辑框的文本是否可以被编辑
SelStart被选中的文本的开始位置或光标在文本中的位置
SelText被选中的文本
SelLength被选中的文本的长度
Text编辑框中的文本
CharCase设置编辑框中文本的大小写,取值: ecNormal - 无变化 ecLowerCase - 转换为小写 ecUpperCase - 转换为大写

2.2 Label组件

标签 Label 组件用于输出文本,主要属性如下:

属性说明
Caption显示标签文本
ShowAccelChar决定是否将&作为热键字符的标记
AutoSize决定标签是否自动随文本的变化而改变大小
Alignment文本对齐方式
Layout控制文本显示在标签的顶部、中部、底部
WordWrap是否换行显示
Transparent背景是否透明
FocusControl用来设置按下热键时获得焦点的组件名

示例:利用标签设计一个文字的投影效果,界面如下:

 

界面元素属性设置如下:

对象属性属性值
Button1Caption左光源
Button2Caption右光源
Label1Caption您好,欢迎您使用!
Font黑体、36号、加粗
Font.colorcllime
TransparentTrue
Label2Caption您好,欢迎您使用!
Font黑体、36号、加粗
TransparentTrue

程序设计:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label2.Left := Label1.Left + 6;
end;
​
procedure TForm1.Button2Click(Sender: TObject);
begin
  Label2.Left := Label1.Left - 6;
end;
​
procedure TForm1.FormCreate(Sender: TObject);
begin
  Label2.Top := Label1.Top - 3;
  Label2.Left := Label1.Left;
end;

2.3 Memo组件

备注框 Memo 组件常用于输出多行文本。TEdit类所具有的属性、事件和方法在TMemo类中都有,为了处理多行文本,TMemo类增加了一些新的属性,如下表:

属性说明
CaretPos用来获取光标在编辑区的位置
Lines按行处理文本,是一个TString类型的对象,用来处理TMemo对象的文本,可以通过下标索引来访问,属性窗口中单击右侧的...按钮,可以打开对话框编辑Lines的内容,代码中可以使用一些方法来处理Lines中的数据,如: Memo1.Lines.Add(s); //在Memo1最后添加一行字符串 Memo1.Lines.Delete(x); //删除Memo1中的x+1行的字符串 Memo1.Lines.Insert(x, s); //在第x+1行处插入新的一行 Memo1.Lines.Move(x, y); //将第x+1行移动到第y+1行 Memo1.Lines.LoadFile(path) //将path指定的文件加载到Memo中
Modified判断文本是否被修改过
ScrollBars设置备注框的滚动条,取值: ssNone:无滚动条 ssHorizontal:只有水平滚动条 ssVertical:只有垂直滚动条 ssBoth:同时具有水平和垂直滚动条
WordWrap设置文本是否能够换行显示
WantReturns设置备注框是否能插入回车键
WantTabs设置备注框是否能插入Tab键

示例:在编辑框中输入文本,单击添加按钮后将编辑框中的文本输入到Memo组件中。如下图:

 

代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Edit1.Text <> '' then
  begin
    Memo1.Lines.Add(Edit1.Text);
    Edit1.Text := '';
    Edit1.SetFocus;
  end;
end;
​
procedure TForm1.FormActivate(Sender: TObject);
begin
  Edit1.SetFocus;
end;

2.4 MaskEdit组件

MaskEdit组件是格式化编辑框,可以限制用户的输入。TEdit类所具有的属性、事件和方法在TMaskEdit类中都有,TMaskEdit类增加的一些常用属性:

属性说明
EditMask用来限制用户输入数据格式的掩码字符串。
EditText返回用户输入的数据。

设置掩码字符串:

首先在窗体上将MaskEdit选中,在对象查看器(Object Inspector)中找到EditMask属性,双击它,弹出一个如下图所示的对话框。

 

对话框左上角的Input Mask编辑框用于输入掩码格式。

掩码格式可以分为三部分,每个部分之间用分号“;”分开,第一部分是掩码字符串;第二部分是是否将掩码中的字符串作为数据的一部分,0-表示不作为数据,1-表示作为数据的一部分;第三部分是在掩码中用来代表未输入数据的字符。

掩码字符表:

字符含义
!去掉输入数据开头的空格符
>让输入数据的字母都变成大写,直到遇上掩码字符<
<让输入数据的字母都变成小写,直到遇上掩码字符>
<>不限制输入数据字母是大写或小写
\若在输入格式内加入某个特殊字符,只要在特殊字符的前面加上此掩码就可以。(原样显示)
L允许输入英文字母,而且一定要输入
l允许输入英文字母,不一定要输入
A允许输入英文字母和阿拉伯数字,一定要输入
a允许输入英文字母和阿拉伯数字,不一定要输入
C允许输入任何字符,一定要输入
c允许输入任何字符,不一定要输入
0允许输入阿拉伯数字,一定要输入
9允许输入阿拉伯数字,不一定要输入
#允许输入阿拉伯数字或正、负号字符
:用来分隔时间数据中的时、分、秒
/用来分隔日期数据中的年、月、日
;用来分隔掩码字段
_代表空格符,运行时显示下划线字符

注:

1.用于控制中文的掩码字符必须有两个,如LL或cc等,因为一个汉字占两个字符。

2.EditText和Text都可以读取数据,当掩码字符串中第二部分为1时,EditText和Text的值是相同的;当掩码字符串中第二部分为0时,Text的值不包含掩码字符串自动显示的字符,而只包含用户输入的字符。

3.如果要返回带格式的文本,只能用EditText,要是检查这个文本是否为空那就要用Text。

举例: 电话号码的掩码: !\(9999\)999999999;l;_、日期的掩码:!0000/99/99;l;_,其中第三部分的_是显示时空位的表示,可用其他字符替代。
再如:要输入一个汽车牌号如:CA-300019。该数据前两位为字母且为大写,第三位为一个系统分隔符号,后6位为数字。可以这样设计掩码格式:!>LL/000000;1;_,掩码的第二部分取为1表示系统分隔符'-'也将作为数据保存。第三部分的“_”表示在掩码编辑框中为空时,用“_”来表示空位。我们也可以用空格来标识空位。又如一个邮编如:PO-100083,其中PO表示邮政,是每个邮政编码中都有的前缀,可以这样设计掩码格式:!PO/000000;1;_ 

示例:车辆登记数据录入,运行效果如下:

 

在界面中,组件及主要属性设置如下:

组件属性说明
Mome1登记信息显示
MaskEdit1EditMask='!>LL-00000;1;_'车牌号
Edit1车主姓名
MaskEdit2EditMask='000-0000-0000;1;_'手机号码
MaskEdit3EditMask='0000/90/90;l;_'登记日期

程序设计代码如下:

// “添加”按钮事件处理
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add('车牌号:' + MaskEdit1.EditText);
  Memo1.Lines.Add('车主姓名:' + Edit1.Text);
  Memo1.Lines.Add('手机号码:' + MaskEdit2.EditText);
  Memo1.Lines.Add('登记日期:' + MaskEdit3.EditText);
end;
​
// “关闭”按钮事件处理
procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;
​
// “下一个”按钮事件处理
procedure TForm1.Button3Click(Sender: TObject);
begin
  MaskEdit1.Text:= '';
  Edit1.Text := '';
  MaskEdit2.Text := '';
  MaskEdit3.Text := '';
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Janeb1018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值