我有个登录表单的问题。与你在论坛上发表的几乎相同。听说你已搞定!能否见识一下你三个窗体如何解决的。我是新手,最好有源码参考。愿以百分相赠。除此20,另赠100,可否?

解决方案 »

  1.   

    问题变化了,大家帮忙看看,如解决高分相赠。form1为登陆窗体 。mdimain为父窗体。如何通过form1判定正确登陆后,进入mdimain的主窗体呢?
    现在通过 Application.CreateForm(Tmdimain, mdimain); 
    或mdimain.Show;可实现调用,但出错“cannot creat form. no mdi forms are currently active”
      

  2.   

    试试:
    首先在项目文件是:
    {$R *.res}begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);
      Application.CreateForm(Tcover, cover);  //没有封面就把这两句去掉
      cover.ShowModal;                        // 
      Application.CreateForm(Tlogin, login);
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.然后在登录表单login的“确定”按钮中写入:
    begin
       //你的一样诸如判断密码之类的条件
       modalresult:=mrOK;
    end;
      

  3.   

    to liuri(璇玑) :感谢回复。请问你的主窗体 Tmain是不是mdi窗体?有数据模块吧?是不是放在
    项目文件是:
    {$R *.res}begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);      //---->是mdi吗?
      Application.CreateForm(Twhdata, whdata);  //--->数据模块
      Application.CreateForm(Tcover, cover);  //没有封面就把这两句去掉
      cover.ShowModal;                        // ---->如有停留也在这里处理吗?
      
    Application.CreateForm(Tlogin, login);
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.
      

  4.   

    主窗体 Tmain是mdi窗体,我把一些数据控件如ADOCONNECT之类是直接放在这个上面,目前没搞什么数据模块,
    在封面COVER里,我加了一个TIMER控件,
    并在ONTIMER中写了: cover.close;
      

  5.   

    你好!
    刚看到,失礼了,没想到你回复那麽早!如上个时间。哈哈……其实按理我们的登陆过程应该一样吧!我的一些数据控件如ADOCONNECT之类也只是放在了数据模块中。但在登陆后,调用主窗体可以显示,但点击菜单本应出现的子窗体出错,如取消登陆功能,都正常。顺便问一下,你的登陆窗体和封面都是普通Form,还是都是Mdi的子窗体呀?这个在项目文件里就这麽写是吗?
    Application.CreateForm(Tlogin, login);
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    登陆窗体正确登陆后,是用什麽调用的主窗体界面呢?
    Application.CreateForm(Tmain, main);      //?
    main.show                                //?
    main.ShowModal                          //?
      

  6.   

    登陆窗体和封面都是普通Form,主窗体 Tmain是mdi窗体,
    项目文件中写的应该是:
    begin
      Application.Initialize;
      Application.CreateForm(Tmain, main);//主窗口要在这里创建,而不是在LOGIN后
      Application.CreateForm(Tlogin, login);
      if login.ShowModal = mrOK then
         Application.Run
      else
         Application.Terminate;
    end.然后你在登录表单login的“确定”按钮中写入:
    begin
       if 密码<>pass  then exit;
       modalresult:=mrOK;  //表示当密码正确时就关闭这个表单,主窗口就会出来了
    end;
      

  7.   

    你的意思主窗体显示不用在login窗中写如:main.show                                
    的语句;只要
    if login.ShowModal = mrOK then
         Application.Run;
    成立便可自动运行起来是吗?还有
    modalresult 是不是不能直接用?定义在uses中还是var?用什麽呢?
    如:uses
               SysUtils, Classes;
    期待回复……
      

  8.   

    modalresult可以直接用啊,不需要定义的,应该是属于系统级变量吧,呵呵,我还学了十来天,道理是说不清楚的:P
    我那里反正是:
    if login.ShowModal = mrOK then
         Application.Run;
    就可以了,你试试不就知道了:)
      

  9.   

    可我的程序运行到此提示我modalresult未定义,不动了,至于后边的更是看不到了,所以提前打听个结果!:P非常感谢你,虽然未果!
    我的主窗体中有太多的东西,牵一发动全身,调试起来很慢。该问的差不多都问了!我慢慢调吧!总不该让你这样的好人等的太久,中午饭后来领分吧!