首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于EditMask的有关问题

2012-03-07 
关于EditMask的问题我在TValueListEditor的某一个单元格上需要做输入值的校验,校验规则如下:1. 可以输入A,

关于EditMask的问题
我在TValueListEditor的某一个单元格上需要做输入值的校验,校验规则如下:

1. 可以输入A,B,C,D,E,a,b,c,d,e中的任意字符
2. 最大长度暂定5个(最好可以动态指定)
3. 输入的字符不能有重复值

请问应该怎么实现?

我尝试用TValueListEditor->ItemProps[i]->EditMask = "lllll;1;";
但是这样不能限制其他的字母,而且目标单元格会有 "11111;1;" 这样的初值显示。

[解决办法]
bool func(String str,wchar_t &k)
{
if(str.Pos(String(k))==0) return false;
else return true;
}

void __fastcall TForm1::lst1KeyPress(TObject *Sender, wchar_t &Key)
{
if(Key=='a' || Key=='A' || Key=='b' || Key=='B' || Key=='c' || Key=='C' || Key=='d' || Key=='D' )
{
String str=lst1->Cells[ lst1->Col ][lst1->Row ];

if(func(str,Key)) Key=0;//重复
}
else Key=0;
}
//---------------------------------------

[解决办法]
用EditMask格式编辑不能实现你的3个目标,硬要实现,也需要自己写代码,
还不如用1楼的办法,毕竟目的最重要,实现方法无所谓

热点排行