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

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

谢谢指教。
...全文
130 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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;

13,871

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