改一下:
program MS1; uses 
Forms, 
Monitor1 in '..\Form\Monitor1.pas' {Form1}, 
Monitor2 in '..\Form\Monitor1.pas' {Form2}, 
Monitor3 in '..\Form\Monitor1.pas' {Form3}; {$R *.res} begin 
Application.Initialize; 
Application.CreateForm(TForm1, Form1); 
Application.CreateForm(TForm2, Form2); 
Application.CreateForm(TForm3, Form3); 
Application.Run; 
end. 

解决方案 »

  1.   

    当然无法调用了。
    你的工程文件里
    Application.CreateForm()中并没有创建Form2或Form3对象。
    当然无法显示了。
    可以在Click中如下写:
    var MyForm:TForm2
    begin
     MyForm := TForm2.Create(Application)
     MyForm.ShowModal()
     ...
    //注意用完后该窗口要调用Free释放。
      

  2.   

    或者动态创建:
    form2 := TForm2.Create(self);
    try
      form2.ShowModal;
    finally
      form2.free;
    end;
      

  3.   

    这儿,如果你用
    var
     form1:Tform1;
    begin
     form1:=Tform1.create(application);
    form1.showmodal;//没有错了;
    end;不过,
    rogram MS1; uses 
    Forms, 
    Monitor1 in '..\Form\Monitor1.pas' {Form1}, 
    Monitor2 in '..\Form\Monitor1.pas' {Form2}, 
    Monitor3 in '..\Form\Monitor1.pas' {Form3}; {$R *.res} begin 
    Application.Initialize; 
    Application.CreateForm(TForm1, Form1); 
    Application.CreateForm(TForm2, Form2); 
    Application.CreateForm(TForm3, Form3); 
    Application.Run; 
    end. 
    这种方法也对,只不过是一个是主窗体运行时,就建立的;
    而另一个是需要是才建立;//
      

  4.   

    这是一种方法
    program MS1; uses 
    Forms, 
    Monitor1 in '..\Form\Monitor1.pas' {Form1}, 
    Monitor2 in '..\Form\Monitor1.pas' {Form2}, 
    Monitor3 in '..\Form\Monitor1.pas' {Form3}; {$R *.res} begin 
    Application.Initialize; 
    Application.CreateForm(TForm1, Form1); 
    Application.CreateForm(TForm2, Form2); 
    Application.CreateForm(TForm3, Form3); 
    Application.Run; 
    end. 
    要不就动态创建窗体,不用了就关闭时释放就可以。
    这样的话就必须注释掉下面的两句
    Application.CreateForm(Tform2,form2);
    Application.CreateForm(TForm3,for3);
      

  5.   

    with TForm1.Create(Self) do
    begin
     ShowModal;
     Free;
    end;