Delphi下用户登录+识别验证码-源码_第1页
Delphi下用户登录+识别验证码-源码_第2页
Delphi下用户登录+识别验证码-源码_第3页
Delphi下用户登录+识别验证码-源码_第4页
Delphi下用户登录+识别验证码-源码_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

unituntLogin;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,FlatUtils,FlatBtns,FlatCtrls,DB,ADODB,ExtCtrls,SkinCaption,WinSkinData;typeTlogin=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;procedurebtn1Click(Sender:TObject);procedureFormCreate(Sender:TObject);procedureimg1Click(Sender:TObject);procedureedt1KeyPress(Sender:TObject;varKey:Char);procedureedt2KeyPress(Sender:TObject;varKey:Char);procedureedt3KeyPress(Sender:TObject;varKey:Char);procedurebtn2Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}procedureInterData;//加载数据集procedurePwdImg(img:Timage);end;varlogin:Tlogin;username:string;pwdimgstr:string;implementation{$R*.dfm}procedureTlogin.btn1Click(Sender:TObject);beginifEdt1.Text=''then//如果Edit1的文本内容为空,那么beginEdt1.Color:=clWindow;//使edit1的颜色变为红色clRedendelse//否则beginEdt1.Color:=clWindow;//edit1的的颜色为当前组件的表面背景色end;ifEdt2.Text=''thenbeginedt2.Color:=clWindow;//clRedendelsebeginEdt2.Color:=clWindow;end;login.qry1.Active:=false;//关闭数据集login.qry1.SQL.Clear;//清空SQL语句,执行动态SQL查询login.qry1.SQL.Add('select*fromlogin');//从表gzy(公司职员表)中查询所有用户login.qry1.SQL.Add('whereg_name='+quotedstr(trim(edt1.Text)));//条件是用户名等于edit1的文本内容login.qry1.SQL.Add('andg_pwd='+quotedstr(trim(edt2.Text)));//并且密码等于edit2的文本内容login.qry1.Active:=true;//打开数据库ifnotlogin.qry1.Eofthen//.Eof的作用为确定当前的指针是否在数据集的末尾beginiftrim(edt3.Text)<>trim(pwdimgstr)thenbeginshowmessage('验证码不正确');edt3.Clear;PwdImg(img1);endelseifnotlogin.qry1.Fields[3].valuethen//判断Adoquery1字段3的值,值为假则继续执行beginiflogin.qry1.Fields[2].value='超级管理员'then//如果Adoquery1第二个字段的值为'超级管理员'beginShowMessage('登录成功,您是超级管理员!');edt2.Text:='';edt3.Text:='';PwdImg(img1);end;iflogin.qry1.Fields[2].Value='管理员'then//否则如果Adoquery1第二个字段的值为'管理员'beginShowMessage('登录成功,您是管理员!');edt2.Text:='';edt3.Text:='';PwdImg(img1);end;iflogin.qry1.Fields[2].Value='普通用户'then//否则如果Adoquery1第二个字段的值为'普通用户'beginShowMessage('登录成功,您是普通用户!');edt2.Text:='';edt3.Text:='';PwdImg(img1);end;username:=Edt1.Text;//把edit1的值赋给usernameendelsebeginshowmessage('用户已禁用!!');//显示信息end;endelsebeginshowmessage('用户名、密码或验证码错误!!');Edt1.SetFocus;edt1.Clear;edt2.Clear;edt3.Clear;end;end;procedureTlogin.InterData;///初始化目录树////varDataName:string;beginDataName:=ExtractFilePath(Application.ExeName)+'\data.mdb';ifFileExists(DataName)thenbegincon1.Connected:=False;con1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+'DataSource='+DataName+';PersistSecurityInfo=False';con1.LoginPrompt:=false;con1.KeepConnection:=True;con1.Connected:=True;endelsebeginMessageBox(Application.Handle,'数据库文件不存在!','错误',MB_OK);exit;end;qry1.Close;qry1.SQL.Clear;qry1.SQL.Add('select*fromlogin');qry1.Open;end;procedureTlogin.FormCreate(Sender:TObject);beginInterData;PwdImg(img1);end;procedureTlogin.PwdImg(img:Timage);varI,j,k:Integer;vPoint:TPoint;vLeft:Integer;arrStr:array[1..36]ofstring;beginpwdimgstr:='';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';forj:=1to4dobeginRandomize;k:=strtoint(Format('%.1d',[Random(36)]));pwdimgstr:=pwdimgstr+trim(arrStr[k])end;vLeft:=10;img.picture:=nil;forI:=1toLength(pwdimgstr)dobeginwithImgdobeginCanvas.Font.Size:=Random(10)+9;Canvas.Font.Color:=RGB(Random(256)and$C0,Random(256)and$C0,Random(256)and$C0);ifRandom(2)=1thenCanvas.Font.Style:=[fsBold]elseCanvas.Font.Style:=[];beginCanvas.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;procedureTlogin.img1Click(Sender:TObject);beginPwdImg(img1);end;procedureTlogin.edt1KeyPress(Sender:TObject;varKey:Char);beginifkey=#13then//#13为回车键beginedt2.SetFocus;//焦点跳至Button1end;end;procedureTlogin.edt2KeyPress(Sender:TObject;varKey:Char);beginifkey=#13then//#13为回车键

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论