Delphi的InputBox是模态的吗? 即它应该等待输入吗?

问题描述 投票:0回答:1

这是Windows 10的一个bug还是简单的卡键?

在我的Delphi 2009应用程序中,我通过放置在一个while循环中的简单输入框来询问用户的姓名,这样他们就不能留空。如果他们在没有输入名字的情况下取消或点击 "确定",就会显示一条验证信息,然后循环再问一次。

我的一个用户(使用windows 10,但我不知道是哪个版本)到了这个点,应用程序就挂在这个循环里。他们将屏幕描述为 "闪烁",截图显示输入框和验证信息都在屏幕上,但几乎是透明的,表明它们都在快速显示。我的应用程序保存的日志也显示它到了循环之前的点,但没有更进一步。这个用户在不同的日子里都可以重现这种情况。

为了以防万一,我检查了这些SO的帖子 此处此处 但我的这段代码太初级了,我看不出可能发生了什么。

这段代码是

function TFrmProcessIPaddressRemoteAccess_JHM.CheckAndProcessUserIPaddress( TheIPaddress: string): boolean;
const
    EMPTY_STRING = '';
var 
 comment : string;

begin

<stuff to do with checking if IP address is already on server>

comment := EMPTY_STRING;
 while comment = EMPTY_STRING do
       begin
       comment := inputbox('Adding IP address', 
                           'Your IP address is not in the list of those allowed access. ' + slinebreak
                          +'MAMbase is about to add it.' + slinebreak + slinebreak
                          +'Please enter your name so that the IP address can be identified', EMPTY_STRING);
       if comment = EMPTY_STRING then
            showmessage('Please enter your name');
       end;

<stuff to do with adding the IP address and the comment to the server>

end;
delphi-2009 inputbox windows-10-desktop
1个回答
0
投票

在Delphi 2009的应用程序中,是否有一个简单的输入框?InputBox 模式?

是的。

© www.soinside.com 2019 - 2024. All rights reserved.