你可以先查看你的工程文件, *.Dpr
发现如下代码
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1); // 1#
Application.CreateForm(TForm2, Form2); // 2#
Application.Run;
end.
最常见的失败: Oncreate中调用Form2, 在#1位置时, 会产生Oncreate 事件,
但是Form2还未建立, form2处于未定义状态, 自然 Form2.show等过程会失败。
其他失败于此类似。
这样做:
Application.Initialize;
{-------这段代码也可以放在TForm1的Oncreate事件中-------}
with TForm2.create(application) do begin
try
showmodal;
finally
free ;
end;
end;
{------------------------------------------------------}
Application.CreateForm(TForm1, Form1); // 1#
// Application.CreateForm(TForm2, Form2); // 2# *---删除
Application.Run;