我在程序设计时候,from1设置成了主窗体,现在由于需要,要将form2设置为程序启动时,最先出来的窗体,请问改怎么弄啊?我在工程里设置了也没有用啊?

解决方案 »

  1.   

    估计是改dpr文件(主程序),例如:
    begin
      if FindWindow('Tfrm_Sraft_Login','系统登录') = 0 then
        begin
          Application.Initialize;
          Application.Title := '报表处理系统 Sraft';
          Application.CreateForm(Tfrm_Sraft_Login, frm_Sraft_Login);
          Application.Run;
        end
      else
        Application.Messagebox('系统已经运行','Sraft 提示',48);
    end.
      

  2.   

    在项目文件里面弄下就好了
    form1:=tform1.Create(application);
      form1.Show;
      form1.Update;
      form1.Hide;
      form1.Free;
      form2.ShowModal;
      

  3.   

    把代码中得FOrm1跟form2对调下
      

  4.   

    Application.Init....;
    //if form2 is used as a splash form, then:
    Form2 := TForm2.Create(application);
    Form2.Show;
    Form2.Update;DoYourInitWork;
    Form2.Free;
    //end splash form

    //if form2 is used for login, then:
    Form2 := TForm2.Create(application);
    if Form2.ShowModal <> mrOK then
    begin
      Form2.Free;
      Application.Terminate;
      Exit;
    end;
    Form2.Free;
    //end login form
    Application.CreateForm(TForm1, Form1);
    Application.Run;
      

  5.   

    這個問題我以前也遇到過,後來解決了,你把FROM2用模态窗口调用就行了
    代码如下:
    工程代码:
    在調用單元USES中加入controlS单元
    begin
      application.Initialize;
      application.createform(Tform1,form1);
      application.createform(Tform2,form2); 
      if form2.showmodal=mrok then
        application.run;
    end;FORM2
     在FROM2 USES  加入controlS单元(否则系统无法找到mrok这个值)
    Form2窗口中登录事件代码如下;
    procedure TFMlogin.loginbtClick(Sender: TObject);
    begin
       if edit1.Text=''then
        begin
        ShowMessage('用戶名不能為空!');
        edit1.SetFocus;
        exit;
        end;
       if Edit1.text='usename'then
          if edit2.text:='usewpd'then
            begin
             modalresult:=mrOK;
             exit;
            end
        else
         showmessage(你输入的用户名及密码不对,请重新输入!);
        action:=flase;
        exit; 
    end;
    你试试,我用的就是这样方法
      

  6.   

    哦,還有在project->Forms->中将Form1设为mainform;form2设为Available forms,不要设为Auto-create form;这两个至关重要!
      

  7.   

    在調用單元USES中加入controlS单元 
    什么意思?没有看明白?
      

  8.   

    我做好了,但是我通过双击进去form1时,就会出现“cannot create form.NO MDI forms are currently active”.这是怎么回事啊?
      

  9.   

    cannot create form.NO MDI forms are currently active  //不能创建窗体,当前没有MDI窗体激活.
    可能是你的父窗体没有创建!
      

  10.   

    在program 里面写  先create  form2
      

  11.   

    在項目設置裏,設置下他們啟動順序。就可翠了,可翠手工改代碼,也可翠通過 PROJECT->option 來設置
      

  12.   

    出现“cannot create form.NO MDI forms are currently active”.這個的原因是你沒有設置FROM1為主窗口,你在project->option ->Forms中將MAINFROM中選FROM1(設置FROM1為主窗口),將FOMR2設置為form2设为Available forms,不要设为Auto-create form;這是至關重要的;為什麽要在調入單元中加入controlS单元的原因是在用模態窗口時系統會調用controlS单元,如果沒有加入這個單元系統無法找到載入模態窗口和MROK這個變量!
      

  13.   

    在Form1的OnCreate事件中弹出Form2:
      Application.CreateForm(TForm2, Form2);
      Form2.ShowModal;