📄 tfrmmainmenu.pas
字号:
unit TfrmMainMenu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ToolWin, ComCtrls, StdCtrls, ImgList, Menus, Buttons,
OleCtrls, SHDocVw, ActnList, Inifiles;
type
MmuRecord1 = Record
mmu1:string;
mmu2:string;
mmu3:string;
mmu4:string;
level:integer;
index:integer;
end;
MmuRecord2 = Record
mmu20:TSpeedButton;
mmu21:integer;
mmu22:integer;
mmu23 :integer;
mmu24:integer;
mmu25:string;
mmu26 :string;
mmu27:string;
end;
type
TForm1 = class(TForm)
ToolBar1: TToolBar;
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
Label1: TLabel;
ComboBox1: TComboBox;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
Label2: TLabel;
ComboBox2: TComboBox;
ImageList1: TImageList;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
TreeView1: TTreeView;
Panel3: TPanel;
ImageList2: TImageList;
PopupMenu1: TPopupMenu;
RichEdit1: TRichEdit;
pnlBrowser: TPanel;
WebBrowser: TWebBrowser;
ToolBar2: TToolBar;
ToolButton11: TToolButton;
N1: TMenuItem;
PopupMenu2: TPopupMenu;
PopupMenu3: TPopupMenu;
N8: TMenuItem;
Image1: TImage;
procedure ToolButton2Click(Sender: TObject);
procedure mnuPropertyClick(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure ToolButton11Click(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure SpeedButtonClick(Sender: TObject);
procedure mnuPropEditClick(Sender: TObject);
procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
procedure N5Click(Sender: TObject);
procedure mnuDeleteClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
session1: array[0..2000] of MmuRecord1; //主菜单
session2: array[0..30] of MmuRecord2; //子菜单
Sessions1,Sessions2: integer; //数
mainpic,muf:string;
Procedure WriteIniFile;
Procedure ReadIniFile;
end;
var
Form1: TForm1;
IniFile: TIniFile;
implementation
uses frmProgList,frmProperty,frmTMPropEdit,_funct,frmAbout;
{$R *.dfm}
procedure TForm1.WriteIniFile; //写ini
begin
if FileExists(GetCurrentDir()+'\Config.ini') then
begin
Inifile := TIniFile.Create(GetCurrentDir()+'\Config.ini');//写InI文件
IniFile.WriteString('Main','IP', '' );
IniFile.WriteString('Main','Name', '' );
IniFile.Free;
showmessage('成功保存配置文件!!');
end;
end;
//读取.INI文件////////////////////////////
procedure TForm1.ReadIniFile;
var
mu0,mu1,mu2,mu3,mu4,muf2,s:String;
pnode,pnode2:TTreeNode;
i:integer ;
begin
muf:='' ;
muf2:='' ;
if FileExists(GetCurrentDir()+'\MainMenu.ini') then
begin
//替换 : StringReplace(_USERLIST, USER.Text, '', [rfReplaceAll]);
Inifile := TIniFile.Create(GetCurrentDir()+'\MainMenu.ini');//读InI文件
mu0 := IniFile.ReadString('Menu','系统+功能','');
mu1 := IniFile.ReadString('Menu','系统+作业','');
mu2 := IniFile.ReadString('Menu','系统+流程', '');
mu3 := IniFile.ReadString('Menu','内控内审', '');
mu4 := IniFile.ReadString('Menu','客户新增', '');
//以下全把 替换掉
mu0 := StringReplace(mu0,'C_dsbin\','',[rfReplaceAll]) ;
mu1 := StringReplace(mu1,'C_dsbin\','',[rfReplaceAll]) ;
mu2 := StringReplace(mu2,'C_dsbin\','',[rfReplaceAll]) ;
mu3 := StringReplace(mu3,'C_dsbin\','',[rfReplaceAll]) ;
mu4 := StringReplace(mu4,'C_dsbin\','',[rfReplaceAll]) ;
IniFile.Free;
muf := GetCurrentDir()+'\'+mu0;
case ComboBox1.ItemIndex of
0: muf := GetCurrentDir()+'\'+mu0;
1: muf := GetCurrentDir()+'\'+mu1;
2: muf := GetCurrentDir()+'\'+mu2;
3: muf := GetCurrentDir()+'\'+mu3;
4: muf := GetCurrentDir()+'\'+mu4;
end;
TreeView1.Items.Clear ;
TreeView1.Items.Add(Nil,ComboBox1.Text ) ;
pnode:=treeview1.Items.Item[0];
//Treeview1.FullExpand ;
Inifile := TIniFile.Create(muf);//读InI文件
try
{
[Menu]
Version=1.00
Picture=C_Data\XTGLMain.bmp
Map=C_data\XTGLMain.mmu
}
Screen.Cursor := crHourGlass ; //修改鼠标状态
muf2 := IniFile.ReadString('Menu','Picture','');
if UpperCase(Before('\',muf2))= 'C_DATA' then muf2:='..\'+muf2 ;
if FileExists(muf2) then Image1.Picture.Bitmap.LoadFromFile(muf2);
mainpic:=muf2; //图片文件
//if Length(muf2)>0 then Image1.Picture.Bitmap.LoadFromFile('..\'+muf2);
muf2 := IniFile.ReadString('Menu','Map','');
//这里要加读取MAP
Session1[Sessions1].mmu1:=ComboBox1.Text ; //名称
Session1[Sessions1].mmu2:='4'; //是什么档,1-4 图形档 文字档 HTML 地图档
Session1[Sessions1].mmu3:=muf2; //菜单文件
Session1[Sessions1].mmu4 := '';
inc(Sessions1);
//一級
Treeview1.Items.BeginUpdate ; //可以加速树形目录的更新速度
for i:=1 to 30 do
begin
muf2 := IniFile.ReadString('Folder',inttostr(i),'');
{
[Folder]
4=进销存管理,4,C_Data\JXCGLModule.mmu
4-1=采购管理子系统,4,C_data\PURFrame.mmu
4-1-1=基础设置,0,
}
if muf2<>'' then begin
s:=muf2;
muf2 := Before(',',muf2) ;
s:=After(',',s);
Session1[Sessions1].mmu1:=muf2; //名称
Session1[Sessions1].mmu2:=Before(',',s); //是什么档,1-4
Session1[Sessions1].mmu3:=After(',',s); //菜单文件
if Session1[Sessions1].mmu3[1]='|' then
Session1[Sessions1].mmu4 := After(',',Session1[Sessions1].mmu3) //程序名称
else
Session1[Sessions1].mmu4 := '';
//pnode:=treeview1.Items.Item[1];
pnode2:=treeview1.Items.AddChild(pnode,muf2);
Session1[Sessions1].level := pnode2.Level ;
Session1[Sessions1].index := pnode2.Index ;
pnode2.StateIndex := Sessions1 ;
pnode2.Data := Pointer(1); //做个标记,第二级数据是否已经读入
pnode2.HasChildren := true;
inc(Sessions1);
end else break;
end ;
pnode.Expand(False) ; //展开树形目录
TreeView1.Selected := TreeView1.Items[0];
Treeview1.Items.EndUpdate ;
finally
//showmessage('共有'+inttostr(n)+'条添加'+#13+Session1[n].mmu1);
Screen.Cursor := crDefault ; //crHourGlass
end;
IniFile.Free;
end;
end;
//显示
procedure TForm1.ToolButton2Click(Sender: TObject);
begin
//Application.CreateForm(TForm1, Form1);
form2.Visible := True ;
end;
procedure TForm1.mnuPropertyClick(Sender: TObject);
begin
form3.Visible := True ;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
Sessions1:=0;
Sessions2:=0;
ReadIniFile ;
end;
procedure TForm1.FormShow(Sender: TObject);
var temp:TStringList;
n:integer;
temp2:Boolean;
s:string;
begin
Sessions1:=0;
Sessions2:=0;
if not FileExists(GetCurrentDir()+'\MainMenu.ini') then //没有配置文件,退出
begin
Showmessage('No Found Files MainMenu.ini') ;
Exit ;
end;
temp2:=False ;
temp := TStringList.Create ;
temp.LoadFromFile('MainMenu.ini') ;
ComboBox1.Items.Clear ;
for n:=0 to temp.Count - 1 do
begin
if temp2=True then
begin
s := Trim(temp[n]) ;
IF pos('=',s)>0 then
ComboBox1.Items.Add(copy(s,1,pos('=',s)-1)) ;
end;
if temp[n]='[Menu]' then
temp2:= True;
end;
temp.Free ;
if ComboBox1.Items.Count > 0 then
begin
ComboBox1.ItemIndex := 0 ;
ReadIniFile ;
end;
end;
//把樹形目錄的內容保存為文件
procedure TForm1.ToolButton3Click(Sender: TObject);
var
F: TFileStream;
begin
F:=TFileStream.Create('d:\TreeView.txt',fmCreate or fmShareCompat);
F.WriteComponent(TreeView1);
F.Free;
end;
{////////////////////
// 读
procedure TForm1.Button2Click(Sender: TObject);
var
F:TFileStream;
begin
F:=TFileStream.Create('c:\TreeView.txt',fmOpenRead or fmShareDenyWrite);
F.ReadComponent(TreeView1);
F.Free;
end;}
procedure TForm1.ToolButton11Click(Sender: TObject);
begin
try
WebBrowser.GoBack;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -