闲谈BCB
(版权要求:本文除了经过CSDN授权或作者同意,不得转载)
学习BCB也快有三年了,总想写点什么,把自己在学习中的苦与乐,学过某个难点时的快感,让大家共同体味。但又觉得这些东西对初学者又没有什么帮助,还是写点真正的对学习BCB有用的内容,但是可要声明这里只是闲谈,有些内容只能意会,不能纠根:P
乱侃MaskEdit
MaskEdit是用来建立编辑框的,但它与Edit编辑框可以输入任意字符不同,MaskEdit可以限制用户只能按照既定的输入格式输入。这对输入一些标准格式的数据提供了很多方便。下面我们来看看它与Edit的不同之处J
【EditMask】属性,这个属性用来设置用户输入的格式,若用户输入的字符不符合格式要求,这个字符将被拒绝接受。
如何设置格式呢?点一下属性栏的EditMask右边的”…”,就会弹出一个设置好格式的对话框,在那里选择你需要的格式就可以了。可是有时我们想在程序中设置,或者现有的格式根本就没有我们想要的格式,那怎么办呢?
好像在dbase中提过有什么掩码的,不清楚她有没有?答案是一定,她也有一个和dbase差不多的掩码字符表,下面我们来看看这个表:
掩码字符表
掩码字符
意 义
!
去掉输入数据开头的空格符
>
让输入数据的字母都变成大写,直到遇上掩码字符<
<
让输入数据的字母都变成小写,直到遇上掩码字符>
<>
不限制输入数据字母是大写或小写
若在输入格式内加入某个特殊字符,只要在特殊字符
的前面加上此掩码就可以了。说明了就和C语言中的用在printf中的那个转意字符一样,哈哈她们的模样原来也一样
L
允许输入英文字母,而且一定要输入
l
允许输入英文字母,不一定要输入
A
允许输入英文字母和阿拉伯数字,一定要输入
a
允许输入英文字母和阿拉伯数字,不一定要输入
C
允许输入任何字符,一定要输入
c
允许输入任何字符,不一定要输入
0
允许输入阿拉伯数字,一定要输入
9
允许输入阿拉伯数字,不一定要输入
#
允许输入阿拉伯数字或正、负号字符
:
用来分隔时间数据中的时、分、秒
/
用来分隔日期数据中的年、月、日
;
用来分隔掩码字段
_
代表空格符,运行时显示下划线字符
例:电话号码→!\(9999\)999999999;l;_
日 期→!0000/99/99;l;_
【Text】、【EditText】这一对难兄难弟总被人弄错,因为她们实在太象了,但她们还是有一点不一样的,如果你要返回带格式的文本,那只能用EditText,要是检查这个文本是否为空那就要用TextJ
还有一个重要的方法你不要忘记了,那就是ValidateEdit()。她是做什么的呢?检查你输入的文本内容是否符合MaskEdit的格式要求,要是不符合,没办法,返回重新输入。
哈哈这回这样的程序段你应该能看明白了
//以下只是某程序的一部分
……
MaskEdit1->EditMask=”!0000/99/99;l;”;
……
if(MaskEdit1->Text==””)
{
ActiveControl=MaskEdit1;//把焦点给MaskEdit1
MaskEdit1->ValidateEdit();
Label1->Caption=MaskEdit1->EditText;
……
}
我想我们只要掌握MaskEdit这些就够了,你说呢?
还有没有要说的,当然了,还是下次闲聊再说吧,和得睡觉去了J