login.pas

来自「物业管理系统系统特点 一、 实现集中式管理 系统将集团公司、」· PAS 代码 · 共 304 行

PAS
304
字号
unit login;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, ComCtrls, StdCtrls, Buttons, ImgList, jpeg, ShellAPI, Db,Registry,
  DBTables, Grids, DBGrids, DBCtrls, ADODB, inifiles;

type
  TloginDlg = class(TForm)
    Bevel3: TBevel;
    Label6: TLabel;
    Bevel4: TBevel;
    Panel2: TPanel;
    Panel3: TPanel;
    Image2: TImage;
    Image1: TImage;
    Label4: TLabel;
    Label3: TLabel;
    CobUserName: TComboBox;
    Label2: TLabel;
    Password: TEdit;
    CancelBtn: TBitBtn;
    BitBtn1: TBitBtn;

    procedure FormShow(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);

  private
    User_CLose:integer;
    Name:String;
    { Private declarations }
  public
    { Public declarations }
    bOK:bool;
  end;

var
  loginDlg: TloginDlg;
  myinifile:TInifile;

implementation

uses main,data,GSPYYA06,UserInfo1,dateutils;

{$R *.DFM}

//初始化
procedure TloginDlg.FormShow(Sender: TObject);
var
    s,s1,s2,s3,s4:string;
    filename:string;
    query1:TADOQuery;
    b1,b2,b3:bool;
    reg:tregistry;
    i,j:integer;
    d:double;
begin
    filename:=ExtractFilePath(paramstr(0))+'dblink.ini';
    myinifile:=Tinifile.create(filename);
    s1 := myinifile.readstring('sn','v','') ;//'bbb';//服务器名
    s2 := myinifile.readstring('us','v','') ;//'sa'; //SQL用户名
    s3 := myinifile.readstring('lp','v','') ;//'bbb'; //密码

    if (s1='') or (s2='') then CancelBtnClick(Sender)
    else
    begin
        query1:=TADOquery.Create(nil);
        query1.Connection:=DataModuleADO.ADOConnection1;
        User_Close:=0;

        query1.SQL.Clear;
        query1.SQL.Add('select * from 操作员 order by 编码 asc');
        Query1.Open;
        While not Query1.Eof do
        begin
            CobUsername.Items.add(trim(query1.Fieldbyname('姓名').AsString));
            Query1.Next;
        end;
        Query1.Close;
    end;



        {b1:=false;b2:=false;b3:=false;
        query1.SQL.Add('select * from ptemp1');
        Query1.Open;
        if query1.RecordCount=0 then
        begin
            s2:='000';
            reg:=tregistry.create;
            reg.rootkey:=HKEY_LOCAL_MACHINE;
            reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
            //reg.WriteString('MSFSS',inttostr(j));
            //showmessage(reg.ReadString('MSFSS'));
            s2:= reg.ReadString('MSFSS111');
            //s3:= reg.ReadString('MSF111');
            reg.closekey;
            reg.free;


            if s2<>'000' then
            begin
                showmessage('无效的授权说明。');
                Application.Terminate;
            end;

            //当前为试用版,请向当地代理商购买授权使用,代理商:   电话:   地址:
            //当前为正式版,代理商将提供完善的售后服务。代理商:   电话:   地址:



            s:=datetostr(date);
            s:=copy(s,1,4)+copy(s,6,2)+copy(s,9,2);

            for j:=1 to length(s) do
                s[j]:=chr(ord(s[j])xor 122222255000); //255

            s1:='234213sdfsdaf234!?asdf2134asfwer214124234sdfsadfsdawerqwer??!!!######asdfklq234124ksjfasdfkslkasjdf32423142312342314214asdfsadfsdfrqwerwqe2142134231423142124';
            //for j:=1 to length(s1) do
                //s1[j]:=chr(ord(s1[j])xor 122222255000); //255

            query1.sql.Clear ;
            query1.sql.Text:='insert into ptemp1(列1,列2) values(:s1,:s2)';
            query1.Parameters.ParamByName('s1').Value:=trim(s1);
            query1.Parameters.ParamByName('s2').Value:=trim(s);
            DataModuleADO.ADOConnection1.BeginTrans;
            query1.execsql;
            DataModuleADO.ADOConnection1.CommitTrans;


            reg:=tregistry.create;
            reg.rootkey:=HKEY_LOCAL_MACHINE;
            reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
            //reg.WriteString('MSFSS',inttostr(j));
            reg.WriteString('MSFSS111',s);
            //reg.WriteString('MSF111',inttostr(4515+k));
            //showmessage(reg.ReadString('MSFSS'));
            reg.closekey;
            reg.free;
        end
        else
        begin
            s1:='234213sdfsdaf234!?asdf2134asfwer214124234sdfsadfsdawerqwer??!!!######asdfklq234124ksjfasdfkslkasjdf32423142312342314214asdfsadfsdfrqwerwqe2142134231423142124';
            //for j:=1 to length(s1) do
                //s1[j]:=chr(ord(s1[j])xor 122222255000); //255

            i:=length(s1);

            while not query1.Eof do
            begin
                if length(trim(query1.Fieldbyname('列1').AsString))=i then
                begin
                    if (trim(query1.Fieldbyname('列1').AsString)=s1) then
                    begin
                        s:=trim(query1.Fieldbyname('列2').AsString);
                        b1:=true;
                        break;
                    end;
                end;
                query1.Next;
            end;


            reg:=tregistry.create;
            reg.rootkey:=HKEY_LOCAL_MACHINE;
            reg.openkey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run\OptionalComponents\',true);
            //reg.WriteString('MSFSS',inttostr(j));
            //showmessage(reg.ReadString('MSFSS'));
            s2:= reg.ReadString('MSFSS111');
            //s3:= reg.ReadString('MSF111');
            reg.closekey;
            reg.free;

            if s2=s then b2:=true;

            if (b1=true) and (b2=true) then
            begin
                for i:=1 to length(s) do
                    s[i]:=chr(ord(s[i]) xor 122222255000); //255

                s:=copy(s,1,4)+'-'+copy(s,5,2)+'-'+copy(s,7,2);

                s1:=datetostr(date);

                i:=trunc(strtodatetime(s)-strtodatetime(s1));

                if i>30 then
                begin
                    showmessage('无效的授权说明。');
                    Application.Terminate;
                end;
            end
            else
            begin
                showmessage('无效的授权说明。');
                Application.Terminate;
            end;
        end;


    end; }
end;

procedure TloginDlg.CancelBtnClick(Sender: TObject);
begin
    Application.Terminate;
end;

procedure TloginDlg.BitBtn1Click(Sender: TObject);
var
    Query1:TAdoQuery;
    s:string;
begin
    if CobUserName.Text='' then
    begin
        showmessage('请先输入姓名');
        CobUserName.SetFocus;
        exit;
    end;

    query1:=TADOquery.Create(nil);
    query1.Connection:=DataModuleADO.ADOConnection1;
    Query1.SQL.Add('select * from 操作员 where 姓名='''+cobusername.Text+'''');
    Query1.Open ;
    if Query1.RecordCount > 0 then
    begin
        if MyMD5.AsHex(MyMD5.HashValue(password.Text))<>trim(query1.Fieldbyname('密码').AsString) then
        begin
            ShowMessage('['+CobUserName.Text+']的口令错误.');
            Password.SetFocus;
        End
        Else
        begin
            MainForm.StatusBar1.Panels[1].Text:='用户['+CobUserName.Text+']';
            //f_preview.StatusBar1.Panels[1].Text:='用户['+Query1.FieldByName('姓名').AsString+']';
            //MainForm.User1:=CobUserName.Text;
            czy:= CobUserName.Text;
            User_Close:=3;

            gTime:=datetimetostr(now);
            s:='insert into 系统日志(操作员,登陆时间,离机时间) values(:s1,:s2,:s3)';

            query1.SQL.Clear;
            query1.SQL.Add(s);
            query1.Parameters.ParamByName('s1').Value:=czy;
            query1.Parameters.ParamByName('s2').Value:=gTime;
            query1.parameters.parambyname('s3').value:=datetimetostr(now);
            DataModuleADO.ADOConnection1.BeginTrans;
            query1.execsql;
            DataModuleADO.ADOConnection1.CommitTrans;

            //mainform.StatusBar1.Panels[0].Text := '操作员:'+czy;

          

            query1.SQL.Clear;
            Query1.SQL.Add('select * from 公司信息');
            Query1.Open ;
            if Query1.RecordCount > 0 then
            begin
                st1:= trim(Query1.FieldByName('名称').AsString);
                st2:= trim(Query1.FieldByName('地址').AsString);
                st3:= trim(Query1.FieldByName('电话').AsString);
                st4:= trim(Query1.FieldByName('传真').AsString);
                //st5:= trim(Query1.FieldByName('销售单脚注1').AsString);
            end;

            query1.SQL.Clear;
            Query1.SQL.Add('select * from ptemp1 where 列1=''代理商名称'' and 列2=''-''');
            Query1.Open ;
            if Query1.RecordCount > 0 then
            begin
                f_UserInfo1:=TF_UserInfo1.Create(self);
                f_UserInfo1.showmodal;
                f_UserInfo1.Free;
            end;

            query1.SQL.Clear;
            Query1.SQL.Add('select * from ptemp1');
            Query1.Open ;
            while not query1.Eof do
            begin
                if trim(Query1.FieldByName('列1').AsString) ='代理商名称' then
                    sg1:= trim(Query1.FieldByName('列2').AsString);
                if trim(Query1.FieldByName('列1').AsString) ='代理商电话' then
                    sg2:= trim(Query1.FieldByName('列2').AsString);
                if trim(Query1.FieldByName('列1').AsString) ='代理商地址' then
                    sg3:= trim(Query1.FieldByName('列2').AsString);
                query1.Next;
            end;

            bOK:=true;
            Close;
        end;
    End;
end;


end.

⌨️ 快捷键说明

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