delphi 游戏菜单部分源码

procedure prstart(new:bool);
begin

main.ListView1.BackPicture.Graphic:=nil;
main.ListView2.BackPicture.Graphic:=nil;
main.ListView3.BackPicture.Graphic:=nil;
main.ListView4.BackPicture.Graphic:=nil;
main.ListView5.BackPicture.Graphic:=nil;
main.ListView6.BackPicture.Graphic:=nil;
main.ListView7.BackPicture.Graphic:=nil;
main.ListView8.BackPicture.Graphic:=nil;
main.ListView9.BackPicture.Graphic:=nil;
main.WGListView.BackPicture.Graphic:=nil;

main.TabSheet1.Caption:=readinifile('设置','分组1名称','最新推荐');
main.TabSheet2.Caption:=readinifile('设置','分组2名称','网络游戏');
main.TabSheet3.Caption:=readinifile('设置','分组3名称','单机游戏');
main.TabSheet4.Caption:=readinifile('设置','分组4名称','私服专区');
main.TabSheet5.Caption:=readinifile('设置','分组5名称','休闲游戏');
main.TabSheet6.Caption:=readinifile('设置','分组6名称','电影音乐');
main.TabSheet7.Caption:=readinifile('设置','分组7名称','升级补丁');
main.TabSheet8.Caption:=readinifile('设置','分组8名称','游戏外挂');

main.TabSheet1.TabVisible:=readinifile('设置','显示分组1',true);
main.TabSheet2.TabVisible:=readinifile('设置','显示分组2',true);
main.TabSheet3.TabVisible:=readinifile('设置','显示分组3',true);
main.TabSheet4.TabVisible:=readinifile('设置','显示分组4',true);
main.TabSheet5.TabVisible:=readinifile('设置','显示分组5',true);
main.TabSheet6.TabVisible:=readinifile('设置','显示分组6',true);
main.TabSheet7.TabVisible:=readinifile('设置','显示分组7',true);
main.TabSheet8.TabVisible:=readinifile('设置','显示分组8',true);
main.SeathTab.TabVisible:=false;

if fileexists(selfpath+'logo1.jpg') then
main.logo1.Picture.LoadFromFile('logo1.jpg');
if fileexists(selfpath+'logo2.jpg') then
main.logo2.Picture.LoadFromFile('logo2.jpg');
main.logoimage.Picture:=main.logo1.Picture;

//if readinifile('设置','窗口最大',true) then main.WindowState:=wsMaximized;
if readinifile('设置','作为桌面',true) then
   begin
    main.BorderStyle:=bsDialog; //   bsToolWindow
    main.Align:=alClient;
    Windows.SetParent(main.Handle, FindWindow('Progman', nil));
   end else
       begin
        //ShowWindowAsync(Application.Handle,sw_show);
        main.BorderStyle:=bsSizeable;
        main.Align:=alNone;
        Windows.SetParent(main.Handle, main.Handle);
   end;

NeedOutPass:=readinifile('设置','退出需要密码',true);
pass:=myword(readinifile('设置','程序密码',''),'');
if pass = '' then pass:='o123v123x123ssd13fer123zfxcow123e';
   main.Panel1.Visible:=readinifile('设置','显示logo',true);   //@@ 免费功能不能用
   main.MainPubPanel.Visible:=readinifile('设置','显示公告',true);

    main.ListView9.Visible:=readinifile('设置','显示外挂',true);
if  readinifile('设置','右边公告',true)  then
    main.MainPubPanel.Align:=alRight else main.MainPubPanel.Align:=alLeft;
    main.N10.Checked:=(main.MainPubPanel.Align=alRight);

ServerIp  :=readinifile('设置','服务器IP','127.0.0.1');;
ServerPort:=readinifile('设置','服务器端口',75601);;
AutoUPgame:=readinifile('设置','询问更新游戏',true);
AutoRePic :=readinifile('设置','自动刷新图标',false);
netpath   :=readinifile('设置','网络更新','');
wguppath  :=readinifile('设置','外挂升级','');
    setskin(readinifile('设置','程序外观',1));
UseBackPic:=readinifile('设置','启用背景',true);
SjBackPic :=readinifile('设置','随机背景',true);
main.Memo2.Lines.Text:=readinifile('设置','系统公告','未设置公告');
main.Memo3.Lines.Text:=readinifile('设置','最新更新','当前无更新');
setcolor(readinifile('设置','界面颜色',clWindow),readinifile('设置','界面字体颜色',clWindow));
LoadGameLabel(GameLabel);

IPListSet1.NetName:=readinifile('设置','网关名称1','');
IPListSet1.NetIP  :=readinifile('设置','网关地址1','');
IPListSet1.NetSub :=readinifile('设置','子网掩码1','');
IPListSet1.aDNS   :=readinifile('设置','主DNS1','');
IPListSet1.bDNS   :=readinifile('设置','副DNS1','');

IPListSet2.NetName:=readinifile('设置','网关名称2','');
IPListSet2.NetIP  :=readinifile('设置','网关地址2','');
IPListSet2.NetSub :=readinifile('设置','子网掩码2','');
IPListSet2.aDNS   :=readinifile('设置','主DNS2','');
IPListSet2.bDNS   :=readinifile('设置','副DNS2','');

main.N_net1.Caption:=IPListSet1.NetName;
main.N_net2.Caption:=IPListSet2.NetName;

