我正在尝试创建一个显示两个窗体的简单应用程序。第一个,主窗体应该能够在单击底部时显示弹出窗体窗口。显示的第二个表单必须禁用主窗体的功能。
请为此示例显示一个简单的代码。
答案 0 :(得分:7)
尝试:
procedure ShowModalForm()
var
newForm: TNewForm;
begin
newForm := TNewForm.Create(nil);
try
newForm.ShowModal;
finally
newForm.Free;
end;
end;
答案 1 :(得分:4)
实现此目的的最简单方法是以模态方式显示表单。调用ShowModal以显示表单,主表单不会被禁用,也无法接收任何输入。
答案 2 :(得分:4)
您可以创建它的另一种方式就是这样。
procedure TForm1.btnCreateFormClick(Sender: TObject);
var
YourForm : TYourForm;
begin
YourForm := TYourForm.Create(nil);
try
YourForm.ShowModal;
finally
YourForm.Free;
end;
end;
答案 3 :(得分:0)
这是一些样板代码,用于演示Delphi中的modal window行为:
procedure TMain.Button1Click(Sender: TObject);
var
Result: TModalResult;
begin
{ if Dialog is not in "auto-create forms" list - instantiate it }
if not Assigned(Dialog) then
Application.CreateForm(TDialog, Dialog);
{ MODAL forms are blocking input on per application level }
{ so the following call blocks until Dialog form closes }
Result := Dialog.ShowModal();
if IsPositiveResult(Result) then
begin
{ handle if user responds with OK, Yes, etc }
ShowMessage('Accepted');
end
else
begin
{ or handle Close, Cancel, No, ... }
ShowMessage('Cancelled');
end;
end;
通过在Object Inspector中分配按钮 control 的ModalResult
属性来实现不同的对话框结果。有关更多信息,请参阅ShowModal
方法。
以下是用于说明ModalResult属性设置的相关DFM代码:
object btnOK: TButton
Caption = 'OK'
ModalResult = 1
end
object btnCancel: TButton
Caption = 'Cancel'
ModalResult = 2
end