delphi中edit在全角半角输入状态下都不能输入标点符号,该怎么实现呢?

RT。换句话说,这个edit只能输入中英文和数字,其他的不能输入。望大家指教,谢谢iford(key)>128thenExit;ifnot(Keyin['A'..'Z',... RT。换句话说,这个edit只能输入中英文和数字,其他的不能输入。望大家指教,谢谢
if ord(key)>128 then Exit;
if not (Key in['A'..'Z','a'..'z','0'..'9',#8]) then
begin
key:=#0;
end;
我写的在半角输入状态下能达到效果,但是在全角输入状态下又可以输入标点符号,求指点
展开
 我来答
景茹炜L8
2012-08-06 · TA获得超过481个赞
知道小有建树答主
回答量:617
采纳率:0%
帮助的人:376万
展开全部
比较聪明的办法,是用Delphi2010中的Edit,有个属性:NumbersOnly,设置为True就可以了
如果用的是Delphi7,可以在Edit中的OnChange事件中输入以下代码:(抄的Delphi2010中的代码)
SetWindowLong(Edit1.Handle, GWL_STYLE, GetWindowLong(Edit1.Handle, GWL_STYLE) or ES_NUMBER);

同时,要在窗体的FormCreate事件中把Edit清空一下。
Edit1.Text:='';

测试完毕。

不好意思,看错了。我以为只有数字呢。^O^
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
windblast
2012-08-06 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13620
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
比较笨的一种办法是,将你想要过滤的标点符号,在KeyPress的事件里加入:

// 比如你要删掉'*','&

if (key in ['*','&']) then key:=#0;
追问
这方法试过 行不通啊。例如在全角输入状态下输入';'就会报类型错误
追答
报类型错误?不太清楚你的delphi版本,我用的delphi2010没有报这个错误。

此外,对于中文标点的过滤,你可以这样写:

if key=',' or key=';' then key := #0;
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-08-07
展开全部
你可以把这些标点符号的对应的key值 做成集合 在按键盘的时候 判断这个按下去的key值是否在集合中

注:全角和半角的key值有所不同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qingningleyun
2012-08-06 · TA获得超过5852个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3026万
展开全部
用 TMaskEdit 可以在 EditMask 属性中灵活限制输入内容。
追问
这个我也想过 但是EditMask 我只会限制只能输入英文和数字 但是不知道怎么让它也能输入中文,请指教
追答
要根据具体的输入格式决定,如果是少量符号的限制,用键盘按下事件处理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caseyou4ever
2012-08-06 · TA获得超过456个赞
知道小有建树答主
回答量:583
采纳率:0%
帮助的人:301万
展开全部
在ONCHANG里遍历整个串的每个字节进行校验。
写在按键事件里面,用复制、粘贴是可以绕开的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式