ToolsInfo.Tools1:=readinifile('工具设置','tools1',format('%stools/Grachics.lnk',[selfpath]));
ToolsInfo.Show1 :=readinifile('工具设置','show1',true);
ToolsInfo.Tools2:=readinifile('工具设置','tools2',format('%stools/IME.exe',[selfpath]));
ToolsInfo.Show2 :=readinifile('工具设置','show2',true);
ToolsInfo.Tools3:=readinifile('工具设置','tools3',format('%stools/key.lnk',[selfpath]));
ToolsInfo.Show3 :=readinifile('工具设置','show3',true);
ToolsInfo.Tools4:=readinifile('工具设置','tools4',format('%stools/mouse.lnk',[selfpath]));
ToolsInfo.Show4 :=readinifile('工具设置','show4',true);
ToolsInfo.Tools5:=readinifile('工具设置','tools5','C:/WINDOWS/system32/sndvol32.exe');
ToolsInfo.Show5 :=readinifile('工具设置','show5',true);
ToolsInfo.Tools6:=readinifile('工具设置','tools6','');
ToolsInfo.Show6 :=readinifile('工具设置','show6',true);
ToolsInfo.Tools7:=readinifile('工具设置','tools7','');
ToolsInfo.Show7 :=readinifile('工具设置','show7',true);


PicIndex :=readinifile('设置','背景图片',0);
randomize;
if  SjBackPic then  PicIndex:=random(10);
if fileexists(selfpath+'icolist.dat') then
loadimagelist(selfpath+'icolist.dat')
else  new:=true;
if new then
begin
main.Imagelist2.Clear;
loadallini;
resavepic;
GetSystemImageList(main.ImageList2);
saveimagelist(selfpath+'icolist.dat');
end;
main.Timer1.Enabled:=true;
end;

function ExecuteFile(const FileName, Params, DefaultDir: String;
ShowCmd: Integer): THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
try
Result := ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd);
finally;
end;
end;

