gpt4 book ai didi

delphi - 如何在不关闭Delphi中的表单的情况下关闭MessageDlg?

转载 作者:行者123 更新时间:2023-12-03 19:15:57 25 4
gpt4 key购买 nike

我有一个窗体,上面有一个带有三个值的组合框:90、95和99。我希望用户仅从这三个值中进行选择,如果输入另一个值,则会引发错误。因此,我编写了以下代码来显示一条消息,警告用户该错误。问题是当messageDlg出现并且用户单击“确定”时,整个表单关闭。我希望用户在关闭MessageDlg后能够做出正确的选择。

        if not ((cbPILimits.Text = '90') or
(cbPILimits.Text = '95') or
(cbPILimits.Text = '99')) then
begin
MessageDlg('The PI limit levels can only be 90%, ' +
'95% or 99%. Please choose among these three.',
mtError, [mbOK], 0);
if not (TryStrToFloat(cbPILimits.Text, PIPercent)) then exit;
end;

Close;

最佳答案

表单将关闭,因为示例代码的末尾带有Close;,无论是否执行MessageDlg(),该代码都会始终执行。

我假设您只想在用户选择有效值时关闭表单,否则显示消息而不关闭表单。您需要具有以下内容:

    if (not cbPILimits.Text = '90') or
(not cbPILimits.Text = '95') or
(not cbPILimits.Text = '99') then
begin
MessageDlg('The PI limit levels can only be 90%, ' +
'95% or 99%. Please choose among these three.',
mtError, [mbOK], 0);

// whats the point of line below? seems like obsolete
if (not TryStrToFloat(cbPILimits.Text, PIPercent)) then Exit;
end
else
Close;


另外,如果您不想允许用户在 TComboBox中手动输入值,则可以将 TComboBox.Style属性设置为 csDropDownList以禁用编辑值。

关于delphi - 如何在不关闭Delphi中的表单的情况下关闭MessageDlg?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19238398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com