关于EditMask的问题

skipsol 2011-07-17 06:53:53
我在TValueListEditor的某一个单元格上需要做输入值的校验,校验规则如下:

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

请问应该怎么实现?

我尝试用TValueListEditor->ItemProps[i]->EditMask = "lllll;1;";
但是这样不能限制其他的字母,而且目标单元格会有 "11111;1;" 这样的初值显示。
...全文
45 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
s1031129012 2011-07-18
To CppFile(..从头开始..):

谢谢你的回答,这样确实能解决问题。
我还想问一下,用EditMask能做到吗?
回复
zjcman123 2011-07-18
用EditMask格式编辑不能实现你的3个目标,硬要实现,也需要自己写代码,
还不如用1楼的办法,毕竟目的最重要,实现方法无所谓
回复
skipsol 2011-07-18
To CppFile(..从头开始..):

谢谢你的回答,这样确实能解决问题。
我还想问一下,用EditMask能做到吗?
回复
CppFile 2011-07-17
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;
}
//---------------------------------------------------------------------------
回复
相关推荐
发帖
VCL组件使用和开发
创建于2007-08-02

587

社区成员

C++ Builder VCL组件使用和开发
申请成为版主
帖子事件
创建了帖子
2011-07-17 06:53
社区公告
暂无公告