function upexec(itemsx:Tlistitems;i:integer):bool;
var
exepath,uppath:string;  //源目录和目标目录
begin
if i > -1 then
begin
uppath:=Itemsx.Item[i].SubItems[5];
exepath:=Itemsx.Item[i].SubItems[1];
if application.MessageBox(Pchar(format('要更新 %s 游戏吗 ? ',[Itemsx.Item[i].Caption])),'系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
if extractfileext(exepath)='' then
begin
if writetbq(exepath,uppath,Itemsx.Item[i].SubItems[0]) then Itemsx.Item[i].ImageIndex:=strtoint(Itemsx.Item[i].SubItems[4]);
result:=true;
end
else
begin
  result:=true;
  WinExec(pchar(exepath),SW_SHOWNORMAL);
  Itemsx.Item[i].ImageIndex:=strtoint(Itemsx.Item[i].SubItems[4]);
  end;
  if Itemsx.Item[i].SubItems.Count = 6 then Itemsx.Item[i].SubItems.Append('NOGAMEUP');
end;
end;

function ExePathToDir(FilePath:string):string;
begin
if ExtractFileExt(FilePath)='.lnk' then
begin
result:=extractfiledir(GetLinkFullFileName(FilePath));
end else
result:=extractfiledir(FilePath);
end;

procedure exectools(pathx:string);
var
exepath,path:string;
begin
begin
exepath:=pathx;
if not fileexists(exepath) then
begin
//application.MessageBox('指定的工具不存在 !',' 提示 ',mb_ok+MB_ICONINFORMATION);
//exit;
end;
path:=ExePathToDir(exepath);
ExecuteFile(exepath,'',path,SW_SHOWNORMAL);
if isfree2 then   setgame.Free;
end;
end;

Function UPGames:bool;
begin
with main do
case page1.ActivePageIndex  of
   0:  result:=upexec(listview1.Items,listview1.ItemIndex);
   1:  result:=upexec(listview2.Items,listview2.ItemIndex);
   2:  result:=upexec(listview3.Items,listview3.ItemIndex);
   3:  result:=upexec(listview4.Items,listview4.ItemIndex);
   4:  result:=upexec(listview5.Items,listview5.ItemIndex);
   5:  result:=upexec(listview6.Items,listview6.ItemIndex);
   6:  result:=upexec(listview7.Items,listview7.ItemIndex);
   7:  result:=upexec(listview8.Items,listview8.ItemIndex);
   8:  result:=upexec(listview9.Items,listview9.ItemIndex);
end;
end;

procedure Tmain.ListView1DblClick(Sender: TObject);
begin
exec(listview1.Items,listview1.ItemIndex);
end;

procedure Tmain.ListView2DblClick(Sender: TObject);
begin
exec(listview2.Items,listview2.ItemIndex);
end;

procedure Tmain.N2Click(Sender: TObject);
begin
if application.MessageBox('要刷新所有项目的图标吗 , 此过程可能要几秒种 . ','系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
begin
main.WGListView.Items.Clear;
resavepic;
GetSystemImageList(main.ImageList2);
saveimagelist(selfpath+'icolist.dat');
end;
end;

procedure Tmain.N1Click(Sender: TObject);
begin
if page1.ActivePageIndex=0 then exec(listview1.Items,listview1.ItemIndex);
if page1.ActivePageIndex=1 then exec(listview2.Items,listview2.ItemIndex);
if page1.ActivePageIndex=2 then exec(listview3.Items,listview3.ItemIndex);
if page1.ActivePageIndex=3 then exec(listview4.Items,listview4.ItemIndex);
if page1.ActivePageIndex=4 then exec(listview5.Items,listview5.ItemIndex);
if page1.ActivePageIndex=5 then exec(listview6.Items,listview6.ItemIndex);
if page1.ActivePageIndex=6 then exec(listview7.Items,listview7.ItemIndex);
if page1.ActivePageIndex=7 then exec(listview8.Items,listview8.ItemIndex);
if page1.ActivePageIndex=8 then exec(listview9.Items,listview9.ItemIndex);
end;

procedure Tmain.ListView3DblClick(Sender: TObject);
begin
exec(listview3.Items,listview3.ItemIndex);
end;

procedure ShowSetup;
begin
setgame.TabSheet9.TabVisible :=not istry;
setgame.Edit8.Text             :=pass;
setgame.Edit9.Text             :=netpath;
setgame.AutoUPgameCk.Checked   :=AutoUPgame;
setgame.AutoReICOck.Checked    :=AutoRePic;
setgame.NeedOutPassCk.Checked  :=NeedOutPass;
setgame.ServerIPEdit.Text      :=ServerIp ;
setgame.ServerPortEdit.Text    :=inttostr(ServerPort);
setgame.MaxCheck.Checked     :=readinifile('设置','窗口最大',true);
setgame.AsDesktopCk.Checked  :=readinifile('设置','作为桌面',true);
setgame.logoCheck.Checked    :=readinifile('设置','显示logo',true);
setgame.pubCheck.Checked     :=readinifile('设置','显示公告',true);
setgame.wgCheck.Checked      :=readinifile('设置','显示外挂',true);
setgame.RightCheck.Checked   :=readinifile('设置','右边公告',true);

setgame.ShowGameTxtCheck.Checked  :=readinifile('设置','显示游戏介绍',true);
setgame.ShowPBCheck.Checked       :=readinifile('设置','显示系统公告',true);
setgame.ShowNetCheck.Checked      :=readinifile('设置','显示切换网关',true);
setgame.ShowNewUPCheck.Checked    :=readinifile('设置','显示最新更新',true);

setgame.Memo2.Lines.Text         :=readinifile('设置','系统公告','未设置公告');
setgame.Memo3.Lines.Text         :=readinifile('设置','最新更新','当前无更新');
setgame.RadioGroup1.ItemIndex    :=readinifile('设置','程序外观',1);
setgame.colorpanel.Color         :=readinifile('设置','界面颜色',clWindow);
setgame.colorpanel.Font.Color    :=readinifile('设置','界面字体颜色',clblack);

setgame.NetNameEdit1.Text:=IPListSet1.NetName;
setgame.NetEdit1.Text:=IPListSet1.NetIP;
setgame.NetSubEdit1.Text:=IPListSet1.NetSub;
setgame.aDNSEdit1.Text:=IPListSet1.aDNS;
setgame.bDNSEdit1.Text:=IPListSet1.bDNS;

setgame.NetNameEdit2.Text:=IPListSet2.NetName;
setgame.NetEdit2.Text:=IPListSet2.NetIP;
setgame.NetSubEdit2.Text:=IPListSet2.NetSub;
setgame.aDNSEdit2.Text:=IPListSet2.aDNS;
setgame.bDNSEdit2.Text:=IPListSet2.bDNS;

setgame.ToolEdit1.Text      := ToolsInfo.Tools1;
setgame.ToolShowCK1.Checked := ToolsInfo.Show1;
setgame.ToolEdit2.Text      := ToolsInfo.Tools2;
setgame.ToolShowCK2.Checked := ToolsInfo.Show2;
setgame.ToolEdit3.Text      := ToolsInfo.Tools3;
setgame.ToolShowCK3.Checked := ToolsInfo.Show3;
setgame.ToolEdit4.Text      := ToolsInfo.Tools4;
setgame.ToolShowCK4.Checked := ToolsInfo.Show4;
setgame.ToolEdit5.Text      := ToolsInfo.Tools5;
setgame.ToolShowCK5.Checked := ToolsInfo.Show5;
setgame.ToolEdit6.Text      := ToolsInfo.Tools6;
setgame.ToolShowCK6.Checked := ToolsInfo.Show6;
setgame.ToolEdit7.Text      := ToolsInfo.Tools7;
setgame.ToolShowCK7.Checked := ToolsInfo.Show7;

setgame.AutoUPgameCk.Checked:=AutoUPGame;
setgame.BackPicCk.Checked:=UseBackPic;
setgame.SJPicCk.Checked:=SjBackPic;
setgame.PicCombo1.ItemIndex:=PicIndex;

setgame.Editls1.Text:=main.TabSheet1.Caption;
setgame.Editls2.Text:=main.TabSheet2.Caption;
setgame.Editls3.Text:=main.TabSheet3.Caption;
setgame.Editls4.Text:=main.TabSheet4.Caption;
setgame.Editls5.Text:=main.TabSheet5.Caption;
setgame.Editls6.Text:=main.TabSheet6.Caption;
setgame.Editls7.Text:=main.TabSheet7.Caption;
setgame.Editls8.Text:=main.TabSheet8.Caption;

setgame.Checkls1.Checked:=main.TabSheet1.TabVisible;
setgame.Checkls2.Checked:=main.TabSheet2.TabVisible;
setgame.Checkls3.Checked:=main.TabSheet3.TabVisible;
setgame.Checkls4.Checked:=main.TabSheet4.TabVisible;
setgame.Checkls5.Checked:=main.TabSheet5.TabVisible;
setgame.Checkls6.Checked:=main.TabSheet6.TabVisible;
setgame.Checkls7.Checked:=main.TabSheet7.TabVisible;
setgame.Checkls8.Checked:=main.TabSheet8.TabVisible;

setgame.FontSizeTrack.Position:=Gamelabel.fontSize;
setgame.TabStyleTrack.Position:=Gamelabel.TabStyle;
setgame.LabelTrack.Position:=Gamelabel.Height;
setgame.TabWidethTrack.Position:=Gamelabel.TabWidth;

loadini('分组1-',setgame.ListView1.Items);
loadini('分组2-',setgame.ListView2.Items);
loadini('分组3-',setgame.ListView3.Items);
loadini('分组4-',setgame.ListView4.Items);
loadini('分组5-',setgame.ListView5.Items);
loadini('分组6-',setgame.ListView6.Items);
loadini('分组7-',setgame.ListView7.Items);
loadini('分组8-',setgame.ListView8.Items);

setgame.Visible:=true;
setgame.WindowState:=wsNormal;
end;

procedure Tmain.setbuttonClick(Sender: TObject);
begin
if istry then ShowSetup
              else  begin
                       Passbutton.Tag:=1;
                       PassBox.Top:=main.ClientHeight div 3;
                       PassBox.Left:=main.ClientWidth div 3;
                       PassBox.Show;
                       PassEdit.SetFocus;
                    end;

end;

procedure Tmain.Timer1Timer(Sender: TObject);
begin
   Timer1.Enabled:=false;
   GameTextPanel.Visible:=readinifile('设置','显示游戏介绍',true);
   SystemTxtPanel.Visible:=readinifile('设置','显示系统公告',true);
   NETListBtn.Visible:=readinifile('设置','显示切换网关',true);
   NewTxtPanel.Visible:=readinifile('设置','显示最新更新',true);

Label1.Caption:='正在启动,请稍侯.....';
StopButton.Enabled:=false;
rePanel.Visible:=true;
application.ProcessMessages;
ProgressBar1.Position:=10;
Local_IP:=LocalIP;
loadallini;
application.ProcessMessages;
if UseBackpic then
OkPic:=setbackbmp(format('%s%d.jpg',[selfpath,PicIndex]));
rePanel.Visible:=false;
page1.ActivePage:=TabSheet1;
Panel5.Visible:=true;
n7.Checked:=main.panel1.Visible;
n5.Checked:=main.MainPubPanel.Visible;
n6.Checked:= listview9.Visible;
isbusy:=false;
if setgame.Visible then setgame.WindowState:=wsNormal;
if notry and (oem) then
begin
frmApp.Show;
page1.Enabled:=false;
end;
end;

procedure Tmain.FormCreate(Sender: TObject);
var
userstrings:Tstringlist;
Tmps:string;
begin

begin
//正式信息
name1:='飞视游戏菜单 V1.2b';
name2:='飞视游戏菜单 V1.2b';
name3:=' 欢迎您定制或OEM快速、美观、专用的游戏菜单,请联系 QQ 561684 ';

//试用信息
sname1:='飞视游戏菜单 V1.2b 免费版';
sname2:='飞视游戏菜单 V1.2b 免费版';
sname3:=' 欢迎您定制或OEM快速、美观、专用的游戏菜单,请联系 QQ 561684 ';
end;
userstrings:=Tstringlist.Create;
IPListSet1:=TIPListSet.Create;
IPListSet2:=TIPListSet.Create;
Gamelabel:=TGameLabel.Create;
ToolsInfo :=TToolsInfo.Create;
isbusy:=true;
main.Panel5.Visible:=false;
selfpath:=ExtractFilePath(Application.Exename);
SetCurrentDir(selfpath);

try
if readinifile('设置','作为桌面',true) then
    begin
     ShowWindowAsync(Application.Handle, SW_HIDE);
     setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow);
    end;

if istry then
begin
main.Caption:=sname1;
application.Title:=sname2;
main.StatusBar1.Panels[2].Text:=sname3;
end else
begin
main.Caption:=name1;
application.Title:=name2;
main.StatusBar1.Panels[2].Text:=name3;
end;
LOGOtimer.Enabled:=true;
finally
userstrings.Free;
end;
prstart(false);
end;

function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
//  Result := -CompareText(Item1.Caption,Item2.Caption);
Result := -CompareText(Item1.Caption,Item1.Caption);
end;

procedure Tmain.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
ListView1.CustomSort(@CustomSortProc, 0);
ListView2.CustomSort(@CustomSortProc, 0);
ListView3.CustomSort(@CustomSortProc, 0);
ListView4.CustomSort(@CustomSortProc, 0);
ListView5.CustomSort(@CustomSortProc, 0);
ListView6.CustomSort(@CustomSortProc, 0);
ListView7.CustomSort(@CustomSortProc, 0);
ListView8.CustomSort(@CustomSortProc, 0);
ListView9.CustomSort(@CustomSortProc, 0);
if UseBackPic then
setbuttonpic(OKPic);
end;

procedure Tmain.LOGOTimerTimer(Sender: TObject);
begin
if s1=0 then
begin
s1:=1;
main.logoimage.Picture:=logo1.Picture;
end else
begin
s1:=0;
main.logoimage.Picture:=logo2.Picture;
end;
end;

procedure Tmain.N7Click(Sender: TObject);
begin
main.panel1.Visible:=not main.panel1.Visible;
n7.Checked:=main.panel1.Visible;
end;

procedure Tmain.N5Click(Sender: TObject);
begin
main.MainPubPanel.Visible:=not main.MainPubPanel.Visible;
n5.Checked:=main.MainPubPanel.Visible;
end;

procedure Tmain.N6Click(Sender: TObject);
begin
listview9.Visible:=not listview9.Visible;
n6.Checked:=listview9.Visible;
end;

procedure Tmain.N10Click(Sender: TObject);
begin
if main.MainPubPanel.Align=alLeft then
   begin
  main.MainPubPanel.Align:=alRight ;
  //ToolPUBPanel.Align:=alRight ;
  end else
  begin
  main.MainPubPanel.Align:=alLeft;
  //ToolPUBPanel.Align:=alLeft;
  end;
N10.Checked:=(main.MainPubPanel.Align <> alLeft);
end;

procedure Tmain.Page1Change(Sender: TObject);
begin
case page1.ActivePageIndex of
0:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview1.Items.Count]);
1:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview2.Items.Count]);
2:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview3.Items.Count]);
3:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview4.Items.Count]);
4:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview5.Items.Count]);
5:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview6.Items.Count]);
6:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview7.Items.Count]);
7:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview8.Items.Count]);
8:  main.StatusBar1.Panels[0].Text:=format('当前 %d 项',[listview9.Items.Count]);
end;
ClearMemory;
end;

