回 帖 发 新 帖 刷新版面

主题:不明白,请高手指点

想做一个输入数字的文本框,如果输入的不是实数弹出消息框提示,代码编写如下:
procedure TForm1.Edit1Change(Sender: TObject);
var
str:string;
begin
str:=rightstr(edit1.Text,1);
if (str<>'') then
 begin
 if ((str<'0')or(str>'9')and(str<>'.'))then
  showmessage('请输入实数');
  edit1.Text:='';
  edit1.SelectAll;
 end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
button1.SetFocus;
end;

end.
现在问题是不能输入数字,可以输入字母并且也有消息提示,请各位指点是哪儿错啦

回复列表 (共2个回复)

沙发

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if ((key<'0')or(key>'9')and(key<>'.'))then
 begin
      showmessage('请输入实数');
      key:=#0;
 end;
  //edit1.Text:='';
  //edit1.SelectAll;
 end;

板凳

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9','.',#8]) then
     begin
     Key := #0;
     ShowMessage('只可以输入0~9,以及小数点!');
     end;
end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册