• 主页
  • Windows SDK/API
  • 基础类
  • ActiveX
  • 数据库及相关技术
  • 网络及通讯开发
  • VCL组件使用和开发

暴简单!系列之七:如何限制Edit中输入的只能是0-9和a-f?在OnChang中,并且超过16个字字符就不许输入了

com235 2003-04-28 02:13:50
暴简单!系列之七:如何限制Edit中输入的只能是0-9和a-f?在OnChang中,并且超过16个字字符就不许输入了。

谢谢指教。
...全文
63 点赞 收藏 9
写回复
9 条回复
lanyahu 2003年04月28日
void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)
{
if (Key != VK_BACK && (Key < '0' || Key > '9')) Key = 0;

}
void __fastcall TForm1::Edit2Change(TObject *Sender)
{
if(Edit2->Text.Length()>16)
ShowMessage("Ok");
}
已调试成功!
回复 点赞
xc2927 2003年04月28日
看看
回复 点赞
linx2 2003年04月28日
MaskEdit控件是有“##”标志的那个~~~

在编辑器左上角的Input Masks(输入屏蔽)中制作需要的输入格式,Character for blanks指定MaskEdit中用什么替换空格,TestInput检查当前格式。
如:在字符L后面只能输入字母字符,即英文A-Z,和a-z;0后面只能输入0-9。等等。
具体可以参照MaskEdit控件的帮助,应该写的比较详细吧。
回复 点赞
linx2 2003年04月28日
maskedit
不二选择!!!
回复 点赞
zxcdewq 2003年04月28日
暴简单!???
那还问?
回复 点赞
meCAD 2003年04月28日
在OnKeyPress中
if (Key != VK_BACK && (Key < '0' || Key > '9')&& Key != '-'&& Key != 'a' &&... &&...) //自个慢慢输入.
Key = 0;

至于只允许16个字的话就最简单的.在一次的OnKeyPress前判断一下是否已经 == 16了.
if (是) Key = 0;
回复 点赞
starstargao 2003年04月28日
楼主说要在onchange里面实现呀
回复 点赞
woainihaha 2003年04月28日
1:

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
AnsiString FFilter="0123456789abcdef";
if (Key!='\b')
{

bool iton=false;
for (int i=1;i<=FFilter.Length();++i)
{
if (Key==FFilter[i])
{
iton=true;
break;
}

}//End for

if (iton==false)
{
if (Key!=13) Key=0;
}

//return;


}
}

2:
Edit->MaxLength=16;
回复 点赞
gfh_79_0 2003年04月28日
1、判断。
2、Edit->MaxLength=16;
回复 点赞
发动态
发帖子
C++ Builder
创建于2007-08-02

2570

社区成员

10.2w+

社区内容

C++ Builder相关内容讨论区
社区公告
暂无公告