网站首页 > 技术文章 正文
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;猜你喜欢
- 2024-12-24 Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户+密码登录界面
- 2024-12-24 家庭收支理财管理系统 Access数据库系统课程设计制作实例
- 2024-12-24 Qt 2D绘图:图形视图框架的事件处理与传播
- 2024-12-24 MFC界面库BCGControlBar v32.1 - 可视化管理器和主题升级
- 2024-12-24 DJYGUI系列文章九:GDD消息系统 gd信息
- 2024-12-24 Qt设备识别(简单的密钥生成器) qt设备管理系统
- 2024-12-24 Access开发的《财务经济管理系统》
- 2024-12-24 初级开发人员告诉我:OO 设计模式太复杂而且没用
- 2024-12-24 从零开始学Qt(89):UDP单播和广播
- 2024-12-24 Qt入门阶段之事件 qtc间期延长的临床意义
- 最近发表
-
- 聊一下 gRPC 的 C++ 异步编程_grpc 异步流模式
- [原创首发]安全日志管理中心实战(3)——开源NIDS之suricata部署
- 超详细手把手搭建在ubuntu系统的FFmpeg环境
- Nginx运维之路(Docker多段构建新版本并增加第三方模
- 92.1K小星星,一款开源免费的远程桌面,让你告别付费远程控制!
- Go 人脸识别教程_piwigo人脸识别
- 安卓手机安装Termux——搭建移动服务器
- ubuntu 安装开发环境(c/c++ 15)_ubuntu安装c++编译器
- Rust开发环境搭建指南:从安装到镜像配置的零坑实践
- Windows系统安装VirtualBox构造本地Linux开发环境
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
