DELPHI XE - 如何在mdi应用程序启动时显示对话框表单?

时间:2013-12-13 14:18:42

标签: delphi delphi-xe

我们有Delphi XE MDI项目。我们需要在创建和显示MDI主表单之后,在应用程序启动时打开一个Dialog表单(带有bsDialog属性的表单)。

2 个答案:

答案 0 :(得分:1)

您可以在表单的OnShow事件中添加内容,但会在主窗体实际可见之前显示该对话框。因此,您需要延迟显示对话框,直到主窗体实际可见。

我确定还有其他方法可以做到这一点,但我向TApplication.OnIdle添加了一个处理程序,并在那里显示对话框。显然,你需要在主窗体中使用布尔标志来确保对话框只显示一次。使用TApplicationEvents解决Delphi缺乏多播事件的问题通常更为清晰。

procedure TMainForm.ApplicationIdle(Sender: TObject; var Done: Boolean);
begin
  if not FStartupCalled then begin
    FStartupCalled := True;//FStartupCalled is a member field of TMainForm
    DoApplicationStartup;//this would show your dialog
  end;
end;

答案 1 :(得分:0)

你可以这样做

program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Unit2 in 'Unit2.pas' {Form2};

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Form1.Show; // iff really necessary
  with TForm2.Create(nil) do try
    ShowModal;
  finally
    Free;
  end;
  Application.Run;
end.