delphi语言 设置用户登录 密码 用户密码修改

1、合法的用户提供合法的口令可进入 2、非法的用户只能登陆三次 到三次时 自动结束 3、密码修改:登陆成功才能修改密码

第1个回答  2010-05-17
unit login;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask,ToolWin,ExtCtrls,Buttons,DB,DBTables, ADODB;

type
TForm1 = class(TForm)
//TLogin_Form = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
MaskEdit1: TMaskEdit;
Button1: TButton;
Button2: TButton;
ADOQuery1: TADOQuery;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormKeyPress(Sender: TObject; var Key: Char);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses Menus, main;
{$R *.dfm}

//‘登陆’按钮单击判断登陆
procedure TForm1.Button1Click(Sender: TObject);
var
aname,apass,sqlstr,DataSource,InitialCatalog:string;
//a,b: integer;
begin
if (length(Edit1.text)>0 )or (length(Maskedit1.text)>0) then
begin
aname:=Trim(edit1.text);
apass:=Trim(maskedit1.text);
DataSource:='TSQL';
InitialCatalog:='PSVoteData';
sqlstr:='select * from voteuser where (username='''+aname+''') and(userpass='''+apass+''')';
with TadoQuery.Create(nil) do
try
Close;
connectionstring:='Provider=SQLOLEDB.1;Password=*******;Persist Security Info=True;User ID=sa;Initial Catalog=PSVData;Data Source=TSQL';
SQL.Clear;
SQL.Add(sqlstr);
Open;
if RecordCount > 0 then
begin
First;
showmessage('登陆成功!');
while not Eof do
begin
Next;
end;
form1.Close;
form2.dlname:=aname;

end
else
begin
showmessage('请确认登录的用户名和密码是否正确!');
edit1.Text:='';
maskedit1.Text:='';
end;
finally
Free;
end;

end;
end;

//'退出'按钮单击关闭程序;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
button1.click;
end;
end;

end.本回答被网友采纳
第2个回答  2010-05-17
var
Form1: TForm1;//这里的应该知道在哪里吧
i:integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('');
SQL.add('select * from 表名');
SQL.add('where (用户=:users) and (密码=:PW)');
parameters.ParamByName('users').asstring:=trim(edit1.Text);
parameters.parambyname('PW').asstring=trim(edit2.text);
open;
if i>=3 then
begin
showmessage('您输入错误的用户或密码已经超过3次,系统自动退出!');
self.close;
end
else
begin
if recordcount=0 then
BEGIN
showmessage('用户或密码错误!');
i:=i+1;
exit
else
begin
form2.show;
end;
end;
end;
第3个回答  2010-05-16
我以前写的,希望你能看的懂。
procedure TForm1.Button1Click(Sender: TObject);
var num:string;
psw:string;
begin
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('');
SQL.add('select * from employee');
SQL.add('where em_id=:num');
parameters.ParamByName('num').Value:=edit1.Text;
open;
if recordcount=0 then
begin
i:=i+1;
if i>=3 then
begin
showmessage('对不起,没有权限使用');
form1.close;
end
else
begin
showmessage('用户名不存在!');
edit1.Text:='';
edit2.Text:='';
end;
end
else begin
close;
SQL.Clear;
SQL.add('select * from employee');
SQL.add('where em_id=:num and convert(char(10),em_password)=:psw');
parameters.ParamByName('num').Value:=edit1.Text;
parameters.ParamByName('psw').Value:=edit2.Text;
open;
if recordcount=0 then
begin
i:=i+1;
if i>=3 then
begin
showmessage('对不起,没有权限使用');
form1.close;
end
else begin
showmessage('登录失败');
edit1.Text:='';
edit2.Text:='';
end;
end
else begin
showmessage('登录成功');
form2.Show;
form1.hide;
end;
end;
end;
end;
相似回答