unit utLogin;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;type TfrmLogin = class(TForm) Label1: TLabel; Label2: TLabel; edt_Password: TEdit; bbtn_ok: TBitBtn; bbtn_Cancel: TBitBtn; cb_UserID: TComboBox; procedure FormCreate(Sender: TObject); procedure bbtn_okClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var frmLogin: TfrmLogin;implementationUses utDmRsda,utMain; {$R *.dfm}procedure TfrmLogin.FormCreate(Sender: TObject); begin cb_UserID.Clear; DmRsda.aqry_right.Close; DmRsda.aqry_right.SQL.Clear; DmRsda.aqry_right.SQL.Add('select distinct userid from rights'); DmRsda.aqry_right.Open; If DmRsda.aqry_right.RecordCount<>0 then begin DmRsda.aqry_right.First; While not DmRsda.aqry_right.Eof do begin cb_userid.Items.Add(DmRsda.aqry_right.FieldByName('userid').AsString); DmRsda.aqry_right.Next; end; end; end;procedure TfrmLogin.bbtn_okClick(Sender: TObject); Var i,j,iUserID:integer; sPassword,sParent,sChild:String; begin iUserID := StrToInt(cb_UserID.Text); sPassword := Trim(edt_password.Text); Dmrsda.rsda.Close; Dmrsda.rsda.SQL.Clear; DmRsda.rsda.SQL.Add('Select bh,zc from employee where bh=:bh and zc=:zc'); DmRsda.rsda.Parameters[0].Value := iUserID; DmRsda.rsda.Parameters[1].Value := sPassword; DmRsda.rsda.Open; If not(DmRsda.rsda.RecordCount=1) then Application.MessageBox('非法的用户名称或密须,禁止登陆!','Login Error',mb_OK+mb_iconinFormation) else begin For i := 0 to frmMain.mm_menu.Items.Items[0].Count-1 do begin showMessage(IntTostr(frmMain.mm_menu.Items.Items[0].Count-1)); sParent := frmMain.mm_menu.Items.Items[0].Items[i].Caption; For j :=0 to frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Count-1 do begin showMessage(IntTostr(frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Count-1)); sChild := frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Caption; DmRsda.aqry_right.Close; DmRsda.aqry_right.SQL.Clear; DmRsda.aqry_right.SQL.Add('Select * from rights where bh=:bh and menuitem=:menu'); DmRsda.aqry_right.Parameters[0].Value := iUserID; DmRsda.aqry_right.Parameters[1].Value := sChild; DmRsda.aqry_right.Open; If DmRsda.aqry_right.RecordCount=1 then frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Enabled := True else frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Enabled := False; end; end; end; end; end. //还没写完的一段代码应该思路可以参考!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;type
TfrmLogin = class(TForm)
Label1: TLabel;
Label2: TLabel;
edt_Password: TEdit;
bbtn_ok: TBitBtn;
bbtn_Cancel: TBitBtn;
cb_UserID: TComboBox;
procedure FormCreate(Sender: TObject);
procedure bbtn_okClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
frmLogin: TfrmLogin;implementationUses
utDmRsda,utMain;
{$R *.dfm}procedure TfrmLogin.FormCreate(Sender: TObject);
begin
cb_UserID.Clear;
DmRsda.aqry_right.Close;
DmRsda.aqry_right.SQL.Clear;
DmRsda.aqry_right.SQL.Add('select distinct userid from rights');
DmRsda.aqry_right.Open;
If DmRsda.aqry_right.RecordCount<>0 then
begin
DmRsda.aqry_right.First;
While not DmRsda.aqry_right.Eof do
begin
cb_userid.Items.Add(DmRsda.aqry_right.FieldByName('userid').AsString);
DmRsda.aqry_right.Next;
end;
end;
end;procedure TfrmLogin.bbtn_okClick(Sender: TObject);
Var
i,j,iUserID:integer;
sPassword,sParent,sChild:String;
begin
iUserID := StrToInt(cb_UserID.Text);
sPassword := Trim(edt_password.Text);
Dmrsda.rsda.Close;
Dmrsda.rsda.SQL.Clear;
DmRsda.rsda.SQL.Add('Select bh,zc from employee where bh=:bh and zc=:zc');
DmRsda.rsda.Parameters[0].Value := iUserID;
DmRsda.rsda.Parameters[1].Value := sPassword;
DmRsda.rsda.Open;
If not(DmRsda.rsda.RecordCount=1) then
Application.MessageBox('非法的用户名称或密须,禁止登陆!','Login Error',mb_OK+mb_iconinFormation)
else
begin
For i := 0 to frmMain.mm_menu.Items.Items[0].Count-1 do
begin
showMessage(IntTostr(frmMain.mm_menu.Items.Items[0].Count-1));
sParent := frmMain.mm_menu.Items.Items[0].Items[i].Caption;
For j :=0 to frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Count-1 do
begin
showMessage(IntTostr(frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Count-1));
sChild := frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Caption;
DmRsda.aqry_right.Close;
DmRsda.aqry_right.SQL.Clear;
DmRsda.aqry_right.SQL.Add('Select * from rights where bh=:bh and menuitem=:menu');
DmRsda.aqry_right.Parameters[0].Value := iUserID;
DmRsda.aqry_right.Parameters[1].Value := sChild;
DmRsda.aqry_right.Open;
If DmRsda.aqry_right.RecordCount=1 then
frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Enabled := True
else
frmMain.mm_menu.Items.Items[0].Items[i].Items[j].Enabled := False;
end;
end;
end;
end;
end.
//还没写完的一段代码应该思路可以参考!