procedure UPgameset(IsStop:bool);
var hbutton1,hparent1:HWND;
begin
//     hparent:=findwindowex(0,hparent,'#32770',nil);
     hparent1:=FindWindow(nil, '拷贝文件');
     hbutton1:=findwindowEX(hparent1,0,nil,'停止');
  if (hbutton1<>0) then
      begin
//      main.Edit1.Text:='已经找到程序窗口了';
//      ShowWindow(hparent1, SW_HIDE);
        if (not IsStop) then sendmessage(hbutton1,BM_CLICK,0,0);
        //   memo1.Lines.Append('找到了') ;
      end else
    begin
        if  (not IsStop) then
               begin
               main.rePanel.Visible:=false;
               exit;
               end
             else
          begin
            main.StopButton.Caption:='确定';
            main.Label1.Caption:='同步操作已经完成 .';
            main.ProgressBar1.Position:=100;
          end;
      main.REGTimer.Enabled:=false;
    end;
end;

procedure Tmain.REGTimerTimer(Sender: TObject);
begin
try
main.IdUDPServer1.Send(ServerIP,ServerPort,('S_reg'+main.IdUDPServer1.LocalName));
finally
end;
end;

procedure Tmain.StopButtonClick(Sender: TObject);
begin
if StopButton.Caption='取消' then
  begin
  StopButton.Enabled:=false;
  label1.Caption:='正在取消同步,请稍候.......';
  end;
