将登录窗口的的ONCREATE中加入
PARENT:=主窗体名

解决方案 »

  1.   

    如果在oncreate里加肯定不对的;
    在onshow里也不对;
    可能 在activatea里边加才行的;
    它们三个的执行是:create->onshow->activate你试一试;
    procedure Tform.FormActivate(Sender: TObject);
    begin
      .....
    end;
      

  2.   

    在Project Source里加人
    Application.Initialize;
    Application.CreateForm(TYourForm, YourForm);
    ...login.ShowModal;
    ...Application.Run;
      

  3.   

    这个问题很简单呀,你只要在主窗体的OnActivate时间中来创建你登陆的窗体就可以了.
      

  4.   

    如果没有特别要求的话,我认为还是可以这样:
    program Project1;//程序文件中uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal ;
      Application.Run;
    end.
      

  5.   

    在ONSHOW里面是可以的!!!!如果你的LOGO窗口是静态的,直接用就可以了,动态的就要先创建,后使用了
      

  6.   

    我也觉得应该在OnShow里写代码
      

  7.   

    还是应该在主窗体的OnActivate事件中
    login.ShowModal;
    在project里要让login自动创建,或者在主窗体调用的时候创建如果在project里加login.ShowModal;的话,只能实现不出现主窗体而出现登录窗口的效果,和你的意思相反可以试试把你的代码贴出来看看
      

  8.   

    首先谢谢大家的帮助。
    我再次强调二点:(1)我用的是窗口。(2)要在主窗体出现后,再出现登录窗口。
    如在OnShow中写代码,主窗体就出现不了。
    如果不是MDI窗口,在主窗体的OnActivate中用login.ShowModal是对的。
      

  9.   

    在project中试验program Project1;uses
      Forms,
      Windows,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2};
    {$R *.RES}begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      form1.show();
      sleep(3000);
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal();
      Application.Run;
    end.