我们使用Access进行数据表设计的时候,经常会碰到输入掩码这个术语,那么这个功能是怎么用的呢?下面小编给大家分享一下。
Access
首先我们打开Access数据库,在数据库中的一个数据表里选中一个字段,如下图所示
接下来我们在字段的常规属性页面中找到输入掩码选项,然后点击其后面的按钮,如下图所示
然后会弹出输入掩码向导界面,我们选择一种掩码类型,如下图所示
最后回到Access的数据表插入界面,我们插入一条数据,这个时候你就会看到对应字段已经有掩码占位了,如下图所示
「3.Delphi常用组件」2.输入显示组件
2.输入显示组件2.1 Edit组件
编辑框 Edit 组件可用于输入文本,也可以显示文本。主要属性如下:
属性 | 说明 |
AutoSelect | 设置组件获得焦点时,文本是否自动选中。 |
AutoSize | 决定组件是否自动随字体的变化而改变大小。 |
Enable | 设置编辑框是否能使用 |
BorderStyle | 用来设置编辑框的边框类型,取值: bsSingle - 单线边框;bsNone - 无边框 |
MaxLength | 设置编辑框所能接受的最大字符数 |
PasswordChar | 该属性设置为非#0字符时,将代替用户输入的字符被显示 |
ReadOnly | 设置编辑框的文本是否可以被编辑 |
SelStart | 被选中的文本的开始位置或光标在文本中的位置 |
SelText | 被选中的文本 |
SelLength | 被选中的文本的长度 |
Text | 编辑框中的文本 |
CharCase | 设置编辑框中文本的大小写,取值: ecNormal - 无变化 ecLowerCase - 转换为小写 ecUpperCase - 转换为大写 |
标签 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;