gpt4 book ai didi

delphi-7 - Delphi返回showmodal的自定义结果

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

我有一个带有2个按钮的表单(1是mrOK-1是mrCancel)。
无论如何,只要单击其中一个按钮,表单就会关闭(调用OnClose)。

我想返回一个自定义值。像这样:

procedure OpenForm;
var
MyForm : TMyForm;
begin
MyForm := TMyForm.Create (NIL);
try
if MyForm.ShowModal = 1337 then begin
// [...]
end;
finally
MyForm.Free
end;
end;


模态形式:

 procedure TMyForm.Button1Click(Sender: TObject); // mrOK
begin
if Edit1.Text = '' then abort; // Don't close here?!
end;

procedure TExecutePrompt.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
if Edit1.Text = '' then abort; // Works but if the user clicks the X it should return mrCancel
end;


希望你理解我想做什么。
这是带有编辑控件的提示窗口。如果控件中没有文本,则该表单应保留到输入文本为止(除非单击X)。

谢谢你的帮助。

最佳答案

要关闭具有某些特定模态结果值的模态窗口,只需分配

ModalResult := MyVal; // This will close this modal window
// and the modal result will be MyVal


也就是说,确保 Button1具有 ModalResult = mrNone,然后您可以执行以下操作

procedure TMyForm.Button1Click(Sender: TObject); // mrOK
begin
if Edit1.Text <> '' then ModalResult := 1337;
end;


如果编辑框不为空,则将关闭表单,模态结果为 1337

关于delphi-7 - Delphi返回showmodal的自定义结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12176916/

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