hxClientApp.pas
上传用户:youjie821
上传日期:2013-01-27
资源大小:459k
文件大小:4k
源码类别:

PlugIns编程

开发平台:

Delphi

  1. unit hxClientApp;
  2. interface
  3. uses
  4.   hxUpdate, ComCtrls, IniFiles, SysUtils;
  5. type
  6.   TConnectType = (ctDirect, ctProxy);
  7.   ThxClientSettings = class(TObject)
  8.   private
  9.     FUseProxy: Boolean;
  10.     FServerPort: Integer;
  11.     FProxyPort: Integer;
  12.     FServerIP: string;
  13.     FProxyUser: string;
  14.     FIniFileName: string;
  15.     FProxyIP: string;
  16.     FProxyPass: string;
  17.     FServerUser: string;
  18.     FServerPass: string;
  19.     FConnectType: TConnectType;
  20.     procedure SaveSettings;
  21.     procedure LoadSettings;
  22.   public
  23.     constructor Create(IniFileName: string);
  24.     destructor Destroy; override;
  25.     property ConnectType: TConnectType read FConnectType write FConnectType;
  26.     property ServerIP: string read FServerIP write FServerIP;
  27.     property ServerPort: Integer read FServerPort write FServerPort;
  28.     property ServerUser: string read FServerUser write FServerUser;
  29.     property ServerPass: string read FServerPass write FServerPass;
  30.     property UseProxy: Boolean read FUseProxy write FUseProxy;
  31.     property ProxyIP: string read FProxyIP write FProxyIP;
  32.     property ProxyPort: Integer read FProxyPort write FProxyPort;
  33.     property ProxyUser: string read FProxyUser write FProxyUser;
  34.     property ProxyPass: string read FProxyPass write FProxyPass;
  35.   end;
  36.   ThxClientApp = class(TObject)
  37.   private
  38.     FUpdateClient: ThxUpdateClient;
  39.     FSettings: ThxClientSettings;
  40.   public
  41.     constructor Create(ProjectName: string);
  42.     destructor Destroy; override;
  43.     property UpdateClient: ThxUpdateClient read FUpdateClient;
  44.     property Settings: ThxClientSettings read FSettings;
  45.   end;
  46.   function GetClientApp: ThxClientApp;
  47.   
  48. var
  49.   G_ClientApp: ThxClientApp = nil;
  50. implementation
  51. function GetClientApp: ThxClientApp;
  52. begin
  53.   if not Assigned(G_ClientApp) then
  54.     raise Exception.Create('无法获取ClientApp,类尚未创建!');
  55.   Result:= G_ClientApp;
  56. end;
  57. { ThxClientApp }
  58. constructor ThxClientApp.Create(ProjectName: string);
  59. begin
  60.   FSettings:= ThxClientSettings.Create(ExtractFilePath(ParamStr(0)) + 'Client.ini');
  61.   with FSettings do
  62.   begin
  63.     FUpdateClient:= ThxUpdateClient.Create(ProjectName);
  64.     with FUpdateClient.ProxyInfo do
  65.     begin
  66.       Enabled:= UseProxy;
  67.       IP:= ProxyIP;
  68.       Port:= ProxyPort;
  69.       Username:= ProxyUser;
  70.       Password:= ProxyPass;
  71.     end;
  72.   end;
  73. end;
  74. destructor ThxClientApp.Destroy;
  75. begin
  76.   FUpdateClient.Destroy;
  77.   FSettings.Free;
  78.   inherited Destroy;
  79. end;
  80. { ThxClientSettings }
  81. constructor ThxClientSettings.Create(IniFileName: string);
  82. begin
  83.   FIniFileName:= IniFileName;
  84.   LoadSettings;
  85. end;
  86. destructor ThxClientSettings.Destroy;
  87. begin
  88.   SaveSettings;
  89.   inherited Destroy;
  90. end;
  91. procedure ThxClientSettings.LoadSettings;
  92. var
  93.   Ini: TIniFile;
  94. begin
  95.   Ini:= TIniFile.Create(FIniFileName);
  96.   try
  97.     FConnectType:= TConnectType(Ini.ReadInteger('Server', 'ConnectType', 0));
  98.     FServerIP:= Ini.ReadString('Server', 'Address', '');
  99.     FServerPort:= Ini.ReadInteger('Server', 'Port', 9901);
  100.     FServerUser:= Ini.ReadString('Server', 'Username', '');
  101.     FServerPass:= Ini.ReadString('Server', 'Password', '');
  102.     FUseProxy:= Ini.ReadBool('Server', 'UseProxy', False);
  103.     FProxyIP:= Ini.ReadString('Server', 'ProxyIP', '');
  104.     FProxyPort:= Ini.ReadInteger('Server', 'ProxyPort', 1080);
  105.     FProxyUser:= Ini.ReadString('Server', 'ProxyUser', '');
  106.     FProxyPass:= Ini.ReadString('Server', 'ProxyPass', '');
  107.   finally
  108.     Ini.Free;
  109.   end;
  110. end;
  111. procedure ThxClientSettings.SaveSettings;
  112. var
  113.   Ini: TIniFile;
  114. begin
  115.   Ini:= TIniFile.Create(FIniFileName);
  116.   try
  117.     Ini.WriteInteger('Server', 'ConnectType', Integer(FConnectType));
  118.     Ini.WriteString('Server', 'Address', FServerIP);
  119.     Ini.WriteInteger('Server', 'Port', FServerPort);
  120.     Ini.WriteString('Server', 'Username', FServerUser);
  121.     Ini.WriteString('Server', 'Password', FServerPass);
  122.     Ini.WriteBool('Server', 'UseProxy', FUseProxy);
  123.     Ini.WriteString('Server', 'ProxyIP', FProxyIP);
  124.     Ini.WriteInteger('Server', 'ProxyPort', FProxyPort);
  125.     Ini.WriteString('Server', 'ProxyUser', FProxyUser);
  126.     Ini.WriteString('Server', 'ProxyPass', FProxyPass);
  127.   finally
  128.     Ini.Free;
  129.   end;
  130. end;
  131. end.