首页 Delphi下用户登录+识别验证码_源码

Delphi下用户登录+识别验证码_源码

举报
开通vip

Delphi下用户登录+识别验证码_源码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 = class(TForm) ...

Delphi下用户登录+识别验证码_源码
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 = class(TForm) 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 btn1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure img1Click(Sender: TObject); procedure edt1KeyPress(Sender: TObject; var Key: Char); procedure edt2KeyPress(Sender: TObject; var Key: Char); procedure edt3KeyPress(Sender: TObject; var Key: Char); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } procedure InterData;//加载数据集 procedure PwdImg(img:Timage); end; var login: Tlogin; username:string; pwdimgstr : string; implementation {$R *.dfm} procedure Tlogin.btn1Click(Sender: TObject); begin if Edt1.Text=‘‘ then //如果Edit1的文本 // 使edit1的颜色变为红色 clRed end else //否则 begin Edt1.Color:=clWindow; //edit1的的颜色为当前组件的 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 面背景色 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.Add(‘select * from login’); //从表gzy(公司职员表)中查询所有用户 login.qry1.SQL.Add(‘ where g_name=‘ + quotedstr(trim(edt1.Text))); //条件是用户名等于edit1的文本 //并且密码等于edit2的文本 //打开数据库 if not login.qry1.Eof then //.Eof的作用为确定当前的指针是否在数据集的末尾 begin if trim(edt3.Text)<>trim(pwdimgstr) then begin showmessage(‘验证码不正确’); edt3.Clear; PwdImg(img1); end else if not login.qry1.Fields[3].value then //判断Adoquery1字段3的值,值为假则继续执行 begin if login.qry1.Fields[2].value = ‘超级管理员’ then //如果Adoquery1第二个字段的值 为’超级管理员’ begin ShowMessage(‘登录成功,您是超级管理员~’); edt2.Text:=‘‘; edt3.Text:=‘‘; PwdImg(img1); end; if login.qry1.Fields[2].Value = ‘管理员’ then //否则如果Adoquery1第二个字段 的值为’管理员’ begin ShowMessage(‘登录成功,您是管理员~’); edt2.Text:=‘‘; edt3.Text:=‘‘; PwdImg(img1); end; if login.qry1.Fields[2].Value = ‘普通用户’ then //否则如果Adoquery1第二个字 段的值为’普通用户’ begin ShowMessage(‘登录成功,您是普通用户~’); edt2.Text:=‘‘; edt3.Text:=‘‘; PwdImg(img1); 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 := ExtractFilePath(Application.ExeName) + ‘\data.mdb’; if FileExists(DataName) then begin con1.Connected := False; con1.ConnectionString := ‘Provider=Microsoft.Jet.OLEDB.4.0;’ + ‘Data Source=‘ + DataName + ‘;Persist Security Info=False’; con1.LoginPrompt := false; con1.KeepConnection := True; con1.Connected := True; end else begin MessageBox(Application.Handle,’数据库文件不存在!’,’错误’, MB_OK); exit; end; qry1.Close; qry1.SQL.Clear; qry1.SQL.Add(‘select * from login’); qry1.Open; end; procedure Tlogin.FormCreate(Sender: TObject); begin InterData; PwdImg(img1); end; procedure Tlogin.PwdImg(img:Timage); var I,j,k: Integer; vPoint: TPoint; vLeft: Integer; arrStr:array [1..36]of string ; begin pwdimgstr:=‘‘; arrStr[1]:=‘0’; arrStr[2]:=‘1’; arrStr[3]:=‘2’; arrStr[4]:=‘3’; arrStr[5]:=‘4’; arrStr[6]:=‘5’; arrStr[7]:=‘6’; arrStr[8]:=‘7’; arrStr[9]:=‘8’; arrStr[10]:=‘9’; arrStr[11]:=‘A’; arrStr[12]:=‘B’; arrStr[13]:=‘C’; arrStr[14]:=‘D’; arrStr[15]:=‘E’; arrStr[16]:=‘F’; arrStr[17]:=‘G’; arrStr[18]:=‘H’; arrStr[19]:=‘I’; arrStr[20]:=‘J’; arrStr[21]:=‘K’; arrStr[22]:=‘L’; arrStr[23]:=‘M’; arrStr[24]:=‘N’; arrStr[25]:=‘O’; arrStr[26]:=‘P’; arrStr[27]:=‘Q’; arrStr[28]:=‘R’; arrStr[29]:=‘S’; arrStr[30]:=‘T’; arrStr[31]:=‘U’; arrStr[32]:=‘V’; arrStr[33]:=‘W’; arrStr[34]:=‘X’; arrStr[35]:=‘Y’; arrStr[36]:=‘Z’; for j:=1 to 4 do begin Randomize; k:=strtoint(Format(‘%.1d’,[Random(36)])); pwdimgstr:=pwdimgstr+trim(arrStr[k]) end; vLeft:=10; img.picture:=nil; for I:= 1 to Length(pwdimgstr) do begin with Img do begin Canvas.Font.Size := Random(10)+ 9; Canvas.Font.Color := RGB(Random(256) and $C0, Random(256) and $C0,Random(256) and $C0); if Random(2)=1 then Canvas.Font.Style := [fsBold] else Canvas.Font.Style := []; begin Canvas.Font.Name := Screen.Fonts[10]; vPoint.X := Random(4)+ vLeft; vPoint.Y := Random(5); Canvas.TextOut(vPoint.X,vPoint.Y,pwdimgstr[I]); vLeft := vPoint.X + Canvas.TextWidth(pwdimgstr[I]); end; end; end; end; procedure Tlogin.img1Click(Sender: TObject); begin PwdImg(img1); end; procedure Tlogin.edt1KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then //#13为回车键 begin edt2.SetFocus; //焦点跳至Button1 end; end; procedure Tlogin.edt2KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then //#13为回车键 begin edt3.SetFocus; //焦点跳至Button1 end; end; procedure Tlogin.edt3KeyPress(Sender: TObject; var Key: Char); begin if key=#13 then //#13为回车键 begin btn1.SetFocus; //焦点跳至Button1 end; end; procedure Tlogin.btn2Click(Sender: TObject); begin Application.Terminate; end; end.
本文档为【Delphi下用户登录+识别验证码_源码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_105949
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:0
分类:工学
上传时间:2018-02-05
浏览量:32