??? 简单问题,如何让Edit1只输入正负数 ???

lantianhf 2011-04-28 11:43:19
简单问题,如何让Edit1只输入正负数,即正负整数
1.即只输入大于0的整数,小于0的整数.
2.且第一个数字不能为0,后面的可以出现。
3.负号只能出现在第一个位置,后面不能再出现。

请问怎么做,不要其它控件,要同时满足上面3个条件。
...全文
72 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongss 2011-04-28
  • 打赏
  • 举报
回复

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','-',#8]) then
key:= #0;
if (key='0')and((Edit1.Text='')or(Edit1.Text='-')) then
key:= #0;
if (key='-')and(Edit1.Text<>'') then
key:= #0;
end;
浩南_哥 2011-04-28
  • 打赏
  • 举报
回复
那就把上面的在修改下,比如当输入“0”时,获取当前Edit的字符串长度是否>1如果大于1,在判断光标是否在第一位如果在第一位就不输入呗,如果不在允许输入。
各种情况都要考虑到。
lantianhf 2011-04-28
  • 打赏
  • 举报
回复
就想判断一次,只在OnkeyPress里判断
浩南_哥 2011-04-28
  • 打赏
  • 举报
回复

if key = '.' then Key := #0
else
if (key = #13) then
begin
if btndsave.Enabled then
btnDSave.Click;
if btnDModify.Enabled then
btnDModify.Click;
end
else
if key = #8 then key := #8
else
if (key < '0') or (key > '9') then
key := #0;

只能输入数字,其他的自己在判断就行了,比如在OnChange事件中判断下就可以了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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