我做了一个登录窗口
控件如下:adoquery、edit、maskedit、bitbtn1和bitbtn2、adoconnection
用的数据表是access
内容如下:
users password power(权限)
123 123 1
123 12345 2
在程序中用到了菜单,通过权限屏蔽菜单功能。原代码如下:
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DB, ADODB;type
TForm2 = class(TForm)
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
MaskEdit1: TMaskEdit;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1Users: TWideStringField;
ADOQuery1PassWord: TWideStringField;
ADOQuery1Power: TIntegerField;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses unit1;
{$R *.dfm}procedure TForm2.BitBtn2Click(Sender: TObject);
begin
form1.MainMenu1.Items[0].Enabled:=true;
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
close;
end;procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if edit1.Text='' then
edit1.SetFocus
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select users,password,power from 用户表' );
adoquery1.SQL.Add('where users='+edit1.Text);
adoquery1.SQL.Add('and password='''+maskedit1.Text+'''');
adoquery1.Open;
if (adoquery1.RecordCount<>1) or (maskedit1.Text<>adoquery1.FieldValues['password']) then
begin
showmessage('口令不对,请检查!');
edit1.SetFocus;
end
else
begin
if adoquery1.FieldValues['power']='1' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=true;
form1.MainMenu1.Items[0].items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=true;
end;
if adoquery1.FieldValues['powew']='2' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=false;
end;
if adoquery1.FieldValues['power']='3' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
end;
adoquery1.Close;
close;
end;
end;
end;procedure TForm2.FormShow(Sender: TObject);
begin
edit1.Text:='';
maskedit1.Text:='';
end;procedure TForm2.FormActivate(Sender: TObject);
begin
edit1.SetFocus;
end;end.谢谢了,我要的不是现成的代码,我只是想各位可以帮我改下,我可以在以后知道自己错在什么地方?分数不是问题!
控件如下:adoquery、edit、maskedit、bitbtn1和bitbtn2、adoconnection
用的数据表是access
内容如下:
users password power(权限)
123 123 1
123 12345 2
在程序中用到了菜单,通过权限屏蔽菜单功能。原代码如下:
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DB, ADODB;type
TForm2 = class(TForm)
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
MaskEdit1: TMaskEdit;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1Users: TWideStringField;
ADOQuery1PassWord: TWideStringField;
ADOQuery1Power: TIntegerField;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses unit1;
{$R *.dfm}procedure TForm2.BitBtn2Click(Sender: TObject);
begin
form1.MainMenu1.Items[0].Enabled:=true;
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
close;
end;procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if edit1.Text='' then
edit1.SetFocus
else
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select users,password,power from 用户表' );
adoquery1.SQL.Add('where users='+edit1.Text);
adoquery1.SQL.Add('and password='''+maskedit1.Text+'''');
adoquery1.Open;
if (adoquery1.RecordCount<>1) or (maskedit1.Text<>adoquery1.FieldValues['password']) then
begin
showmessage('口令不对,请检查!');
edit1.SetFocus;
end
else
begin
if adoquery1.FieldValues['power']='1' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=true;
form1.MainMenu1.Items[0].items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=true;
end;
if adoquery1.FieldValues['powew']='2' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=false;
end;
if adoquery1.FieldValues['power']='3' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
end;
adoquery1.Close;
close;
end;
end;
end;procedure TForm2.FormShow(Sender: TObject);
begin
edit1.Text:='';
maskedit1.Text:='';
end;procedure TForm2.FormActivate(Sender: TObject);
begin
edit1.SetFocus;
end;end.谢谢了,我要的不是现成的代码,我只是想各位可以帮我改下,我可以在以后知道自己错在什么地方?分数不是问题!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DB, ADODB;type
TForm2 = class(TForm)
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
MaskEdit1: TMaskEdit;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ADOQuery1Users: TWideStringField;
ADOQuery1PassWord: TWideStringField;
ADOQuery1Power: TIntegerField;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form2: TForm2;implementation
uses unit1;
{$R *.dfm}procedure TForm2.BitBtn2Click(Sender: TObject);
begin
form1.MainMenu1.Items[0].Enabled:=true;
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
close;
end;procedure TForm2.BitBtn1Click(Sender: TObject);
begin
if edit1.Text='' then
edit1.SetFocus
else
begin
with ADOQuery do
begin
SQL.Clear;
SQL.Text:='select users,password,power from 用户表 where users='''+Edit1.Text+''' and password='''+maskedit1.Text+'''';
Open;
if Eof then
begin
showmessage('口令不对,请检查!');
edit1.SetFocus;
Exit;
end
end
else
begin
if adoquery1.FieldValues['power']='1' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=true;
form1.MainMenu1.Items[0].items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=true;
end;
if adoquery1.FieldValues['powew']='2' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=false;
end;
if adoquery1.FieldValues['power']='3' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
end;
adoquery1.Close;
close;
end;
end;
end;procedure TForm2.FormShow(Sender: TObject);
begin
edit1.Text:='';
maskedit1.Text:='';
end;procedure TForm2.FormActivate(Sender: TObject);
begin
edit1.SetFocus;
end;end.
begin
if edit1.Text='' then
edit1.SetFocus
else
begin
with ADOQuery1 do
begin
SQL.Clear;
SQL.Text:='select users,password,power from 用户表 where users='''+Edit1.Text+''' and password='''+maskedit1.Text+'''';
Open;
if Eof then
begin
showmessage('口令不对,请检查!');
edit1.SetFocus;
Exit;
end
else
begin
if ADOQuery1['power']='1' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=true;
form1.MainMenu1.Items[0].items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=true;
end;
if adoquery1.FieldValues['powew']='2' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=true;
form1.MainMenu1.Items[2].Enabled:=false;
end;
if adoquery1.FieldValues['power']='3' then
begin
form1.MainMenu1.Items[0].Items[0].Enabled:=false;
form1.MainMenu1.Items[0].Items[1].Enabled:=true;
form1.MainMenu1.Items[1].Enabled:=false;
form1.MainMenu1.Items[2].Enabled:=false;
end;
adoquery1.Close;
end;
end;
end;
program Project1;uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};{$R *.RES}begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm:=false;
Form2:=TForm2.Create(Form2);
Form2.Show();
Application.Run;
end.口令正确设置权限后添加如下代码:
application.ShowMainForm:=true;
Form1.Show();