unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus, DB,Unit2, ADODB;type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    ComboBox1: TComboBox;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    frm:TForm2;
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  Username:string;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var role,password:string;
begin
   try
   Role:=ComboBox1.Text;
   Username:=Edit1.Text;
   Password:=Edit2.Text;
   adoquery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('select  * from caiwu.dbo.enter where Role:=人员类别 and Username:=工号 and Password:=口令');
   ADOQuery1.Parameters [0].Value := Role;
   ADOQuery1.Parameters [1].Value := Username;
   ADOQuery1.Parameters [2].Value := Password;
   ADOQuery1.Active := true;
   if ADOQuery1.RecordCount >0 then
   begin
     frm:=TForm2.Create(Self);
     Self.Hide;
     frm.ShowModel;
     Self.Show;
     end
     else
     begin
       showmessage('密码错误!');
     end;
     finally
     end;
   end;
end;end.

解决方案 »

  1.   

    showmodal   你还是装一个cnpack吧
      

  2.   

    procedure TStartFrm.Button4Click(Sender: TObject);
    var T:boolean;
        SQL,S1,S2,TempName,TempSN:string;
        i:integer;
    begin
      T:=False; S1:=''; S2:='';
      InputNum:=InputNum+1;
      TempName:=Trim(Edit1.Text);
      TempSN:=Trim(MaskEdit1.Text);
      If InputNum>9 then
      begin
        ShowMessage('密码多次错误,你不能使用本软件!');
        DataModule1.SocketConnection1.Connected:=False;
        DataModule1.SocketConnection1.AppServer.ClientOnOut(aPCName,aIP,OperateName,'下线    ','OUT');
        Application.Terminate;                                // 退出程序
      end;
      if TempName='' then
      begin
        Edit1.SetFocus;
      end
      else begin
        if MaskEdit1.Text='' then begin
          MaskEdit1.SetFocus;
        end
        else begin
    //判断数据库里面有没有用户名和密码;
          SQL:='select * from 管理权限 where 用户='+#39+TempName+#39+' and 密码='+#39+TempSN+#39;
          DataModule1.ClientDataSet1.Active:=False;
          DataModule1.ClientDataSet1.DataRequest(SQL);
          DataModule1.ClientDataSet1.Active:=True;
          T:=False;
          With DataModule1.ClientDataSet1 do
          begin
            if RecordCount>0 then
            begin
              S1:=Trim(FieldByName('用户').AsString);
              S2:=Trim(FieldByName('密码').AsString);
              if (S1=TempName) and (S2=TempSN) then
              begin
                ImeNameS:=Trim(FieldByName('IMENAME').AsString);
                Secret:=S2;
                T:=True;
                OperateName:=Trim(FieldByName('姓名').AsString);
              end;
            end;
          end;
        end;
      end;
      if T
      then begin
        PrivateName:=Trim(Edit1.Text);
        DataModule1.SocketConnection1.AppServer.ClientOnOut(aPCName,aIP,OperateName,'登录    ','IN');
        DataModule1.ClientDataSet1.Active:=False;
        ModalResult := mrOK;
        StartFrm.Hide;
      end
      else begin
        ShowMessage('密码错误,请再次输入密码:');
      end;
    end;