if StopButton.Caption='确定' then
   begin
   rePanel.Visible:=false;
   end;
end;

procedure Tmain.rePanelMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
with repanel do
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND,$f012,0);
  end;
end;

procedure Tmain.MemoTimerTimer(Sender: TObject);
begin
if main.Active then
   if memo3.Lines.Count>10 then
    begin
     memo3.Lines.Append(memo3.Lines.Strings[0]);
     memo3.Lines.Delete(0);
    end;
end;

procedure SetNet(NetSet:TIPListSet);
var
line1,line2,line3:string;
begin
if application.MessageBox(Pchar(format('要切换到 %s 线路吗 ? ',[NetSet.NetName])),'系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
if (NetSet.NetName <> '') and (NetSet.NetIP <> '') and (NetSet.NetSub <> '')
and (NetSet.aDNS <> '') then
  begin
    line1:= format('netsh interface ip set address name="本地连接" source=static addr=%s mask=%s gateway=%s gwmetric=1',
    [Local_IP,NetSet.NetSub,NetSet.NetIP]);
    line2:=format('netsh interface ip set dns name="本地连接" source=static addr=%s',[NetSet.aDNS]);
    line3:=format('netsh interface ip add dns name="本地连接" addr=%s index=2',[NetSet.bDNS]);
    if isfree then application.Terminate;
    ExeWait(line1,SW_HIDE);
    ExeWait(line2,SW_HIDE);
    ExeWait(line3,SW_HIDE);
    application.MessageBox(Pchar(NetSet.NetName+' 线路切换成功 !'),' 提示 ',mb_ok+MB_ICONINFORMATION);
    end else application.MessageBox('未设置网络参数 !',' 提示 ',mb_ok+MB_ICONINFORMATION);
    end;

procedure Tmain.N8Click(Sender: TObject);
begin
randomize;
UseBackPic:=true;
setbackbmp(format('%s%d.jpg',[selfpath,random(10)]));
end;

procedure Tmain.Action2Execute(Sender: TObject);
begin
if oem then
frmApp.Show;
end;

function StreamToStr(AData: TStream;var StrId:string):string;
var strstream:TStringStream;
begin
  strstream:=TStringStream.Create('');
  try
  AData.Position:=0;
  strstream.CopyFrom(AData,AData.Size);
  StrId:= copy(strstream.DataString,0,5);
  result:=copy(strstream.DataString,6,AData.Size);
  finally
  strstream.Free;
  end;
end;

procedure addgameTop(str1,str2,str3,str4,str5,str6:string;Ietmx:TListItems);
var
  listitem:Tlistitem;
begin
try
listitem:= Ietmx.Add;
listitem.Caption:=str1;
listitem.SubItems.Add(str2);
listitem.SubItems.Add(str3);
listitem.SubItems.Add(str4);
listitem.SubItems.Add(str5);
listitem.SubItems.Add(str6);
listitem.ImageIndex:=19;
finally
end;
end;

procedure StrToGameTop(i:integer;
strx,strs:string;list:TListItems);
var
n1:integer;
str1,str2,str3,str4,str5:string;
begin
try
strs:=copy(strs,1,length(strs));
n1:=pos(strx,strs);
str1:=copy(strs,1,n1-1);
strs:=copy(strs,n1+2,length(strs));

n1:=pos(strx,strs);
str2:=copy(strs,0,n1-1);
strs:=copy(strs,n1+2,length(strs));

n1:=pos(strx,strs);
str3:=copy(strs,0,n1-1);
strs:=copy(strs,n1+2,length(strs));

n1:=pos(strx,strs);
str4:=copy(strs,0,n1-1);
strs:=copy(strs,n1+2,length(strs));

n1:=pos(strx,strs);
if n1 > 0 then  str5:=copy(strs,0,n1) else
str5:=strs;
strs:=copy(strs,n1+2,length(strs));
                                       //timetostr(now)
addgameTop(inttostr(i),str5,str1,str2,str3,str4,main.GameTopListView.Items);
finally
end;
end;

procedure StrsToGameTop(Stream:TStream;Ietmx:TListItems);
var   strs:Tstringlist;
         i:integer;
begin
  Strs:=Tstringlist.Create;
try
Stream.Position:=5;
strs.LoadFromStream(Stream);
main.GameTopListView.Items.Clear;
for i:=0 to strs.Count-1 do
begin
StrToGameTop(i+1,'<>',strs[i],main.GameTopListView.Items);
end;
finally
strs.Free;
end;
end;

procedure Tmain.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
  var  StrId,Str:string;
begin
  if AData.Size < 6 then exit;
  Str:=StreamToStr(AData,StrId);
  if Strid = 'S_reg' then
   begin
    memo4.Lines.Append(format('ID %s , 内容 %s',[StrId,Str]));
    REGTimer.Enabled:=false;
   end;

  if Strid = 'S_gck' then
   begin
     memo4.Lines.Append(format('ID %s , 内容 %s',[StrId,Str]));
     StrsToGameTop(AData,main.GameTopListView.Items);
   end;
end;

procedure Tmain.Button1Click(Sender: TObject);
var i:integer;
begin
for i:= 1 to 5 do                              //IdUDPServer1.LocalName
IdUDPServer1.Send(ServerIP,ServerPort,('S_reg'+format('Game %d',[i])));
end;

procedure Tmain.PassButtonClick(Sender: TObject);
begin
if not not not(PassEdit.Text <> pass) then
  begin
    case  Passbutton.Tag of
    1:   ShowSetup;

    2:   exectools(selfpath+'tools');

    3:   application.Terminate;
    end;

end;
PassBox.Visible:=false;
PassEdit.Clear;
end;

procedure Tmain.Button3Click(Sender: TObject);
begin
PassBox.Visible:=false;
PassEdit.Clear;
end;

procedure Tmain.Panel4MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
with PassBox do
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND,$f012,0);
  end;
