优秀的编程知识分享平台

网站首页 > 技术文章 正文

「3.Delphi常用组件」2.输入显示组件

nanyue 2024-12-24 14:50:20 技术文章 11 ℃

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

用来设置按下热键时获得焦点的组件名

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

界面元素属性设置如下:

对象

属性

属性值

Button1

Caption

左光源

Button2

Caption

右光源

Label1

Caption

您好,欢迎您使用!


Font

黑体、36号、加粗


Font.color

cllime


Transparent

True

Label2

Caption

您好,欢迎您使用!


Font

黑体、36号、加粗


Transparent

True

程序设计:

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


登记信息显示

MaskEdit1

EditMask='!>LL-00000;1;_'

车牌号

Edit1


车主姓名

MaskEdit2

EditMask='000-0000-0000;1;_'

手机号码

MaskEdit3

EditMask='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;



Tags:

最近发表
标签列表