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

📄 usclass.pas

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, inifiles,shellapi;

type
  TC=class
   public
    T:Tstrings;
    constructor Create(Path:string);
    function GetPath(value:integer):string ;
    function GetPathValue(value:string):string ;
   private
    ini:Tinifile;
  end;

  TlistViewBox=Class
  public
   constructor Create(listview:Tlistview;imagelist:Timagelist;IniFile:string);
  private
   TV:Tlistview;
   IM:Timagelist;{指针}
   Ini:Tinifile;
   T:Tstrings;
   procedure LoadICO();
   procedure Show();
  end;

  TExecute=class
  public
   Constructor Create(Gametitle,iniPath,LoadPath:string);
   procedure Execute();
  private
   title,LoadFile:string;
   ini,Load:Tinifile;
   Sdir,Udir,Exeapp,PramStr,Regfile,BgImage,VD:string;
   procedure Read();
   procedure Save();
  end;
implementation

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;

{ TC }

constructor TC.Create(Path: string);
begin
  ini:=Tinifile.Create(Path);
  T:=Tstringlist.Create;
  ini.ReadSection('游戏分类',T);
end;

function TC.GetPath(value: integer): string;
var
 s:string;
begin
 s:=T.Strings[value];
 Result:=ini.ReadString('游戏分类',s,'GameIniPath');
end;

function TC.GetPathValue(value: string): string;
begin
 Result:=ini.ReadString('游戏分类',value,'GameIniPath');
end;

{ TlistViewBox }

constructor TlistViewBox.Create(listview: Tlistview;
  imagelist: Timagelist; IniFile: string);
begin
 TV:=listview;
 IM:=imagelist;
 TV.Clear;
 IM.Clear;

 Ini:=Tinifile.Create(IniFile);
 T:=Tstringlist.Create;
 ini.ReadSections(T);
 LoadICO;
 Show;
end;

procedure TlistViewBox.LoadICO;
var
 I,Co:integer;
 ExeFile:string;
begin
 Co:=T.Count;


 for i:=0 to Co-1 do
 begin
   ExeFile:=ini.ReadString(T.Strings[i],'Udir','\');
   ExeFile:=ExeFile+'\'+ini.ReadString(T.Strings[i],'Exeapp','.exe');
   IM.AddIcon(loadIcon(ExeFile));
 end;
end;

procedure TlistViewBox.Show;
var
 I,Co:integer;
 ExeFile:string;
 Column:TlistItem;
begin

 TV.LargeImages:=IM;
 Co:=T.Count;

 for i:=0 to Co-1 do
 begin
  Column:=TV.Items.Add;
  Column.ImageIndex:=i;
  Column.Caption:=T.Strings[i];
 end;

end;

{ TExecute }

constructor TExecute.Create(Gametitle, iniPath,LoadPath: string);
begin
  ini:=Tinifile.Create(iniPath);
  title:=Gametitle;
  LoadFile:=LoadPath;
  Read;
  Save;
end;

procedure TExecute.Execute;
begin
  {}
end;

procedure TExecute.Read;
begin
  Sdir:=ini.ReadString(title,'Sdir','');
  Udir:=ini.ReadString(title,'Udir','');
  Exeapp:=ini.ReadString(title,'Exeapp','');
  PramStr:=ini.ReadString(title,'PramStr','');
  Regfile:=ini.ReadString(title,'Regfile','');
  BgImage:=ini.ReadString(title,'BgImage','没有图片');
  VD:=ini.ReadString(title,'VD','Yes');
end;

procedure TExecute.Save;
begin
  Load:=Tinifile.Create(LoadFile);
  Load.WriteString('Game','Sdir',Sdir);
  Load.WriteString('Game','Udir',Udir);
  Load.WriteString('Game','Exefile',Exeapp);
  Load.WriteString('Game','PramStr',PramStr);
  Load.WriteString('Game','Regfile',Regfile);
  Load.WriteString('Game','BgImage',BgImage);
  Load.WriteString('Game','VD',VD);
end;

end.

⌨️ 快捷键说明

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