end;

procedure Tmain.Button4Click(Sender: TObject);
var i:integer;
begin
for i:= 6 to 11 do                              //IdUDPServer1.LocalName
IdUDPServer1.Send(ServerIP,ServerPort,('S_reg'+format('Game %d',[i])));
end;

procedure Tmain.Panel3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
with panel3 do
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND,$f012,0);
  end;
end;

procedure FindGame(Itemsx:Tlistitems);
var
i:integer;
begin
begin
for i:=0 to Itemsx.Count-1 do
if pos(UpperCase(main.SeachEdit.Text),UpperCase(Itemsx.Item[i].Caption)) <> 0 then
addgamelist(
Itemsx.Item[i].Caption,
Itemsx.Item[i].SubItems[0],
Itemsx.Item[i].SubItems[1],
Itemsx.Item[i].SubItems[2],
Itemsx.Item[i].SubItems[3],
Itemsx.Item[i].SubItems[4],
Itemsx.Item[i].SubItems[5],
main.ListView9.items);
end;
end;

procedure Tmain.ViewBtnClick(Sender: TObject);
begin
if SeachEdit.Text = '' then exit;
main.SeathTab.TabVisible:=true;
Listview9.Items.Clear;
if TabSheet1.TabVisible then FindGame(Listview1.Items);
if TabSheet2.TabVisible then FindGame(Listview2.Items);
if TabSheet3.TabVisible then FindGame(Listview3.Items);
if TabSheet4.TabVisible then FindGame(Listview4.Items);
if TabSheet5.TabVisible then FindGame(Listview5.Items);
if TabSheet6.TabVisible then FindGame(Listview6.Items);
if TabSheet7.TabVisible then FindGame(Listview7.Items);
if TabSheet8.TabVisible then FindGame(Listview8.Items);
Page1.ActivePage:=SeathTab;
end;

procedure Tmain.RzPanel5MouseEnter(Sender: TObject);
begin
MemoTimer.Enabled:=false;
end;

procedure Tmain.RzPanel5MouseLeave(Sender: TObject);
begin
MemoTimer.Enabled:=true;
end;

procedure Tmain.RzToolButton1Click(Sender: TObject);
begin
if MainPubPanel.Visible and (page2.ActivePageIndex=0) then
begin
MainPubPanel.Visible:=false;
exit;
end;
MainPubPanel.Visible:=true;
page2.ActivePageIndex:=0;
end;

procedure Tmain.N_net1Click(Sender: TObject);
begin
SetNet(IPListSet1);
end;

procedure Tmain.N_net2Click(Sender: TObject);
begin
SetNet(IPListSet2);
end;
function CustomSortProc2(Item1, Item2: TListItem; ColumnIndex: integer): integer; stdcall;
var i:integer;
begin
//if VSort then i:=1 else i:=-1;
i:=1;
try
if ColumnIndex = 0 then
Result := -(StrToInt(Item1.Caption) - StrToInt(Item2.Caption)) * i
else
Result := -(StrToInt(Item1.SubItems[ColumnIndex-1]) - StrToInt(Item2.SubItems[ColumnIndex-1])) * i;
finally;
end;
end;

procedure ReListGameTop(ColumnIndex:integer);
begin
main.GameTopListView.CustomSort(@CustomSortProc2,ColumnIndex);
case ColumnIndex of
2:   main.GameTopLabel.Caption:='游戏排行榜 - 总排行';
3:   main.GameTopLabel.Caption:='游戏排行榜 - 月排行';
4:   main.GameTopLabel.Caption:='游戏排行榜 - 周排行';
5:   main.GameTopLabel.Caption:='游戏排行榜 - 日排行';
end;
main.GameTopListView.Columns.Items[2].Width:=0;
main.GameTopListView.Columns.Items[3].Width:=0;
main.GameTopListView.Columns.Items[4].Width:=0;
main.GameTopListView.Columns.Items[5].Width:=0;
main.GameTopListView.Columns.Items[ColumnIndex].Width:=52;
end;

procedure Tmain.NoteBtnClick(Sender: TObject);
begin
if MainPubPanel.Visible and (page2.ActivePageIndex=2) then
begin
MainPubPanel.Visible:=false;
exit;
end;
MainPubPanel.Visible:=true;
page2.ActivePageIndex:=2;
end;

procedure Tmain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   if NeedOutPass then
    begin
    CanClose:=false;
    PassBox.Top:=main.ClientHeight div 3;
    PassBox.Left:=main.ClientWidth div 3;
    PassBox.Show;
    PassEdit.SetFocus;
    Passbutton.Tag:=3;
    end;
end;

procedure Tmain.ClenToolButtonClick(Sender: TObject);
begin
LYEdit.Text:='';
LYMemo.Lines.Clear;
end;

