初学者提问 -请问这个语句用delphi该怎么写? void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) if (((Key>'9')||(Key<'0'))&& (!(Key==8))) Key=0; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把||变成or, &&变成and 就行了!有问题请发信息到我的E-mail:[email protected] procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin if ((key >#57) or (key<#48)) and (key=#56)then key:=#0end; 改了,但是提示incompatible types。他的key 是word 型的。 你是在什么事件下写的key控制程序? yutaocool(酷鱼)的程序在keypreess事件中是正确的 begin if ((key >57) or (key<48)) and (key=#56)then --改成这样 key:=0end; 同意yutaocool(酷鱼)的意见,他是个高手,多给他几分。 你应该是在keydown事件中写的吧 if (((Key>'9')||(Key<'0'))&& (!(Key==8))) Key=0;应该是if ((key>'9') or (key<'0')) and (key<>#8) then key=#0;表示输入只接受数字或者BackSpace键 刚才在keydown事件中写的,但是它的key是word型的,现在我在keypress里重写,如果去掉#,就提示incompatible types,如果加上#才对。我想再问问#0对应的是多少。在我原来的那段代码中key==8表示什么意思。 Key==8,是C的基本语法,呵呵,就是绝对等于前面加了个!,就是说Key的值不等于8时 多说点吧,不会没学过C吧...没有关系,最好学Delphi时先找本Pascal的书补一下基础吧,不然对以后不好C里=是做为赋值运算符,而==是做为判断表达式的运算符一个表达表a==b的值将会是0或是非0,在C里也就是假和真的意思..(逻辑值) if not (Key in ['0'..'9', char(VK_BACK)]) then Key := #0;注:VK_BACK就是键盘的BACK键的虚拟键值,也就是8 Delphi SPComm 自发自收出现乱码,求助。。。 这种情交该有monthcalendar的什么事件 如何智能增加程序功能 怎样通过数据库往treeview里加载节点?请帮忙!~!~! 请帮我看看 我用SetWindowsHookEx拦截键盘输入时,字母怎么全是大写啊? 请问在DELPHI中如何取的两个时间段的差值呢? 一个有关多表操作的问题,100分全送!!! 请问一个关于Destroy的问题 各位高手:如何将键盘锁主????? 日期字段重复问题 熟悉Oracle的朋友请进......
有问题请发信息到我的E-mail:[email protected]
begin
if ((key >#57) or (key<#48)) and (key=#56)then
key:=#0
end;
if ((key >57) or (key<48)) and (key=#56)then --改成这样
key:=0
end;
应该是
if ((key>'9') or (key<'0')) and (key<>#8) then key=#0;
表示输入只接受数字或者BackSpace键
前面加了个!,就是说Key的值不等于8时
没有关系,最好学Delphi时先找本Pascal的书补一下基础吧,不然对以后不好C里=是做为赋值运算符,而==是做为判断表达式的运算符
一个表达表a==b的值将会是0或是非0,在C里也就是假和真的意思..(逻辑值)
注:VK_BACK就是键盘的BACK键的虚拟键值,也就是8