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

📄 u_pub.pas

📁 语音坐席,支持录音及语音回访,和自动催款
💻 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 + -