procedure Tmain.RzToolButton3Click(Sender: TObject);
begin
if (LYEdit.Text = '请输入姓名') or (LyMemo.Lines[0] = '请输入留言内容')
    or (LYEdit.Text = '') or (LyMemo.Lines[0] = '') then
application.MessageBox('请输入您的 "姓名" 和 "留言内容" ,谢谢您的支持 .',' 提示 ',mb_ok+MB_ICONINFORMATION)
else
if application.MessageBox('您要提交这条留言吗 ? ','系统信息',MB_YESNO+MB_Iconquestion)=IDyes then
begin
      IdUDPServer1.Send(ServerIP,ServerPort,('S_lys'+
      format('[%s] %s 留言说: %s',[DateTimeToStr(now),LYEdit.Text,LyMemo.Lines.Text])));
      application.MessageBox('感谢您的留言,我们会尽快处理您的意见和建议 。 ',' 提示 ',mb_ok+MB_ICONINFORMATION);
      ClenToolButton.Click;
     end;
end;

procedure Tmain.N22Click(Sender: TObject);
begin
   Passbutton.Tag:=2;
   PassBox.Top:=main.ClientHeight div 3;
   PassBox.Left:=main.ClientWidth div 3;
   PassBox.Show;
   PassEdit.SetFocus;
end;

procedure Tmain.VolumeBtnClick(Sender: TObject);
begin
exectools(ToolsInfo.Tools5);
end;

procedure Tmain.PassEditKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then PassButton.Click;
end;

procedure Tmain.Page2Change(Sender: TObject);
begin
if (Page2.ActivePage = GameTopTabSheet) and (GameTopListView.Items.Count = 0)
   then RefreshBtn.Click;
end;

procedure Tmain.LYEditEnter(Sender: TObject);
begin
if (LYEdit.Text = '请输入姓名') then
   begin
    LYEdit.Text:='';
    LYEdit.Font.Color:=clBlack;
   end;
end;

procedure Tmain.LYEditExit(Sender: TObject);
begin
if (LYEdit.Text = '') then
  begin
   LYEdit.Text:='请输入姓名';
   LYEdit.Font.Color:=clSilver;
  end;
end;

procedure Tmain.LYMemoEnter(Sender: TObject);
begin
if (LYMemo.Lines[0] = '请输入留言内容') then
   begin
    LYMemo.Text:='';
    LYMemo.Font.Color:=clBlack;
   end;
end;

procedure Tmain.LYMemoExit(Sender: TObject);
begin
if (LYMemo.Lines[0] = '') then
  begin
   LYMemo.lines.Text:='请输入留言内容';
   LYMemo.Font.Color:=clSilver;
  end;
end;

end.
function  ckokpath(path:string):string;
procedure setcolor(colorx,colorx1:Tcolor);
procedure saveseting(num:integer;itemsx:TListItems);
implementation
uses gamemenu,UseIniFile;
{$R *.dfm}

procedure foundwg2(listviewx,wglistview,swglistview:Tlistview);
var
i:integer;
ls:string;
begin
if listviewx.ItemIndex > -1 then
begin
//swglistview.Items.Clear;
ls:=listviewx.Items.Item[listviewx.ItemIndex].SubItems[2];
for i:=0 to wglistview.Items.Count-1 do
if pos((','+inttostr(i)),ls) <> 0 then
swglistview.Items.Item[i].Checked:=true else
swglistview.Items.Item[i].Checked:=false;
end;
end;

procedure listtoedit(listviewx:Tlistview);
var
i:integer;
begin
if listviewx.ItemIndex >-1 then
begin
i:=listviewx.ItemIndex;
setgame.Edit1.Text:=listviewx.Items.Item[i].Caption;
setgame.Edit2.Text:=listviewx.Items.Item[i].SubItems[0];
setgame.Edit3.Text:=listviewx.Items.Item[i].SubItems[1];
setgame.Edit4.Text:=listviewx.Items.Item[i].SubItems[3];
setgame.Edit5.Text:=listviewx.Items.Item[i].SubItems[5];
setgame.memo1.Text:=setgame.edit4.Text;
setgame.wgListView.Items.Assign(setgame.ListView8.Items);
foundwg2(listviewx,setgame.ListView8,setgame.wgListView);
end;
end;

function cklistviewtostr(listviewx:Tlistview):string;
var
i:integer;
ls:string;
begin
ls:='';
for i:=0 to listviewx.Items.Count-1 do
begin
if listviewx.Items[i].Checked then ls:=ls+','+inttostr(i);
end;
result:=ls+',';
end;

procedure edittolist(listviewx:Tlistview);
var
I:integer;
begin
if listviewx.ItemIndex >-1 then
begin
i:=listviewx.ItemIndex;
listviewx.Items.Item[i].Caption:=setgame.Edit1.Text;
listviewx.Items.Item[i].SubItems[0]:=setgame.Edit2.Text;
listviewx.Items.Item[i].SubItems[1]:=setgame.Edit3.Text;
listviewx.Items.Item[i].SubItems[2]:=cklistviewtostr(setgame.wgListView);
listviewx.Items.Item[i].SubItems[3]:=setgame.Edit4.Text;
end;
end;
procedure MoveItemUp(ListViewx:TListView);
var i:integer; ListItemx:TlistItem;
begin
i:=ListViewx.ItemIndex ;
if  (i <> -1) and (i > 0) then
  begin
   Listitemx:=ListViewx.Items.Insert(i-1);
   Listitemx.Caption:=ListViewx.Items.Item[i+1].Caption;
   Listitemx.SubItems:=ListViewx.Items.Item[i+1].SubItems;
   ListItemx.ImageIndex:=ListViewx.Items.Item[I+1].ImageIndex;
   ListViewx.Items.Delete(i+1);
   ListViewx.ItemIndex:=I-1;
   ListViewx.Items[i-1].MakeVisible(true);
  end;
