输入框中的取消按钮不会关闭

时间:2015-09-09 10:03:46

标签: delphi delphi-7

我在点击按钮时使用输入框来存储值并对其执行一些验证。我的问题是点击取消按钮它没有关闭,而是弹出信息进行空检查。任何帮助表示赞赏。谢谢

对于空检查,它弹出“请输入一个值并再试一次” 问题是,即使我点击取消它显示相同的消息,如“请输入一个值,然后再试一次”,当我没有提供任何值,然后点击确定它显示相同的消息“请输入一个值,然后再试一次”< / p>

SELECT sum(CAST(amount AS UNSIGNED)) FROM tbl1

1 个答案:

答案 0 :(得分:3)

问题是函数InputBox的参数default是空字符串。空字符串也是按下用户时返回的函数的值&#34;取消&#34;按钮。

  

如果用户按OK,则存储默认或用户输入的数据   返回字符串,否则返回空字符串。

在这种情况下,您无法确定它来自此值的位置(从“确定”或“取消”)。

我建议使用InputQuery代替InputBox。

类似的东西:

var
  InputValue : string;
  CustIsPressOK : boolean;
begin

  repeat
    CustIsPressOK := InputQuery('Enter a value', 'value',InputValue);

    if CustIsPressOK then
      begin
        if InputValue <> '' then
          begin
            if MessageDlg('Do You want to enter this value ' +inputValue+'?',mtInformation,[mbYes,mbNo],0)= mrYes then
              MessageDlg('Your Value got stored', mtInformation,[mbOk],0);
          end
        else
          begin
            //user is pressed OK button but value is empty string
            MessageDlg('Please Enter a value and try again', mtInformation,[mbOk],0) ;
          end;
      end;
    until (CustIsPressOK = false) or (CustIsPressOK and (InputValue <> ''));