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

📄 unit1.pas

📁 游戏菜单,pottos写的调用VD的菜单.(附菜单全部源码)
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls,  ComCtrls,   ToolWin, Menus,  ImgList,inifiles,shellapi,
    StdCtrls, XPMan;

type
  TForm1 = class(TForm)
    ImageList1: TImageList;
    ImageList2: TImageList;
    LV1: TListView;
    TabC1: TTabControl;
    ListBox1: TListBox;
    Button1: TButton;
    XPManifest1: TXPManifest;
    procedure FormCreate(Sender: TObject);
    procedure LoadPM();
    procedure LoadGameName(setfile:string);
    procedure CALLClick(Sender: TObject);
    procedure LV1DblClick(Sender: TObject);
    procedure TabC1Change(Sender: TObject);
    procedure LV1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  nowGameClass:string='.\网络游戏.ini';
  allPosition:integer;
  Dir:string;
  Title:string='游戏更新菜单 VD调用版';
implementation

{$R *.dfm}

procedure TForm1.LoadPM();
var
  Mainfile:Tinifile;
  mainclass:Tstrings;
  i:integer;
  classs:array of Tmenuitem;
begin
  Mainfile:=Tinifile.Create(Dir+'\游戏分类.ini');
  mainclass:=Tstringlist.Create;
  Mainfile.ReadSections(mainclass);
  Mainfile.Free;
  tabc1.Tabs.Assign(mainclass);
 {setlength(classs,mainclass.Count);
  for i:=0 to mainclass.Count-1 do
  begin
    classs[i]:=TMenuitem.Create(form1);
    classs[i].Caption:=mainclass.Strings[i];
    classs[i].Visible:=true;
    Classs[i].OnClick:=CALLClick;
    PM1.Items.Add(classs[i]);
  end;}
end;

function loadIcon(fileexe:string):Ticon;
var
 icon:Ticon;
begin
  icon:=Ticon.Create;
  if fileExists(fileexe) then
  icon.Handle:=Extracticon(0,pchar(fileexe),0)
  else
  icon.Handle:=Extracticon(0,pchar(application.ExeName),0);
  Result:=icon;
end;


procedure TForm1.LoadGameName(setfile:string);
var
 icon:Ticon;
 gamefile:Tinifile;
 Gamename,Gameadd:Tstrings;
 I:integer;
 nowGame:TListItem;
begin
 gameFile:=Tinifile.Create(setfile);
 Gamename:=Tstringlist.Create;
 Gameadd:=Tstringlist.Create;
 imagelist1.Clear;
 Gamename.Clear;
 Gameadd.Clear;
 Gamefile.ReadSections(gamename);
 for i:=0 to gamename.Count-1 do
 begin
    Gameadd.Add(gamefile.ReadString(gamename.Strings[i],'Udir','XXXXX')+'\'+gamefile.ReadString(gamename.Strings[i],'Exeapp','XXXXX'));
    icon:=Ticon.Create;
    icon:=loadIcon(Gameadd.Strings[i]);
    imagelist1.AddIcon(icon);
    icon.Free;
    nowgame:=LV1.Items.Add;
    nowGame.ImageIndex:=i;
    nowgame.Caption:=gamename.Strings[i];
 end;
end;



procedure TForm1.FormCreate(Sender: TObject);
begin
 form1.Caption:=Title;
 Dir:=ExtractFilePath(Application.ExeName);
 ShellExecute(0,'Open',pchar(Dir+'\cmd.bat'),'',Pchar(Dir),1);//执行自定义命令
 LoadPM();
 LoadGameName(nowGameClass);
end;

procedure TForm1.CALLClick(Sender: TObject);
var
  classs:string;
  ini:Tinifile;
  game:string;
begin
{ classs:=TMenuitem(sender).Caption;
  ini:=Tinifile.Create(Dir+'\游戏分类.ini');
  game:=ini.ReadString(classs,'配置文件','XXXXX');
  LV1.Clear;
  nowGameClass:=game;
  LoadGameName(nowGameClass);
  ini.Free;}
end;


procedure TForm1.LV1DblClick(Sender: TObject);
var
  nowchoice:string;
  ini,Load:Tinifile;
  sdir,udir,Exefile,PramStr,regfile,VD:string;
begin
  if lv1.ItemIndex=-1 then exit;
  nowchoice:=LV1.Selected.Caption;
  ini:=Tinifile.Create(nowGameClass);
  sdir:=ini.ReadString(nowchoice,'sdir','XXXXXX');
  udir:=ini.ReadString(nowchoice,'udir','XXXXXX');
  Exefile:=ini.ReadString(nowchoice,'Exeapp','XXXXXX');
  PramStr:=ini.ReadString(nowchoice,'PramStr','XXXXXX');
  regfile:=ini.ReadString(nowchoice,'regfile','XXXXXX');
  VD:=ini.ReadString(nowchoice,'VD','Yes');
  FreeAndNil(ini);

  Load:=Tinifile.Create(Dir+'\Load.ini');
  Load.WriteString('Game','Udir',udir);
  Load.WriteString('Game','Sdir',Sdir);
  Load.WriteString('Game','Exefile',Exefile);
  Load.WriteString('Game','regfile',regfile);
  Load.WriteString('Game','VD',VD);
  FreeAndNil(Load);

  ShellExecute(Form1.Handle,'Open',pchar(Dir+'Load.exe'),'',Pchar(Dir),1);

end;

procedure TForm1.TabC1Change(Sender: TObject);
var
  classs:string;
  ini:Tinifile;
  game:string;
  nowindex:integer;
begin
  nowindex:=tabc1.TabIndex;
  classs:=tabc1.Tabs.Strings[nowindex];
  ini:=Tinifile.Create(Dir+'\游戏分类.ini');
  game:=ini.ReadString(classs,'配置文件','XXXXX');
  LV1.Clear;
  nowGameClass:=game;
  LoadGameName(nowGameClass);
  FreeAndNil(ini);
end;

procedure TForm1.LV1Click(Sender: TObject);
var
  nowchoice:string;
  ini,Load:Tinifile;
  sdir,udir,Exefile,PramStr,regfile,VD:string;
begin
  if lv1.ItemIndex=-1 then
  begin
  listbox1.Visible:=false;
  exit;
  end;
  nowchoice:=LV1.Selected.Caption;
  ini:=Tinifile.Create(nowGameClass);
  sdir:=ini.ReadString(nowchoice,'sdir','XXXXXX');
  udir:=ini.ReadString(nowchoice,'udir','XXXXXX');
  Exefile:=ini.ReadString(nowchoice,'Exeapp','XXXXXX');
  PramStr:=ini.ReadString(nowchoice,'PramStr','XXXXXX');
  regfile:=ini.ReadString(nowchoice,'regfile','XXXXXX');
  VD:=ini.ReadString(nowchoice,'VD','Yes');
  FreeAndNil(ini);

  listbox1.Left:=lv1.Items.Item[lv1.ItemIndex].Left+36;
  listbox1.Top:=lv1.Items.Item[lv1.ItemIndex].Top+36+tabc1.Height;

  listbox1.Items.Strings[4]:='LoaclDir:'+udir;
  listbox1.Items.Strings[5]:='SourceDir:'+sdir;
  listbox1.Items.Strings[6]:='ExeFile:'+Exefile;
  listbox1.Items.Strings[7]:='LoadVD:'+VD;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if listbox1.Visible then listbox1.Visible:=false else listbox1.Visible:=true;
end;

procedure TForm1.FormResize(Sender: TObject);
begin
  button1.Left:=form1.Width-button1.Width-10;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -