有三个窗体,  Form_welcome,form_login,form_main.
第一出现的窗体是Form_welcome,这之中有一个欢迎使用的界面。单击鼠标.出现登陆
Form_login窗口,同时关闭Form_welcom.form_login密码验证正确性后打开 Form_main,同时关闭Form_main.把用户保存用局变量中去。
请问各位大侠,高手,这三个窗体的Formstyle怎么设啊。同时,打开跟关闭Form的代码怎么写啊。

解决方案 »

  1.   

    在main的onshow事件里面写Form_welcome.ShowModal;然后Form_welcome的点击事件里面写Form_welcome.close在Form_welcome的close事件里面把form_login.showmodal
      

  2.   

    在Form_welcome中写: procedure tform_welcomeanyclick(sender:tobject);
    begin
    form_login.show;
    form_welcome.close;//单击鼠标.出现登陆Form_login窗口,同时关闭Form_welcom.
    end;
      

  3.   

    //以下是在form_main 创建之前显示form_login窗体(仅供参考)//设一个全局变量,用来检测form_main创建前是否显示了form_login
      var HaveLogin : boolean;//在form_main 的窗体Formcreate事件中初始化变量
      HaveLogin : false;
    //在form_main 的窗体FormActivate事件中
    if not HaveLogin then  
    begin 
      Form_login.show;
      HaveLogin:=true;   
    end;(别忘记了uses login 单元)
      

  4.   

    》》//在form_main 的窗体Formcreate事件中初始化变量
    》》  HaveLogin : false;HabeLogin:=false;
      

  5.   

    例子:(工程文件)
    {$R *.res}begin
      Application.Initialize;
      Sys_FSplash:=TSys_FSplash.Create(Application);//欢迎窗口
      Sys_FSplash.Show;
      Sys_FSplash.Update;
      Application.Title:='Miracle Finance System';
      Application.CreateForm(THR_FMDIBaseClass, HR_FMDIBaseClass);
      Application.CreateForm(TSys_ModalBaseClass, Sys_ModalBaseClass);
      Application.CreateForm(THR_FBaseInfo, HR_FBaseInfo);
      Application.CreateForm(TSys_ModalInfo, Sys_ModalInfo);
      Application.CreateForm(TSys_FAbout, Sys_FAbout);
      Application.CreateForm(TfrmCal, frmCal);
      Application.CreateForm(TSys_FDm, Sys_FDm);
      Application.CreateForm(TSys_FLogON, Sys_FLogON);
      Application.CreateForm(TSys_FModifyPassWord, Sys_FModifyPassWord);
      Application.CreateForm(TSys_FMSGBOX, Sys_FMSGBOX);
      Application.CreateForm(TSys_FMsgDlg, Sys_FMsgDlg);
      Application.CreateForm(TSys_FOrderBy, Sys_FOrderBy);
      Application.CreateForm(TSys_FSplash, Sys_FSplash);
      Application.CreateForm(TCW_FAccountSyle, CW_FAccountSyle);
      Application.CreateForm(TCw_FDBUAccount, Cw_FDBUAccount);
      Application.CreateForm(TCw_FLookupPrjItems, Cw_FLookupPrjItems);
      Application.CreateForm(TCW_FPeriod, CW_FPeriod);
      Application.CreateForm(TCW_FPeriodBrows, CW_FPeriodBrows);
      Application.CreateForm(TCW_FAccLookCon, CW_FAccLookCon);
      Application.CreateForm(TCW_FAccount, CW_FAccount);
      Application.CreateForm(TCW_FAccountChecked, CW_FAccountChecked);
      Application.CreateForm(TCW_Fcw_bdigest, CW_Fcw_bdigest);
      Application.CreateForm(Tpub_FDepartment, pub_FDepartment);
      Application.CreateForm(Tpub_FLookForm, pub_FLookForm);
      SysConnectionString := 'Provider=OraOLEDB.Oracle.1;Persist Security Info=False;' +
                             'User ID=' + CryptStr(GetDBUserID,1) + ';' +
                             'Data Source=' + CryptStr(GetDataSource,1)  + ';' +
                             'Password=' + CryptStr(GetDBPassWord,1) ;
      Sys_FSplash.Cursor:=-17; {crSQLWait}
      while Sys_FSplash.Timer.Enabled do
       Application.ProcessMessages;  if not LogOn then  //函数:boolean型,里面有创建登录窗口语句
        Application.Terminate;  Sys_FSplash.Hide;
      Sys_FSplash.Free;  Application.Run;
    end.
      

  6.   

    在这么几个答案我认为,惟有IORILI(眼镜)这一段代码有点道理,其他的几个代码有点不妥。当然我很感谢大家的帮忙。也希望大以后还能这么热情。虽然这一段代码很简单,但是真正写的好还没有。大家都小看这三个窗体了。大家如果有空的可以继续讨论。