以下是手工修改后的工程文件中的代码
1.   Application.Initialize;
2.   Application.CreateForm(TdmForm, dmForm);
3.   Application.CreateForm(TfmLogin, fmLogin);
4.   Application.CreateForm(TMainForm, MainForm);
5.   fmLogin := TfmLogin.Create(nil);
6.   IF fmLogin.ShowModal = mrOK Then
7.   Begin
8.     fmLogin.Free;
9.    Application.Run;
10.  End
11.  Else
12.    fmLogin.Free;以下是登录窗口中确定按钮中的代码:procedure TfmLogin.Button1Click(Sender: TObject);
var
  sConnectionString: string;
begin
  sConnectionString := 'Provider=SQLOLEDB.1;Persist Security Info=True;User ID=' + Trim(edtUserName.Text) + ';Initial Catalog=Northwind;Data Source=' + cbSqlServerName.Text + ';Password=' + edtPassword.Text;  dmFootBallForm.ADOConnection1.ConnectionString := sConnectionString;
  try
    dmFootBallForm.ADOConnection1.Connected := True;
  except
    on e: EOleSysError do
    begin
      showmessage(string(e.ErrorCode));
      dmFootBallForm.ADOConnection1.Connected := False;
    end;
end;程序首先创建dmForm窗体,因为ADOConnection1控件在此窗体中,fmLogin窗体里要用到此控件。然后激活fmLogin窗体,将用户通过登录窗体中的edit控件中输入的值赋给dmFootBallForm窗体中的ADOConnection1控件的属性ConnectionString。然后执行 dmFootBallForm.ADOConnection1.Connected := True;
若SQL server 通过认证,则关闭fmLogin窗体,回到工程文件开始接着执行以下语句,激活主窗体。若未通过SQL server 认证,则关闭登录窗体,退出程序。
在Project -> Option -> forms 中窗体的顺序为dmfrom,fmLogin,fmMainForm.
可运行程序不能达得想要实现的效果,请朋友指点,问题出在什么地方。

解决方案 »

  1.   

    在DM模块创建后,你创建了Login窗体,用Application.CreateForm方式创建的,delphi会把它当成主窗体的,所以你这句一定要去掉。
    另外,你在LoginForm中用了dmFootBallForm,而那个时候dmFootBallForm应该还没有创建呢,你怎么能用了?
      

  2.   

    CSDN的服务器时间是不是有问题阿
      

  3.   

    hoho,生日到了,借楼主的地盘自己开心一下^_^
      

  4.   

    去掉了pplication.CreateForm(TfmLogin, fmLogin);这一句,不知道当点击了确定按钮后如何返回到工程文件接着执行以下的语句。
      

  5.   

    呵呵,楼主你的问题不难的,如果按我的方法没有调试通过,可以qq找我:8766030,注明csdn。
      

  6.   

    知道原因了,原来是没有在登錄窗口中,設置登錄按鈕的ModalResult屬性為mrOK!
    谢谢各位了。
      

  7.   

    sundayboysII(空) 
    明天去单位上QQ和你交流,现在上不了QQ