⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main_form.pas

📁 一个小的Delphi的权限控制工具
💻 PAS
字号:
unit Main_Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,DB,ADODB, Menus, ComCtrls, ActnList, StdCtrls, XPMenu, jpeg,
  ExtCtrls;

type
  TMain_F = class(TForm)
    MainMenu1: TMainMenu;
    XTST_N: TMenuItem;
    DL_N: TMenuItem;
    ActionList1: TActionList;
    XPMenu1: TXPMenu;
    XPMenu2: TXPMenu;
    N1: TMenuItem;
    Panel1: TPanel;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    procedure FormCreate(Sender: TObject);
    procedure DL_NClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure N1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CheckUser(AUserName , AUserPwd : string);
    Procedure ShowIt(Sender:Tobject);
  end;

var
  Main_F: TMain_F;

implementation

uses share, Enter_Form, QXGL_Form, YHZGL_Form;

var
   UserName,UserPwd:string;
{$R *.dfm}

procedure TMain_F.FormCreate(Sender: TObject);
begin
   Connect:=TADOConnection.Create(nil);
   Connect.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\Data.mdb;Persist Security Info=False';
   Connect.LoginPrompt:=false;
   connect.Connected:=true;
end;

procedure TMain_F.DL_NClick(Sender: TObject);
begin
   if Enter_F.ShowModal = mrok then
      begin
        UserName := Enter_F.ZH_E.Text;
        UserPwd := Enter_F.MM_E.Text;
        CheckUser(UserName,UserPwd);
      end;
end;

procedure TMain_F.CheckUser(AUserName , AUserPwd : string);
var
  YHDL_Q,YHGNB_Q,ZCD_Q: TADOQuery;
  GNB_T :TADOTable;
  i,s:integer;
  menu:TMenuItem ;
begin
  try
    YHDL_Q := TADOQuery.Create(nil);
    YHDL_Q.Connection := Connect;
    YHDL_Q.SQL.Add('select * from 用户表 where 帐号=:帐号');
    YHDL_Q.Parameters.ParamByName('帐号').Value := AUserName;
    YHDL_Q.Open;
    if YHDL_Q.RecordCount = 0 then
      begin
        MessageDlg('帐户名错误',mtError,[mbok],0);
        Exit;
      end
    else begin
      if YHDL_Q.FieldByName('密码').AsString <> AUserPwd then
        begin
          MessageDlg('用户口令错误',mtError,[mbok],0);
          Exit;
        end
      else begin
          GNB_T:= TADOTable.Create(nil);
          GNB_T.Connection := Connect;
          GNB_T.TableName:='功能表';
          GNB_T.Open;

          YHGNB_Q := TADOQuery.Create(nil);
          YHGNB_Q.Connection := Connect;
          YHGNB_Q.SQL.Add('select 功能号 from 用户功能表 where 帐号=:帐号');
          YHGNB_Q.Parameters.ParamByName('帐号').Value :=AUserName;
          YHGNB_Q.Open;

          ZCD_Q := TADOQuery.Create(nil);
          ZCD_Q.Connection := Connect;
          ZCD_Q.SQL.Add('select 功能名 from 主菜单');
          ZCD_Q.Open;
          while not  ZCD_Q.Eof do
            begin
              menu:=TMenuItem.Create(self);
              menu.Caption:=ZCD_Q.FieldValues['功能名'];
              MainMenu1.Items.Add(menu);
              ZCD_Q.Next;
            end;

          for i:=1 to YHGNB_Q.RecordCount do
            begin
              GNB_T.Locate('功能号',YHGNB_Q.FieldValues['功能号'],[]);
              s:=strtoint(GNB_T.FieldValues['父菜单号']);

              menu:=TMenuItem.Create(self);
              menu.Caption:=GNB_T.FieldValues['功能名'];
              MainMenu1.Items[s].Add(menu);

              menu.OnClick:=ShowIt;
              YHGNB_Q.Next;
            end;
          XPMenu1.Active:=true;
          DL_N.Enabled:=false;
        end;
    end;
  except
    MessageDlg('连接数据库出错',mtError,[mbok],0);
  end;
  FreeAndNil(YHDL_Q);
  FreeAndNil(YHGNB_Q);
  FreeAndNil(ZCD_Q);
  FreeAndNil(GNB_T);
end;

Procedure TMain_F.ShowIt(Sender:Tobject);
begin
  With Sender as TmenuItem do
  begin
     if caption='权限管理' then
       with TQXGL_F.Create(nil) do
         try
            ShowModal;
         finally
            Free;
         end;
     if caption='用户组管理' then
       with TYHZGL_F.Create(nil) do
         try
            ShowModal;
         finally
            Free;
         end;
  end;

end;

procedure TMain_F.FormDestroy(Sender: TObject);
begin
   connect.Connected:=false;
end;

procedure TMain_F.N1Click(Sender: TObject);
begin
   close;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -