📄 main_form.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 + -