⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pfm_fdlogin.pas

📁 主要是介绍DELPHI三层应用以及分布式数据库的应用
💻 PAS
字号:
unit pfm_fdlogin;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Db, DBTables, ADODB,unit_wxp, jpeg, ExtCtrls;

type
  Tfm_fdlogin = class(TForm)
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    Query1: TADOQuery;
    Panel1: TPanel;
    ComboBox1: TComboBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Image1: TImage;
    BBtnOk: TBitBtn;
    BBtnCancel: TBitBtn;
    Label4: TLabel;
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure BBtnOkClick(Sender: TObject);
    procedure BBtnCancelClick(Sender: TObject);
    procedure Edit3Enter(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure FormCreate(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    procedure GetUserRight();
    procedure  AddOffice ();
  public
    { Public declarations }
  end;

var
  fm_fdlogin: Tfm_fdlogin;
    ifFirst:boolean;

implementation

{$R *.DFM}

procedure Tfm_fdlogin.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    if key<>#13 then exit;

    if length(edit1.text)<4 then
    begin
        showmessage('用户帐号为4~8个字符');
        exit;
    end;
    query1.Close;
    query1.sql.clear;
    query1.sql.add('select * from t_user where username='''+edit1.text+'''');
    query1.open;
    if not query1.Eof then
    begin
        mUsername:=edit1.text;
        unit_wxp.UserName :=mUsername;
        mUserpass:=query1.fieldbyname('userpass').asstring;
        mpname:=query1.fieldbyname('pname').asstring;
        mUserid:=query1.fieldbyname('userid').asstring;
        edit2.text:=mPname;
        edit3.setfocus;
        label4.Caption:='用户名正确,请输入密码';
    end
    else
    begin
        label4.Caption:='用户名错误,请重新输入';
        edit1.text:='';
    end;
    query1.Close;
end;

procedure Tfm_fdlogin.BBtnOkClick(Sender: TObject);
begin
    if (edit3.text=mUserpass) and (length(mUserpass)>=4) then
    begin
        GetUserright();
        modalresult:=mrOk;
    end
    else
    begin
        label4.Caption:='密码错误';
        edit3.SelectAll;
    end;
    ADOQuery2.Active :=false;


end;

procedure Tfm_fdlogin.BBtnCancelClick(Sender: TObject);
begin
    modalresult:=mrCancel;

end;

procedure Tfm_fdlogin.Edit3Enter(Sender: TObject);
begin
    if length(edit1.text)<4 then
    begin
        edit1.SetFocus;
    end;

end;

procedure Tfm_fdlogin.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
    if key<>#13 then exit;
    if (edit3.text=mUserpass) and (length(mUserpass)>=4) then
    begin
        GetUserright();
     if ifFirst=true then
     begin
          ADOQuery1.SQL.Clear ;
          ADOQuery1.SQL.Add('insert into pub_z_register (办事处) values (''' + combobox1.Text +
          ''')');
          ADOQuery1.ExecSQL ;
     end;
        unit_wxp.myOffice :=combobox1.Text ;
        modalresult:=mrOk;
    end
    else
    begin
        label4.Caption:='密码错误';
        edit3.SelectAll;
    end;
end;
procedure Tfm_fdlogin.GetUserRight();
var
i:integer;
begin
    query1.Active:=false;
    query1.sql.clear;
    query1.sql.add('select * from t_userright where userid='+muserid);
    query1.active:=true;
    mUserright.Clear;
    while not query1.Eof do
    begin

        mUserright.Add(query1.fieldbyname('rightname').asstring+'='+
            query1.fieldbyname('canuse').asstring);

        query1.next;
    end;
    query1.active:=false;
    {for   i:=0 to mUserright.count-1  do
    begin
          showmessage(mUserright.strings[i]);
    end;}
end;


//增加所有办事处
procedure  Tfm_fdlogin.AddOffice ();

begin
     with ADOQuery1 do
     begin
          Active :=false;
          SQL.Clear ;
          SQL.Add('select * from pub_z_register');
          active:=true ;
          if Bof and Eof then
          begin
             ifFirst:=true;
             ADOQuery2.Active :=false;
             ADOQuery2.SQL.Clear ;
             ADOQuery2.SQL.Add('select * from pub_z_office');
             AdoQuery2.Active :=true;
             while not  ADOQuery2.Eof do
             begin

                  //showmessage(ADOQuery2.FieldValues['办事处名称'] );
                  combobox1.Items.Add(ADOQuery2.Fields.Fields[1].AsString );

                  ADOQuery2.Next ;


             end;
             combobox1.ItemIndex :=0;
             ADOQuery2.Active :=false;
          end
          else
             begin
             ifFirst:=false;
             ADOQuery2.Active :=false;
             ADOQuery2.SQL.Clear ;
             ADOQuery2.SQL.Add('select * from pub_z_register');
             AdoQuery2.Active :=true;
             combobox1.Items.Add(ADOQuery2.Fields.Fields[1].AsString );
             combobox1.ItemIndex :=0;
             ADOQuery2.Active :=false;
             //combobox1.Style := csOwnerDrawFixed
             unit_wxp.myOffice :=ADOQuery1.Fields.Fields[1].AsString ;
             end;
     end;
     ADOQuery1.Active :=false;

end;

procedure Tfm_fdlogin.FormCreate(Sender: TObject);
begin
     AddOffice;
end;

procedure Tfm_fdlogin.Edit1Exit(Sender: TObject);
begin
    if Edit1.Text ='' then exit;

    if length(edit1.text)<4 then
    begin
        showmessage('用户帐号为4~8个字符');
        exit;
    end;
    query1.Close;
    query1.sql.clear;
    query1.sql.add('select * from t_user where username='''+edit1.text+'''');
    query1.open;
    if not query1.Eof then
    begin
        mUsername:=edit1.text;
        unit_wxp.UserName :=mUsername;
        mUserpass:=query1.fieldbyname('userpass').asstring;
        mpname:=query1.fieldbyname('pname').asstring;
        mUserid:=query1.fieldbyname('userid').asstring;
        edit2.text:=mPname;
        edit3.setfocus;
        label4.Caption:='用户名正确,请输入密码';
    end
    else
    begin
        label4.Caption:='用户名错误,请重新输入';
        edit1.text:='';
    end;
    query1.Close;
end;

procedure Tfm_fdlogin.FormShow(Sender: TObject);
var
  interval:integer;
begin
  interval:= image1.Height div 7 ;
  combobox1.Top :=(image1.Height div 17)*5;
  edit1.Top := combobox1.Top+interval;
  edit2.Top := edit1.Top+interval;
  edit3.Top := edit2.Top+interval;
  edit1.SetFocus ;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -