📄 usermgt.~pas
字号:
unit usermgt;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls,ADODB,Inifiles,StrUtils, ImgList, ToolWin,
StdActns, ActnList;
type
TfrmUserManager = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
mm: TMainMenu;
MenuItem1: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
N201: TMenuItem;
N202: TMenuItem;
N5: TMenuItem;
N401: TMenuItem;
N402: TMenuItem;
N403: TMenuItem;
N8: TMenuItem;
N501: TMenuItem;
N502: TMenuItem;
N503: TMenuItem;
N504: TMenuItem;
sBar: TStatusBar;
N101: TMenuItem;
N505: TMenuItem;
N301: TMenuItem;
N302: TMenuItem;
N303: TMenuItem;
ToolBar1: TToolBar;
ImageList1: TImageList;
ActionList1: TActionList;
FileNew1: TAction;
FileOpen1: TAction;
FileClose1: TWindowClose;
FileSave1: TAction;
FileSaveAs1: TAction;
FileExit1: TAction;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
WindowCascade1: TWindowCascade;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowTileVertical1: TWindowTileVertical;
WindowMinimizeAll1: TWindowMinimizeAll;
WindowArrangeAll1: TWindowArrange;
HelpAbout1: TAction;
Action1: TAction;
ActN301: TAction;
ActN303: TAction;
ActN302: TAction;
ActN401: TAction;
ActN402: TAction;
ActN502: TAction;
ActN503: TAction;
ActN504: TAction;
ActN505: TAction;
ActN201: TAction;
ActN101: TAction;
ActN202: TAction;
ActN403: TAction;
ActN501: TAction;
TBN101: TToolButton;
TBN201: TToolButton;
TBN202: TToolButton;
TBN301: TToolButton;
TBN302: TToolButton;
TBN303: TToolButton;
TBN401: TToolButton;
TBN402: TToolButton;
TBN403: TToolButton;
TBN501: TToolButton;
TBN502: TToolButton;
TBN503: TToolButton;
TBN504: TToolButton;
TBN505: TToolButton;
procedure N3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure N402Click(Sender: TObject);
procedure N401Click(Sender: TObject);
procedure N403Click(Sender: TObject);
procedure N502Click(Sender: TObject);
procedure N501Click(Sender: TObject);
procedure N503Click(Sender: TObject);
procedure N504Click(Sender: TObject);
procedure N201Click(Sender: TObject);
procedure N202Click(Sender: TObject);
procedure N505Click(Sender: TObject);
procedure N101Click(Sender: TObject);
procedure N301Click(Sender: TObject);
procedure N302Click(Sender: TObject);
procedure N303Click(Sender: TObject);
procedure ActN101Execute(Sender: TObject);
procedure ActN201Execute(Sender: TObject);
procedure ActN202Execute(Sender: TObject);
procedure TBN301Click(Sender: TObject);
procedure ActN302Execute(Sender: TObject);
procedure ActN303Execute(Sender: TObject);
procedure TBN401Click(Sender: TObject);
procedure ActN402Execute(Sender: TObject);
procedure ActN403Execute(Sender: TObject);
procedure ActN501Execute(Sender: TObject);
procedure ActN502Execute(Sender: TObject);
procedure ActN503Execute(Sender: TObject);
procedure ActN504Execute(Sender: TObject);
procedure ActN505Execute(Sender: TObject);
procedure ActN301Execute(Sender: TObject);
procedure ActN401Execute(Sender: TObject);
private
{ Private declarations }
public
procedure Power;
function RedConfig:Boolean; //读取配置文件信息
{ Public declarations }
end;
var
frmUserManager: TfrmUserManager;
implementation
uses dbConn, userLogin, UserChangePwd, ManagerUser, CrossParam, FilesParam,
VehKind, VehHeader, SaveListSearch, SjfyFrm, SaveListMaintenance,
OperateLog, CommUnit, PicEnter, PlateCompare, PlateCompareQuery,
PlateCompareDelete;
//VehHead, VehKind;
{$R *.dfm}
procedure TfrmUserManager.N3Click(Sender: TObject);
begin
//重新登陆
Application.CreateForm(TfrmLogin, frmLogin);
frmLogin.Show ;
end;
procedure TfrmUserManager.FormCreate(Sender: TObject);
begin
//在创建时候,确保数据库连接成功
if dbConn.ConnInitialize=false then
begin
exit;
end;
end;
procedure TfrmUserManager.FormShow(Sender: TObject);
begin
//ShowMessage('show');
Application.CreateForm(TfrmLogin, frmLogin);
frmLogin.ShowModal;
end;
procedure TfrmUserManager.FormActivate(Sender: TObject);
begin
//用户权限的分配
Power;
//获取文件命名规则
if RedConfig=false then
begin
messagebox(Application.Handle,'请将文件信息设置完整','信息提示',64);
Application.CreateForm(TfrmFilesParam,frmFilesParam);
frmFilesParam.Show ;
end;
sBar.Panels[0].Text :='当前操作人员为:'+CurrentUser;
end;
procedure TfrmUserManager.N402Click(Sender: TObject);
begin
//重新登陆
Application.CreateForm(TfrmLogin, frmLogin);
FirstLogin:=false;
CurrentOperateItem:='重新登陆';
dbConn.SaveOperateLog(frmLogin.spLog ,CurrentUserID,CurrentUser,now,CurrentOperateItem);
frmLogin.Show ;
end;
procedure TfrmUserManager.N401Click(Sender: TObject);
begin
//change pwd
Application.CreateForm(TfrmChangePwd,frmChangePwd);
CurrentOperateItem:='更改用户密码';
dbConn.SaveOperateLog(frmLogin.spLog ,CurrentUserID,CurrentUser,now,CurrentOperateItem);
frmChangePwd.Show ;
end;
procedure TfrmUserManager.N403Click(Sender: TObject);
begin
Application.CreateForm(TfrmManagerUser,frmManagerUser);
CurrentOperateItem:='进入用户管理项';
dbConn.SaveOperateLog(frmLogin.spLog ,CurrentUserID,CurrentUser,now,CurrentOperateItem);
frmManagerUser.Show;
end;
procedure TfrmUserManager.Power;
var
qxlb:String;
submenu:String;
rsQXFP:TADODataset;
BarCount,ItemCount:Integer; //菜单以及各个子菜单项目的个数
strMenu:String;
menuCaption,subMenuCaption:String;
hMenu,hSubMenu:THandle;
menucontrol:TControl;
ToolCount:Integer; //ToolBar2
ToolHint:String;
ToolName:String; //ToolBar 上的名称
begin
qxlb:='';
submenu:='';
rsQXFP:=TADODataset.Create(nil);
rsQXFP.Connection:=cn_public;
rsQXFP.CommandType:=cmdText;
rsQXFP.CommandText:='SELECT MENUITEM,MENUMAIN from photocheck.P_USERPOWER WHERE USERID='''+ CurrentUserID+'''';
rsQXFP.Open;
if not rsQXFP.Eof then begin
while not rsQXFP.Recordset.EOF do
begin
qxlb:=qxlb+rsQXFP.Recordset.Fields[1].Value+'*/';
submenu:=submenu+rsQXFP.Recordset.Fields[0].Value+'*/';
rsQXFP.Recordset.MoveNext;
end;
end
else begin
messagebox(0,'此用户为未分配任何权限','登陆',64);
Application.Terminate;
end;
hMenu:=GetMenu(self.mm.Handle);
strMenu:='';
for BarCount:=0 to self.mm.Items.Count-1 do
begin
menuCaption:=self.mm.Items[BarCount].Caption ;
menuCaption:=copy(menuCaption,1,pos('(',menuCaption)-1);
//如果这个主菜单存在与这个用户的权限当中,则显示并可用
if pos(menuCaption,qxlb)>0 then
self.mm.Items[BarCount].Visible:=True
else
self.mm.Items[BarCount].Visible:=False;
for ItemCount:=0 to self.mm.Items.Items[BarCount].Count-1 do
begin
subMenuCaption:=self.mm.Items.Items[BarCount].Items[ItemCount].Caption;
subMenuCaption:=copy(subMenuCaption,1,pos('(',subMenuCaption)-1);
//显示Menu
if pos(subMenuCaption,submenu)>0 then
begin
self.mm.Items.Items[BarCount].Items[ItemCount].Visible:=True;
ToolName:=self.mm.Items.Items[BarCount].Items[ItemCount].Name ;
if (ToolName='N101') OR (ToolName='N201') OR (ToolName='N202') OR
(ToolName='N301') OR (ToolName='N302') OR (ToolName='N303') OR
(ToolName='N401') OR (ToolName='N402') OR (ToolName='N403') OR
(ToolName='N501') OR (ToolName='N502') OR (ToolName='N503') OR (ToolName='N504') OR (ToolName='N505') THEN
TToolButton(Findcomponent('TB'+ToolName)).Visible:=true;
// TToolButton(Findcomponent('TB'+ToolName)).Enabled := true; //仅仅控制可见即可
end
else begin
self.mm.Items.Items[BarCount].Items[ItemCount].Visible:=False;
ToolName:=self.mm.Items.Items[BarCount].Items[ItemCount].Name ;
if (ToolName='N101') OR (ToolName='N201') OR (ToolName='N202') OR
(ToolName='N301') OR (ToolName='N302') OR (ToolName='N303') OR
(ToolName='N401') OR (ToolName='N402') OR (ToolName='N403') OR
(ToolName='N501') OR (ToolName='N502') OR (ToolName='N503') OR (ToolName='N504') OR (ToolName='N505') THEN
TToolButton(Findcomponent('TB'+ToolName)).Visible:=false;
//TToolButton(Findcomponent('TB'+ToolName)).Enabled := false;
end;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -