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

📄 main_form.pas

📁 Access数据库用户权限的管理程序
💻 PAS
字号:
unit Main_Form;

interface

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

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;
    StatusBar1: TStatusBar;
    Timer1: TTimer;
    Image5: TImage;
    SkinData1: TSkinData;
    SkinStore1: TSkinStore;
    Change: TMenuItem;
    Skin: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure DL_NClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure SkinClick(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure CheckUser(AUserName , AUserPwd : string);
    Procedure ShowIt(Sender:Tobject);
  end;

var
  Main_F: TMain_F;
  Change_T:TADOTable;

implementation

uses share, Enter_Form, QXGL_Form, YHZGL_Form, About_Form, CZRZ_Form,
  SCZRZ_Form, Enter_Form1, HTMLHelp_Decl, GNGL_Form;

{$R *.dfm}
//******************************************************************************
procedure TMain_F.FormCreate(Sender: TObject);
begin
   DataPath:=ExtractFilePath(Application.ExeName);
   Connect:=TADOConnection.Create(nil);
   Connect.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataPath+'\Data.mdb;Persist Security Info=False';
   Connect.LoginPrompt:=false;
   connect.Connected:=true;

   ADOCon:=TADOConnection.Create(nil);
   ADOCon.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataPath+'\Data.mdb;Persist Security Info=False';
   ADOCon.LoginPrompt:=false;
   ADOCon.Connected:=true;

   StatusBar1.Panels[0].Text := '  用户名:'+UserName;
   StatusBar1.Panels[1].Text:='  用户权限管理模块  ';

   CZRZInit; //初始化操作日志CZRZ_Q

   Change_T:= TADOTable.Create(nil);
   Change_T.Connection := Connect;
   Change_T.TableName:='随机换皮肤';
   Change_T.Open;

   if  Change_T.FieldValues['是否'] then
     begin
       SkinData1.Active:=true;
       Skin.Checked:=true;
       Randomize;
       SkinData1.LoadFromCollection(skinstore1,Random(4));
     end
   else
     begin
       SkinData1.Active:=false;
       Skin.Checked:=false;
       N2.Visible:=false;
     end;
end;
//******************************************************************************
procedure TMain_F.DL_NClick(Sender: TObject);
var
  i,j:integer;
begin
  if DL_N.Caption='登录' then
    begin
      if not Skin.Checked then
        begin
          if Enter_F.ShowModal = mrok then
            begin
              UserName := Enter_F.ZH_E.Text;
              UserPwd := Enter_F.MM_E.Text;
            end;
        end
      else
        begin
          if Enter_F1.ShowModal = mrok then
            begin
              UserName := Enter_F1.ZH_E.Text;
              UserPwd := Enter_F1.MM_E.Text;
            end;
        end;
      CheckUser(UserName,UserPwd);
      StatusBar1.Panels[0].Text := '用户名:'+UserName;
    end
  else
    if DL_N.Caption='注销' then
      begin
        for i:=2 to  5  do
          begin
            j:=2;
            MainMenu1.Items[j].Destroy;
          end;
        DL_N.Caption:='登录' ;
        DL_NClick(DL_N);
      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
  if (AUserName='') or  (AUserPwd='') then
    showmessage('请输入用户名和密码')
  else
    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
            CZRZ:= '  登录时间:'+datetostr(date)+'   '+timetostr(time)+'     帐号 :'+UserName;
            CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
            CZRZ:= '  帐户名错误';
            CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
            CZRZ_F.CZRZ_FM.Lines.Add('');
            WriteCZRZ;
            MessageDlg('帐户名错误',mtError,[mbok],0);
            Exit;
          end
        else
         begin
           if trim(DecryptString(YHDL_Q.FieldByName('密码').AsString,'siliang')) <> AUserPwd then
            begin
              CZRZ:= '  登录时间:'+datetostr(date)+'   '+timetostr(time)+'     帐号 :'+UserName;
              CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
              CZRZ:= '  用户口令错误';
              CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
              CZRZ_F.CZRZ_FM.Lines.Add('');
              WriteCZRZ;
              MessageDlg('用户口令错误',mtError,[mbok],0);
              Exit;
            end
          else
            begin
              DL_N.Caption:='注销';
              Change.Visible:=true;
              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;
        CZRZ:= '             ------欢迎使用用户权限管理系统------';          //写入操作日志
        CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
        CZRZ:= '  登录时间:'+datetostr(date)+'   '+timetostr(time)+'     帐号 :'+UserName;
        CZRZ_F.CZRZ_FM.Lines.Add(CZRZ);
        CZRZ_F.CZRZ_FM.Lines.Add('');

        WriteCZRZ;
      except
        MessageDlg('连接数据库出错',mtError,[mbok],0);
      end;
      FreeAndNil(YHDL_Q);
      FreeAndNil(YHGNB_Q);
      FreeAndNil(ZCD_Q);
      FreeAndNil(GNB_T);
    end;
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;
     if caption='功能管理' then
       with TGNGL_F.Create(nil) do
         try
            ShowModal;
         finally
            Free;
         end;
     if caption='关于' then
       with TAbout_F.Create(nil) do
         try
            ShowModal;
         finally
            Free;
         end;
     if caption='本次操作日志' then
       begin
         CZRZ_F.CZRZ_FM.Enabled:=false;
         CZRZ_F.ShowModal;
       end;
     if caption='查询操作日志' then
       with TSCZRZ_F.Create(nil) do
         try
            ShowModal;
         finally
            Free;
         end;
     if caption='记事本' then
       Winexec('notepad.EXE',sw_Normal);
     if caption='画图工具' then
       Winexec('mspaint.EXE',sw_Normal);
     if caption='电子钟' then
       Winexec('Clock.EXE',sw_Normal);
     if caption='联机帮助' then
       HtmlHelp(Application.handle, '.\QHelp.chm',HH_HELP_CONTEXT, DWORD_PTR(1));
  end;
end;
//******************************************************************************
procedure TMain_F.FormDestroy(Sender: TObject);
begin
   connect.Connected:=false;
   ADOCon.Connected:=false;
end;
//******************************************************************************
procedure TMain_F.N1Click(Sender: TObject);
begin
   if MessageBox(Handle,'是否真要退出?','提示',MB_ICONQUESTION or MB_YESNO) = idYes then
   close;
end;
//******************************************************************************
procedure TMain_F.Timer1Timer(Sender: TObject);
begin
  StatusBar1.Panels[2].Text:='  时间:'+timetostr(time);
end;
//******************************************************************************
procedure TMain_F.SkinClick(Sender: TObject);
begin
  Change_T.Edit;
  if Skin.Checked then
    begin
      Change_T.FieldValues['是否']:=false;
      Skin.Checked:=false;
    end
  else
    begin
      Change_T.FieldValues['是否']:=true;
      Skin.Checked:=true;
    end;
  Change_T.Post;
end;
//******************************************************************************
procedure TMain_F.N3Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,1);
end;
//******************************************************************************
procedure TMain_F.N5Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,2);
end;
//******************************************************************************
procedure TMain_F.N6Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,3);
end;
//******************************************************************************
procedure TMain_F.N7Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,4);
end;
//******************************************************************************
procedure TMain_F.N8Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,5);
end;
//******************************************************************************
procedure TMain_F.N9Click(Sender: TObject);
begin
  SkinData1.LoadFromCollection(skinstore1,6);
end;
//******************************************************************************
procedure TMain_F.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  num:=self.HelpContext;
  F1_Help(key);
end;
//******************************************************************************
procedure TMain_F.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  HtmlHelp( 0,'',HH_CLOSE_ALL,nil);
  CloseHtmlHelpSystem;
end;
//******************************************************************************
end.

⌨️ 快捷键说明

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