📄 u_pub.pas
字号:
unit U_Pub;
interface
uses Windows, Menus, stdctrls, comctrls,SysUtils, Forms, Math;
Const
CopName='新乡广播电视网络有限公司';
AppName='新乡广播电视网络有限公司 客户服务中心';
Var CZYDM,CZYXM,CZYQX:String;
DefaultUser:String; //记忆登陆用户代码
AppDir: String; //应用程序目录
HtmlDir:String;
Procedure Menu2Tree(AMenu:TMainMenu; ATree:TTreeView);
Procedure Menu2List(AMenu:TMainMenu; AList:TListBox);
Procedure ReSetMenu(AMenu:TMainMenu; QX:String);
Function NextStr(S:String):String;
Procedure ExecError(Caption:String); //提示无权执行操作
implementation
Function NextStr(S:String):String;
Var I,J,K:Byte;
C:Char;
Begin
I:=Length(S);
If I=0 Then
Begin
NextStr:='';
Exit;
End;
For J:=I DownTo 1 Do
Begin
{检查每一位}
C:=S[J];
If (((C>='0') AND (C<'9')) OR ((C>='A') AND (C<'Z')) OR ((C>='a') AND (C<'z'))) Then
Begin
C:=SUCC(C);
S[J]:=C;
For K:=J+1 To I Do
Begin
C:=S[K];
If (C='9') Then
C:='0'
Else If (C>='A') Then
C:='A'
Else If (C>='a') Then
C:='a';
S[K]:=C;
End;
NextStr:=S;
Exit;
End;
End;
End;
Function PrevStr(S:String):String;
Var I,J,K:Byte;
C:Char;
Begin
I:=Length(S);
If I=0 Then
Begin
PrevStr:='';
Exit;
End;
For J:=I DownTo 1 Do
Begin
{检查每一位}
C:=S[J];
If (((C>'0') AND (C<='9')) OR ((C>'A') AND (C<='Z')) OR ((C>'a') AND (C<='z'))) Then
Begin
C:=PRED(C);
S[J]:=C;
For K:=J+1 To I Do
Begin
C:=S[K];
If (C='0') Then
C:='9'
Else If (C='A') Then
C:='Z'
Else If (C>='a') Then
C:='z';
S[K]:=C;
End;
PrevStr:=S;
Exit;
End;
End;
End;
Procedure ExecError(Caption:String);
Var Stemp:String;
Begin
Stemp:='对不起,你无权执行该操作:'+Caption+',请与系统管理员联系。';
Application.MessageBox(PChar(Stemp),'系统提示',MB_OK+MB_ICONSTOP);
End;
//遍历子菜单项到树
Procedure AddMenuToTree(MItem:TMenuItem; ATree:TTreeView; ToNode:TTreeNode);
Var I:Integer;
XNode:TTreeNode;
Begin
For I:=0 To MItem.Count-1 Do
Begin
If MItem[I].IsLine Then Continue;
If Not MItem[I].Visible Then Continue;
XNode:=ATree.Items.AddChild(ToNode,MItem[I].Caption);
XNode.StateIndex:=2;
XNode.ImageIndex:=MItem[I].ImageIndex;
XNode.SelectedIndex:=MItem[I].ImageIndex;
If MItem[I].Count>0 Then
AddMenuToTree(MItem[I],ATree,XNode);
End;
End;
//将菜单内容导出到树型视图
Procedure Menu2Tree(AMenu:TMainMenu; ATree:TTreeView);
Var I:Integer;
AMenuItem:TMenuItem;
ANodeItem:TTreeNode;
begin
ATree.Items.Clear;
For I:=0 To AMenu.Items.Count-1 Do
Begin
If Not AMenu.Items[I].Visible Then Continue;
AMenuItem:=AMenu.Items[I];
ANodeItem:=ATree.Items.Add(Nil,AMenuItem.Caption);
ANodeItem.StateIndex:=2;
ANodeItem.ImageIndex:=AMenuItem.ImageIndex;
ANodeItem.SelectedIndex:=AMenuItem.ImageIndex;
AddMenuToTree(AMenuItem,ATree,ANodeItem);
End;
End;
//查找符合 Caption 条件的菜单项
Function FindMenu_Caption(MItem:TMenuItem; MCaption:String):TMenuItem;
Var I:Integer;
Begin
Result:=Nil;
For I:=0 To MItem.Count-1 Do
Begin
If MItem[I].IsLine Then Continue;
If Not MItem[I].Visible Then Continue;
If MItem[I].Caption=MCaption Then
Result:=MItem[I]
Else If MItem[I].Count>0 Then
FindMenu_Caption(MItem[I],MCaption);
End;
End;
//根据菜单标题内容找到对应的菜单项
Function GetMenuItem(AMenu:TMainMenu; MenuCaption:String):TMenuItem;
Var I:Integer;
begin
Result:=Nil;
For I:=0 To AMenu.Items.Count-1 Do
Begin
If Not AMenu.Items[I].Visible Then Continue;
Result:=FindMenu_Caption(AMenu.Items[I],MenuCaption);
If Result<>Nil Then Break;
End;
End;
//遍历菜单子项到列表
Procedure AddMenuToList(MItem:TMenuItem; AList:TListBox);
Var I:Integer;
Begin
For I:=0 To MItem.Count-1 Do
Begin
If MItem[I].IsLine Then Continue;
If Not MItem[I].Visible Then Continue;
If MItem[I].Count>0 Then
AddMenuToList(MItem[I],AList)
Else If MItem[I].Tag>0 Then
AList.Items.Add(MItem[I].Caption);
End;
End;
//将菜单的内容导出到列表
Procedure Menu2List(AMenu:TMainMenu; AList:TListBox);
Var I:Integer;
AMenuItem:TMenuItem;
begin
AList.Items.Clear;
For I:=0 To AMenu.Items.Count-1 Do
Begin
AMenuItem:=AMenu.Items[I];
If AMenuItem.Visible Then
AddMenuToList(AMenuItem,AList);
End;
End;
//设置子菜单
Procedure SetSubMenu(MItem:TMenuItem; QX:String);
Var I:Integer;
Begin
For I:=0 To MItem.Count-1 Do
Begin
If MItem[I].IsLine Then Continue;
If Not MItem[I].Visible Then Continue;
If MItem[I].Count>0 Then
SetSubMenu(MItem[I],QX)
Else If MItem[I].Tag>0 Then
MItem[I].Enabled:=(Pos('/'+MItem[I].Caption+'/',QX)>0);
End;
End;
//根据用户权限设置菜单
Procedure ReSetMenu(AMenu:TMainMenu; QX:String);
Var I:Integer;
AMenuItem:TMenuItem;
Begin
For I:=0 To AMenu.Items.Count-1 Do
Begin
AMenuItem:=AMenu.Items[I];
If AMenuItem.Visible Then
Begin
If AMenuItem.Count>0 Then
SetSubMenu(AMenuItem,QX)
Else If AMenuItem.Tag>0 Then
AMenuItem.Enabled:=(Pos('/'+AMenuItem.Caption+'/',QX)>0);
End;
End;
End;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -