高 高手贵姓 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #1 Edit框中如何限制只能输入正整数且最大不能超过65535!?即只能输入0-65535之间的任意整数。
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #3 KeyPress事件:<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text))>=High(Word)) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end;
KeyPress事件:<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text))>=High(Word)) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end;
L lynch2611 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #4 想用Edit的话 可以自己控制<br>在OnChange事件中判断他的大小不就可以了嘛!<br>看你想达到什么效果,比如输入67890,可以 显示65535也可以显示6789,随你控制<br>也可以在OnKeyPress中控制,判断他输入这个数字后会不会大于65535,<br>如果大于了就直接Key := #0;就OK了
想用Edit的话 可以自己控制<br>在OnChange事件中判断他的大小不就可以了嘛!<br>看你想达到什么效果,比如输入67890,可以 显示65535也可以显示6789,随你控制<br>也可以在OnKeyPress中控制,判断他输入这个数字后会不会大于65535,<br>如果大于了就直接Key := #0;就OK了
高 高手贵姓 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #5 我写了 if not(key in ['0'..'9']) and not (strtoint(Edit3.text)<= 65535) then 这样为什么报错!?
我写了 if not(key in ['0'..'9']) and not (strtoint(Edit3.text)<= 65535) then 这样为什么报错!?
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #6 copy 我代码吧<br>现成的都给你了,还错
高 高手贵姓 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #7 if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text))>=High(Word)) <br>请问#8什么意思? 另外我要限制小于等于65535,or后面的代码可以实现?
if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text))>=High(Word)) <br>请问#8什么意思? 另外我要限制小于等于65535,or后面的代码可以实现?
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #9 High(Word)就是65535<br>扩号没对应上,我手头没delphi,小改一点就行了,哎,这要是改不了,你等明天给你现成的吧
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #10 多了一个“)”,用下面的试试吧:<br>KeyPress事件:<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text)>=High(Word)) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end;
多了一个“)”,用下面的试试吧:<br>KeyPress事件:<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text)>=High(Word)) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end;
高 高手贵姓 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #11 依然报错。。。StrToInt好像不能和 High(Word)比较
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #12 都是integer,当然可以比较,只是扩号没对上而已,我这的机器没装d<br>其实你小改一下就ok了
L liuchong Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #13 你加我qq吧<br>远程搞一下<br>10040231
A ANiDelphi Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #14 procedure TForm1.Edit1Change(Sender: TObject);<br> <br> procedure InputError;<br> begin<br> ShowMessage('请输入1-65535之间的数字');<br> Edit1.Clear;<br> Edit1.SetFocus;<br> end;<br><br>var<br> I: Integer;<br>begin<br> if Edit1.Text <> '' then<br> try<br> I := StrToInt(Edit1.Text);<br> if (I < 1) or (I > 65535) then<br> InputError;<br> except<br> InputError;<br> end;<br>end;<br>不能在debug环境下测试
procedure TForm1.Edit1Change(Sender: TObject);<br> <br> procedure InputError;<br> begin<br> ShowMessage('请输入1-65535之间的数字');<br> Edit1.Clear;<br> Edit1.SetFocus;<br> end;<br><br>var<br> I: Integer;<br>begin<br> if Edit1.Text <> '' then<br> try<br> I := StrToInt(Edit1.Text);<br> if (I < 1) or (I > 65535) then<br> InputError;<br> except<br> InputError;<br> end;<br>end;<br>不能在debug环境下测试
A ANiDelphi Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #16 !!!!不能在debug环境下测试 <br>找到编译后的*.exe文件直接运行就不会报错了
D delhpi Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-18 #17 是的 不要F9运行,那个是调试模式 ,默认设置的话 还是会提示异常。<br><br>在文件夹中直接运行 EXE。<br><br>ANiDelphi大哥水平高,还很耐心。
是的 不要F9运行,那个是调试模式 ,默认设置的话 还是会提示异常。<br><br>在文件夹中直接运行 EXE。<br><br>ANiDelphi大哥水平高,还很耐心。
B bluesweet Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-19 #18 OnKeyPress里写<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text)>=65535) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end; <br>#8是键盘上的退格键.楼主运行出错,报什么错?贴出来看看吧.<br>PS:ANiDelphi的方法也很好
OnKeyPress里写<br>begin<br> if (not (Key in ['0'..'9',#8])) or (StrToInt(TEdit(Sender).Text)>=65535) then<br> begin<br> Key:=#0;<br> Beep();<br> end;<br>end; <br>#8是键盘上的退格键.楼主运行出错,报什么错?贴出来看看吧.<br>PS:ANiDelphi的方法也很好
冰 冰力不足 Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-19 #19 找找那些扫描的国外代码 看看人家用什么控件或者怎么处理 前些日子我翻过这样的代码 有一扫描端口的 就有IP限制和端口限制 65535是端口的极限
L lovezyp Unregistered / Unconfirmed GUEST, unregistred user! 2007-10-19 #20 if (not (Key in ['0'..'9',#8]))and((strtoint(edit1.text)<0)or(strtoint(edit1.text)>65536))then<br><br>showmessage('输入错误,请输入0-65536之间的整数');
if (not (Key in ['0'..'9',#8]))and((strtoint(edit1.text)<0)or(strtoint(edit1.text)>65536))then<br><br>showmessage('输入错误,请输入0-65536之间的整数');