SysCfg.pas
上传用户:hbtcygglw
上传日期:2007-01-07
资源大小:281k
文件大小:4k
源码类别:

其他

开发平台:

Delphi

  1. unit SysCfg;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   Spin, StdCtrls, Buttons,FileCtrl;
  6. type
  7.   TSysCfgDlg = class(TForm)
  8.     btnOk: TBitBtn;
  9.     BitBtn2: TBitBtn;
  10.     GroupBox1: TGroupBox;
  11.     Label7: TLabel;
  12.     edLocalPort: TSpinEdit;
  13.     GroupBox3: TGroupBox;
  14.     Label5: TLabel;
  15.     edPath: TEdit;
  16.     btnBrowOICQPath: TSpeedButton;
  17.     cbAutoLaunch: TCheckBox;
  18.     Label3: TLabel;
  19.     edSrvAddr: TEdit;
  20.     Label4: TLabel;
  21.     edSrvPort: TSpinEdit;
  22.     Label1: TLabel;
  23.     edDBFPath: TEdit;
  24.     btnBrowDBFPath: TSpeedButton;
  25.     OpenDlg: TOpenDialog;
  26.     procedure btnBrowOICQPathClick(Sender: TObject);
  27.     procedure btnBrowDBFPathClick(Sender: TObject);
  28.   private
  29.     { Private declarations }
  30.   public
  31.     { Public declarations }
  32.     class function Execute:Boolean;
  33.     class function LoadConfig(var path,dbfPath,SrvIp: String;var SrvPort, LocalPort: WORD;var AutoLaunch:Boolean):Boolean;
  34.     class function SaveConfig(path,dbfPath,SrvIp:String;SrvPort,LocalPort:WORD;AutoLaunch:Boolean):Boolean;
  35.   end;
  36. const
  37. IniPath='SpyCfg2.Dat';
  38. var
  39. GOICQPath,GDBFPath,GSrvIp:String;
  40. GSrvPort,GLocalPort:Word;
  41. GAutoLaunch:Boolean;
  42. implementation
  43. uses IpHdr;
  44. {$R *.DFM}
  45. //uses info, Main;
  46. { TSysCfgDlg }
  47. class function TSysCfgDlg.Execute: Boolean;
  48. begin
  49. with TSysCfgDlg.Create(Application) do
  50.     begin
  51.     if(TSysCfgDlg.LoadConfig(GOICQPath,GDBFPath,GSrvIp,GSrvPort,GLocalPort,GAutoLaunch))then
  52.         begin
  53.         edPath.Text:=GOICQPath;
  54.         edDBFPath.Text:=GDBFPath;
  55.         edSrvAddr.Text:=GSrvIp;
  56.         edSrvPort.Value:=GSrvPort;
  57.         edLocalPort.Value:=GLocalPort;
  58.         cbAutoLaunch.Checked:=GAutoLaunch;
  59.         end;
  60.     Result:=(ShowModal=mrOk);
  61.     if(Result)then
  62.         begin
  63.         GSrvIp:=edSrvAddr.Text;
  64.         GSrvPort:=edSrvPort.Value;
  65.         GLocalPort:=edLocalPort.Value;
  66.         GOICQPath:=edPath.text;
  67.         GDBFPath:=edDBFPath.Text;
  68.         GAutoLaunch:=cbAutoLaunch.Checked;
  69.         TSysCfgDlg.SaveConfig(GOICQPath,GDBFPath,GSrvIp,GSrvPort,GLocalPort,GAutoLaunch);
  70.         end;
  71.     Free;
  72.     end;
  73. end;
  74. procedure TSysCfgDlg.btnBrowOICQPathClick(Sender: TObject);
  75. var
  76. path:string;
  77. begin
  78. if(SelectDirectory('请选择OICQ安装的路径','',path))then
  79.     begin
  80.     edPath.Text:=path;
  81.     end;
  82. end;
  83. {$I-}
  84. class function TSysCfgDlg.LoadConfig(var path,dbfPath,SrvIp: String;
  85.   var SrvPort, LocalPort: WORD;var AutoLaunch:Boolean): Boolean;
  86. var
  87. f:TextFile;
  88. s:string;
  89. begin
  90. if(not FileExists(IniPath))then
  91.     begin
  92.     Result:=False;
  93.     Exit;
  94.     end;
  95. AssignFile(f,IniPath);
  96. Reset(f);
  97. try
  98.     if(not eof(f))then ReadLn(f,path);
  99.     if(not eof(f))then ReadLn(f,dbfPath);
  100.     
  101.     if(not eof(f))then ReadLn(f,s);
  102.     SrvIp:=s;
  103.     if(not eof(f))then ReadLn(f,s);
  104.     SrvPort:=StrToInt(s);
  105.     if(not eof(f))then ReadLn(f,s);
  106.     LocalPort:=StrToInt(s);
  107.     if(not eof(f))then ReadLn(f,s);
  108.     AutoLaunch:=(s='T');
  109.     Result:=True;
  110. except
  111.     Result:=False;
  112.     end;
  113. CloseFile(f);
  114. end;
  115. {$I+}
  116. class function TSysCfgDlg.SaveConfig(path,dbfPath,SrvIp: String;
  117.   SrvPort, LocalPort: WORD;AutoLaunch:Boolean): Boolean;
  118. var
  119. f:TextFile;
  120. begin
  121. AssignFile(f,ExtractFilePath(Application.ExeName)+IniPath);
  122. Rewrite(f);
  123. try
  124.     WriteLn(f,path);
  125.     WriteLn(f,dbfPath);
  126.     WriteLn(f,SrvIp);
  127.     WriteLn(f,IntToStr(SrvPort));
  128.     WriteLn(f,IntToStr(LocalPort));
  129.     if(AutoLaunch)then WriteLn(f,'T')
  130.     else WriteLn(f,'F');
  131.     Result:=True;
  132. except
  133.     On e:Exception do
  134.         begin
  135.         Result:=False;
  136.         ShowMessage(E.Message);
  137.         end;
  138.     end;
  139. CloseFile(f);
  140. end;
  141. procedure TSysCfgDlg.btnBrowDBFPathClick(Sender: TObject);
  142. begin
  143. if(OpenDlg.Execute)then
  144.     begin
  145.     edDBFPath.Text:=OpenDlg.FileName;
  146.     end;
  147. end;
  148. end.