【SQL开源代码栏目提醒】:网学会员为广大网友收集整理了,Delphi下用户登录 识别验证码_源码 - 数据库,希望对大家有所帮助!
unit untLogin interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs StdCtrls FlatUtils FlatBtns FlatCtrls DB ADODB ExtCtrls SkinCaption WinSkinData type Tlogin classTForm btn1: TFlatButton btn2: TFlatButton lbl1: TLabel lbl2: TLabel con1: TADOConnection qry1: TADOQuery edt1: TEdit edt2: TEdit img1: TImage edt3: TEdit skndt1: TSkinData skncptn1: TSkinCaption procedure btn1ClickSender: TObject procedure FormCreateSender: TObject procedure img1ClickSender: TObject procedure edt1KeyPressSender: TObject var Key: Char procedure edt2KeyPressSender: TObject var Key: Char procedure edt3KeyPressSender: TObject var Key: Char procedure btn2ClickSender: TObject private Private declarations public Public declarations procedure InterData//加载数据集 procedure PwdImgimg:Timage end var login: Tlogin username:string pwdimgstr : string implementation R .dfm procedure Tlogin.btn1ClickSender: TObject begin if Edt1.Text then //如果Edit1的文本内容为空那么 begin Edt1.Color:clWindow // 使edit1的颜色变为红色 clRed end else //否则 begin Edt1.Color:clWindow //edit1的的颜色为当前组件的表面背景色 end if Edt2.Text then begin edt2.Color:clWindow //clRed end else begin Edt2.Color:clWindow end login.qry1.Active : false //关闭数据集 login.qry1.SQL.Clear //清空SQL语句执行动态SQL查询 login.qry1.SQL.Addselect from login //从表gzy公司职员表中查询所有用户 login.qry1.SQL.Add where g_name quotedstrtrimedt1.Text //条件是用户名等于edit1的文本内容 login.qry1.SQL.Add and g_pwd quotedstrtrimedt2.Text //并且密码等于edit2的文本内容 login.qry1.Active : true //打开数据库 if not login.qry1.Eof then //.Eof的作用为确定当前的指针是否在数据集的末尾 begin if trimedt3.Texttrimpwdimgstr then begin showmessage验证码不正确 edt3.Clear PwdImgimg1 end else if not login.qry1.Fields3.value then //判断Adoquery1字段3的值值为假则继续执行 begin if login.qry1.Fields2.value 超级管理员 then //如果Adoquery1第二个字段的值为超级管理员 begin ShowMessage登录成功您是超级管理员 edt2.Text: edt3.Text: PwdImgimg1 end if login.qry1.Fields2.Value 管理员 then //否则如果Adoquery1第二个字段的值为管理员 begin ShowMessage登录成功您是管理员 edt2.Text: edt3.Text: PwdImgimg1 end if login.qry1.Fields2.Value 普通用户 then //否则如果Adoquery1第二个字段的值为普通用户 begin ShowMessage登录成功您是普通用户 edt2.Text: edt3.Text: PwdImgimg1 end username:Edt1.Text //把edit1的值赋给username end else begin showmessage用户已禁用 //显示信息 end end else begin showmessage用户名、密码或验证码错误 Edt1.SetFocus edt1.Clear edt2.Clear edt3.Clear end end procedure Tlogin.InterData///初始化目录树//// var DataName:string begin DataName : ExtractFilePathApplication.ExeName data.mdb if FileExistsDataName then begin con1.Connected : False con1.ConnectionString : ProviderMicrosoft.Jet.OLEDB.4.0 Data Source DataName Persist Security InfoFalse con1.LoginPrompt : false con1.KeepConnection : True con1.Connected : True end else begin MessageBoxApplication.Handle数据库文件不存在错误 MB_OK exit end qry1.Close qry1.SQL.Clear qry1.SQL.Addselect from login qry1.Open end procedure Tlogin.FormCreateSender: TObject begin InterData PwdImgimg1 end procedure Tlogin.PwdImgimg:Timage var Ijk: Integer vPoint: TPoint vLeft: Integer arrStr:array 1..36of string begin pwdimgstr: arrStr1:0 arrStr2:1 arrStr3:2 arrStr4:3 arrStr5:4 arrStr6:5 arrStr7:6 arrStr8:7 arrStr9:8 arrStr10:9 arrStr11:A arrStr12:B arrStr13:C arrStr14:D arrStr15:E arrStr16:F arrStr17:G arrStr18:H arrStr19:I arrStr20:J arrStr21:K arrStr22:L arrStr23:M arrStr24:N arrStr25:O arrStr26:P arrStr27:Q arrStr28:R arrStr29:S arrStr30:T arrStr31:U arrStr32:V arrStr33:W arrStr34:X arrStr35:Y arrStr36:Z for j:1 to 4 do begin Randomize k:strtointFormat.1dRandom36 pwdimgstr:pwdimgstrtrimarrStrk end vLeft:10 img.picture:nil for I: 1 to Lengthpwdimgstr do begin with Img do begin Canvas.Font.Size : Random10 9 Canvas.Font.Color : RGBRandom256 and C0 Random256 and C0Random256 and C0 if Random21 then Canvas.Font.Style : fsBold else Canvas.Font.Style : begin Canvas.Font.Name : Screen.Fonts10 vPoint.X : Random4 vLeft vPoint.Y : Random5 Canvas.TextOutvPoint.XvPoint.YpwdimgstrI vLeft : vPoint.X Canvas.TextWidthpwdimgstrI end end end end procedure Tlogin.img1ClickSender: TObject begin PwdImgimg1 end procedure Tlogin.edt1KeyPressSender: TObject var Key: Char begin if key13 then //13为回车键 begin edt2.SetFocus //焦点跳至Button1 end end procedure Tlogin.edt2KeyPressSender: TObject var Key: Char begin if key13 then //13为回车键 begin edt3.SetFocus //焦点跳至Button1 end end procedure Tlogin.edt3KeyPressSender: TObject var Key: Char begin if key13 then //13为回车键 begin btn1.SetFocus //焦点跳至Button1 end end procedure Tlogin.btn2ClickSender: TObject begin Application.Terminate end end.上一篇:yj免费木马知识bh