end;

procedure MoveItemDown(ListViewx:TListView);
var i:integer; ListItemx:TlistItem;
begin
i:=ListViewx.ItemIndex ;
if  (i <> -1) and (i < ListViewx.Items.Count-1) then
  begin
   Listitemx:=ListViewx.Items.Insert(i+2);
   Listitemx.Caption:=ListViewx.Items.Item[i].Caption;
   Listitemx.SubItems:=ListViewx.Items.Item[i].SubItems;
   ListItemx.ImageIndex:=ListViewx.Items.Item[i].ImageIndex;
   ListViewx.Items.Delete(i);
   ListViewx.ItemIndex:=I+1;
   ListViewx.Items[i+1].MakeVisible(true);
  end;
end;

procedure Tsetgame.Button6Click(Sender: TObject);
begin
case setnum of
0:  MoveItemUp(ListView1);
1:  MoveItemUp(ListView2);
2:  MoveItemUp(ListView3);
3:  MoveItemUp(ListView4);
4:  MoveItemUp(ListView5);
5:  MoveItemUp(ListView6);
6:  MoveItemUp(ListView7);
7:  MoveItemUp(ListView8);
end;
end;

procedure Tsetgame.Button5Click(Sender: TObject);
begin
case setnum of
0:  MoveItemDown(ListView1);
1:  MoveItemDown(ListView2);
2:  MoveItemDown(ListView3);
3:  MoveItemDown(ListView4);
4:  MoveItemDown(ListView5);
5:  MoveItemDown(ListView6);
6:  MoveItemDown(ListView7);
7:  MoveItemDown(ListView8);
end;
end;

procedure Tsetgame.PicCombo1Select(Sender: TObject);
begin
OkPic:=setbackbmp(format('%s%d.jpg',[selfpath,PicCombo1.ItemIndex]));
end;

procedure Tsetgame.wgListViewExit(Sender: TObject);
begin
SetGameInfo;
end;

procedure Tsetgame.LS_ColorLabelClick(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
colorpanel.Color:=ColorDialog1.Color;
setcolor(colorpanel.Color,colorpanel.Font.Color);
end;
end;

procedure Tsetgame.Label7Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
GameLabel.Color:=ColorDialog1.Color;
SetPage1(GameLabel);
end;
end;

procedure Tsetgame.Label40Click(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
GameLabel.TextColor:=ColorDialog1.Color;
SetPage1(GameLabel);
end;
end;

procedure Tsetgame.LabelTrackChange(Sender: TObject);
begin
GameLabel.Height:=LabelTrack.Position;
SetPage1(GameLabel);
end;

procedure Tsetgame.TabStyleTrackChange(Sender: TObject);
begin
GameLabel.TabStyle:=TabStyleTrack.Position;
SetPage1(GameLabel);
end;

procedure Tsetgame.FontSizeTrackChange(Sender: TObject);
begin
GameLabel.fontSize:=FontSizeTrack.Position;
SetPage1(GameLabel);
end;

procedure Tsetgame.TabWidethTrackChange(Sender: TObject);
begin
GameLabel.TabWidth:=TabWidethTrack.Position;
SetPage1(GameLabel);
end;

procedure Tsetgame.Button7Click(Sender: TObject);
begin
setgame.WindowState:=wsMinimized;
application.ProcessMessages;
SetGameInfo;
saveini;
setgame.WindowState:=wsNormal;
end;

procedure Tsetgame.LS_FontColorLabelClick(Sender: TObject);
begin
if ColorDialog1.Execute then
begin
setgame.colorpanel.Font.Color:=ColorDialog1.Color;
setcolor(colorpanel.Color,colorpanel.Font.Color);
end;
end;

procedure Tsetgame.AsDesktopCkMouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
application.MessageBox('重新启动程序后此设置才生效  !',' 提示 ',mb_ok+MB_ICONINFORMATION);
end;

procedure Tsetgame.Checkls1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
Checkls1.Checked:=true;
application.MessageBox('第一个分类不能隐藏,您可以修改为其它名称,例如 "最新推荐"  !',' 提示 ',mb_ok+MB_ICONINFORMATION);
end;

procedure Tsetgame.Button10Click(Sender: TObject);
begin
button11.Click;
setgame.Close;
end;

procedure Tsetgame.DeTool1Click(Sender: TObject);
begin
Tooledit1.text:=format('%stools/Grachics.lnk',[selfpath]);end;

procedure Tsetgame.DeTool2Click(Sender: TObject);
begin
Tooledit2.text:=format('%stools/IME.exe',[selfpath]);
end;

procedure Tsetgame.DeTool3Click(Sender: TObject);
begin
Tooledit3.text:=format('%stools/key.lnk',[selfpath]);
end;

procedure Tsetgame.DeTool4Click(Sender: TObject);
begin
Tooledit4.text:=format('%stools/mouse.lnk',[selfpath]);
end;

procedure Tsetgame.DeTool5Click(Sender: TObject);
begin
Tooledit5.text:='C:/WINDOWS/system32/sndvol32.exe';
end;

procedure RunTool(Path:string);
begin
exectools(path);
end;

procedure Tsetgame.ToolTest1Click(Sender: TObject);
begin
Runtool(ToolEdit1.Text);
end;

procedure Tsetgame.ToolTest2Click(Sender: TObject);
begin
Runtool(ToolEdit2.Text);
end;

procedure Tsetgame.Button12Click(Sender: TObject);
begin
winexec('rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2',9);

end;

procedure Tsetgame.ToolTest5Click(Sender: TObject);
begin
Runtool(ToolEdit5.Text);
end;

procedure Tsetgame.ToolTest4Click(Sender: TObject);
begin
Runtool(ToolEdit4.Text);
end;

procedure Tsetgame.ToolTest3Click(Sender: TObject);
begin
Runtool(ToolEdit3.Text);
end;

end.

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值