我们有Delphi XE MDI项目。我们需要在创建和显示MDI主表单之后,在应用程序启动时打开一个Dialog表单(带有bsDialog属性的表单)。
答案 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.