Advertisement
Guest User

Untitled

a guest
Oct 24th, 2013
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 6.84 KB | None | 0 0
  1. unit UnitMain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, Gauges, Buttons, IniFiles, StdCtrls, OleCtrls, SHDocVw, ExtCtrls,
  8.   Wininet, ImgBtn, ComCtrls, ShlObj, ComObj, ActiveX, jpeg, pngimage;
  9.  
  10.  
  11. type
  12.   TFMain = class(TForm)
  13.     Gauge1: TGauge;
  14.     Gauge2: TGauge;
  15.     Image1: TImage;
  16.     Label1: TLabel;
  17.     Label2: TLabel;
  18.     Label3: TLabel;
  19.     ImgBtn1: TImgBtn;
  20.     ImgBtn2: TImgBtn;
  21.     ImgBtn3: TImgBtn;
  22.     ImgBtn4: TImgBtn;
  23.     Panel1: TPanel;
  24.     WebBrowser1: TWebBrowser;
  25.     Image2: TImage;
  26.     Image3: TImage;
  27.     Image4: TImage;
  28.     Label4: TLabel;
  29.     ImgBtn5: TImgBtn;
  30.     Timer1: TTimer;
  31.     procedure FormCreate(Sender: TObject);
  32.     procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
  33.       Shift: TShiftState; X, Y: Integer);
  34.     procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  35.       Y: Integer);
  36.     procedure FormMouseUp(Sender: TObject; Button: TMouseButton;
  37.       Shift: TShiftState; X, Y: Integer);
  38.     procedure ImgBtn4Click(Sender: TObject);
  39.     procedure ImgBtn3Click(Sender: TObject);
  40.     procedure ImgBtn2Click(Sender: TObject);
  41.     procedure ImgBtn1Click(Sender: TObject);
  42.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  43.     procedure ImgBtn5Click(Sender: TObject);
  44.     procedure WebBrowser1NavigateComplete2(Sender: TObject;
  45.       const pDisp: IDispatch; var URL: OleVariant);
  46.     procedure Timer1Timer(Sender: TObject);
  47.     procedure UpdateRevision(Rev: string);
  48.   private
  49.     { Private declarations }
  50.   public
  51.   Draging: Boolean;
  52.   X0, Y0: integer;
  53.   end;
  54.  
  55. var
  56.   FMain: TFMain;
  57.   USettings : TStrings;
  58.  
  59. implementation
  60.  
  61. uses Frm2, GetFilesThr, Misc;
  62.  
  63. {$R *.dfm}
  64.  
  65. procedure TFmain.UpdateRevision(Rev: string);
  66. var
  67.   Settings: TInifile;
  68. begin
  69.   Settings := TInifile.Create(USettings[0]+'_settings.ini');
  70.   Settings.WriteString('main','AtRevision',Rev);
  71.   Settings.Free;
  72. end;
  73.  
  74.  
  75. function LoadSettings(): bool;
  76. var
  77.   Settings: TInifile;
  78. begin
  79.   Result:=False;
  80.   USettings := TStringlist.Create;
  81.   USettings.Add(GetCurrentDir+'\');
  82.   if(FileExists(USettings[0]+'_settings.ini')) then
  83.   begin
  84.     Settings := TInifile.Create(USettings[0]+'_settings.ini');
  85.     USettings.Add(Settings.ReadString('main','NewsUrl',''));
  86.     USettings.Add(Settings.ReadString('main','UpdatesUrl',''));
  87.     USettings.Add(Settings.ReadString('main','LinkName','Lineage II'));
  88.     USettings.Add(Settings.ReadString('main','Installed','0'));
  89.     USettings.Add(Settings.ReadString('main','CreateBackup','0'));
  90.     USettings.Add(Settings.ReadString('main','AtRevision','0'));
  91.     USettings.Add(Settings.ReadString('main','RunCustom','system\l2.exe'));
  92.     Settings.Free;
  93.     Result:=True;
  94.   end
  95. end;
  96.  
  97. // ńîçäŕĺň ˙đëűę íŕ ńĺá˙ íŕ đŕáî÷ĺě ńňîëĺ
  98. procedure CreateDesktopIcon(ilname, WorkDir, desc : string);
  99. var
  100.   IObj : IUnknown;
  101.   SLink : IShellLink;
  102.   PFile : IPersistFile;
  103.   desk : string;
  104.   lnkpath : WideString;
  105. begin
  106.   if(ilname<>'') then begin
  107.   SetLength(desk, MAX_PATH+1);
  108.   SHGetSpecialFolderPath(0, PAnsiChar(desk),CSIDL_DESKTOPDIRECTORY,False);
  109.   lnkpath:= PChar(desk)+'\'+ilname+'.lnk';
  110.   IObj := CreateComObject(CLSID_ShellLink);
  111.   SLink := IObj as IShellLink;
  112.   PFile := IObj as IPersistFile;
  113.   with SLink do
  114.   begin
  115.     SetDescription(PChar(desc));
  116.     SetPath(PChar(Application.ExeName));
  117.     SetWorkingDirectory(PAnsiChar(WorkDir));
  118.   end;
  119.   PFile.Save(PWChar(WideString(lnkpath)), FALSE);
  120.   end;
  121. end;
  122.  
  123.  
  124.  
  125.  
  126. procedure TFMain.FormCreate(Sender: TObject);
  127. var
  128.   regn, tmpRegn, x, y: integer;
  129.   nullClr: TColor;
  130.   s_load: bool;
  131.   Settings: TInifile;
  132. begin
  133.   s_load:=LoadSettings();
  134.   if (s_load) then
  135.   begin
  136.     if (USettings[4]='0') then
  137.     begin
  138.       Settings := TInifile.Create(USettings[0]+'_settings.ini');
  139.       Settings.WriteString('main','Installed','1');
  140.       Settings.Free;
  141.       CreateDesktopIcon(USettings[3],USettings[0],'Play Lineage II');
  142.     end;
  143.   end
  144.   else
  145.   begin
  146.     FMain.Timer1.Enabled:=False;
  147.     ShowMessage('ERROR: _settings.ini Not Found !');
  148.     Application.Terminate; // .close çäĺńü íĺ ďđîéäĺň
  149.   end;
  150.  
  151.   // Íŕâîäčě ęđŕńčâîńňü íŕ ôîđěó ...
  152.   FMain.brush.bitmap:=Image1.picture.bitmap;
  153.   nullClr := image1.picture.Bitmap.Canvas.Pixels[0, 0];
  154.   regn := CreateRectRgn(0, 0, image1.picture.Graphic.Width,
  155.   image1.picture.Graphic.Height);
  156.   for x := 1 to image1.picture.Graphic.Width do
  157.     for y := 1 to image1.picture.Graphic.Height do
  158.       if image1.picture.Bitmap.Canvas.Pixels[x - 1, y - 1] = nullClr then
  159.       begin
  160.         tmpRegn := CreateRectRgn(x - 1, y - 1, x, y);
  161.         CombineRgn(regn, regn, tmpRegn, RGN_DIFF);
  162.         DeleteObject(tmpRegn);
  163.       end;
  164.   SetWindowRgn(FMain.handle, regn, true);
  165. end;
  166.  
  167. procedure TFMain.FormMouseDown(Sender: TObject; Button: TMouseButton;
  168.   Shift: TShiftState; X, Y: Integer);
  169. begin
  170.   Draging := true;
  171.   x0 := x;
  172.   y0 := y;
  173. end;
  174.  
  175. procedure TFMain.FormMouseUp(Sender: TObject; Button: TMouseButton;
  176.   Shift: TShiftState; X, Y: Integer);
  177. begin
  178.   Draging := false;
  179. end;
  180.  
  181. procedure TFMain.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  182.   Y: Integer);
  183. begin
  184.   if Draging = true then
  185.   begin
  186.     FMain.Left := FMain.Left + X - X0;
  187.     FMain.top := FMain.top + Y - Y0;
  188.   end;
  189. end;
  190.  
  191. procedure TFMain.ImgBtn4Click(Sender: TObject);
  192. begin
  193.   FMain.Close;
  194. end;
  195.  
  196. procedure TFMain.ImgBtn3Click(Sender: TObject);
  197. begin
  198.   FMain.Close;
  199. end;
  200.  
  201. procedure TFMain.ImgBtn2Click(Sender: TObject);
  202. var
  203.   WThread : GFilesThread;
  204. begin
  205.   Label3.Caption:='';
  206.   WThread:=GFilesThread.Create(True);
  207.   WThread.FreeOnTerminate:=True;
  208.   WThread.UpdatesUrl:=USettings[2];
  209.   WThread.ForceCheck:=True;
  210.   WThread.CreateBackup:=StrToInt(USettings[5]);
  211.   WThread.LocalRevision:=StrToInt(USettings[6]);
  212.   WThread.Resume;
  213. end;
  214.  
  215. procedure TFMain.ImgBtn1Click(Sender: TObject);
  216. begin
  217.   RunApp(USettings[0]+Usettings[7]);
  218.   FMain.Close;
  219. end;
  220.  
  221. procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction);
  222. begin
  223.  USettings.Free;
  224. end;
  225.  
  226. procedure TFMain.ImgBtn5Click(Sender: TObject);
  227. begin
  228.  FMain.Enabled:=False;
  229.  Form1.Show;
  230. end;
  231.  
  232. procedure TFMain.WebBrowser1NavigateComplete2(Sender: TObject;
  233.   const pDisp: IDispatch; var URL: OleVariant);
  234. begin
  235.  FMain.Panel1.Visible:=True;
  236.  FMain.Image2.Visible:=True;
  237.  FMain.Image3.Visible:=True;
  238.  FMain.Image4.Visible:=True;
  239. end;
  240.  
  241. procedure TFMain.Timer1Timer(Sender: TObject);
  242. var
  243.   WThread : GFilesThread;
  244. begin
  245.   FMain.Timer1.Enabled:=False;
  246.   WebBrowser1.Navigate(USettings[1]);
  247.   Label3.Caption:='';
  248.   WThread:=GFilesThread.Create(True);
  249.   WThread.FreeOnTerminate:=True;
  250.   WThread.UpdatesUrl:=USettings[2];
  251.   WThread.ForceCheck:=False;
  252.   WThread.CreateBackup:=StrToInt(USettings[5]);
  253.   WThread.LocalRevision:=StrToInt(USettings[6]);
  254.   WThread.Resume;
  255. end;
  256.  
  257. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement