?? syscfg.pas
字號:
unit SysCfg;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Spin, StdCtrls, Buttons,FileCtrl;
type
TSysCfgDlg = class(TForm)
btnOk: TBitBtn;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
Label7: TLabel;
edLocalPort: TSpinEdit;
GroupBox3: TGroupBox;
Label5: TLabel;
edPath: TEdit;
btnBrowOICQPath: TSpeedButton;
cbAutoLaunch: TCheckBox;
Label3: TLabel;
edSrvAddr: TEdit;
Label4: TLabel;
edSrvPort: TSpinEdit;
Label1: TLabel;
edDBFPath: TEdit;
btnBrowDBFPath: TSpeedButton;
OpenDlg: TOpenDialog;
procedure btnBrowOICQPathClick(Sender: TObject);
procedure btnBrowDBFPathClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
class function Execute:Boolean;
class function LoadConfig(var path,dbfPath,SrvIp: String;var SrvPort, LocalPort: WORD;var AutoLaunch:Boolean):Boolean;
class function SaveConfig(path,dbfPath,SrvIp:String;SrvPort,LocalPort:WORD;AutoLaunch:Boolean):Boolean;
end;
const
IniPath='SpyCfg2.Dat';
var
GOICQPath,GDBFPath,GSrvIp:String;
GSrvPort,GLocalPort:Word;
GAutoLaunch:Boolean;
implementation
uses IpHdr;
{$R *.DFM}
//uses info, Main;
{ TSysCfgDlg }
class function TSysCfgDlg.Execute: Boolean;
begin
with TSysCfgDlg.Create(Application) do
begin
if(TSysCfgDlg.LoadConfig(GOICQPath,GDBFPath,GSrvIp,GSrvPort,GLocalPort,GAutoLaunch))then
begin
edPath.Text:=GOICQPath;
edDBFPath.Text:=GDBFPath;
edSrvAddr.Text:=GSrvIp;
edSrvPort.Value:=GSrvPort;
edLocalPort.Value:=GLocalPort;
cbAutoLaunch.Checked:=GAutoLaunch;
end;
Result:=(ShowModal=mrOk);
if(Result)then
begin
GSrvIp:=edSrvAddr.Text;
GSrvPort:=edSrvPort.Value;
GLocalPort:=edLocalPort.Value;
GOICQPath:=edPath.text;
GDBFPath:=edDBFPath.Text;
GAutoLaunch:=cbAutoLaunch.Checked;
TSysCfgDlg.SaveConfig(GOICQPath,GDBFPath,GSrvIp,GSrvPort,GLocalPort,GAutoLaunch);
end;
Free;
end;
end;
procedure TSysCfgDlg.btnBrowOICQPathClick(Sender: TObject);
var
path:string;
begin
if(SelectDirectory('請選擇OICQ安裝的路徑','',path))then
begin
edPath.Text:=path;
end;
end;
{$I-}
class function TSysCfgDlg.LoadConfig(var path,dbfPath,SrvIp: String;
var SrvPort, LocalPort: WORD;var AutoLaunch:Boolean): Boolean;
var
f:TextFile;
s:string;
begin
if(not FileExists(IniPath))then
begin
Result:=False;
Exit;
end;
AssignFile(f,IniPath);
Reset(f);
try
if(not eof(f))then ReadLn(f,path);
if(not eof(f))then ReadLn(f,dbfPath);
if(not eof(f))then ReadLn(f,s);
SrvIp:=s;
if(not eof(f))then ReadLn(f,s);
SrvPort:=StrToInt(s);
if(not eof(f))then ReadLn(f,s);
LocalPort:=StrToInt(s);
if(not eof(f))then ReadLn(f,s);
AutoLaunch:=(s='T');
Result:=True;
except
Result:=False;
end;
CloseFile(f);
end;
{$I+}
class function TSysCfgDlg.SaveConfig(path,dbfPath,SrvIp: String;
SrvPort, LocalPort: WORD;AutoLaunch:Boolean): Boolean;
var
f:TextFile;
begin
AssignFile(f,ExtractFilePath(Application.ExeName)+IniPath);
Rewrite(f);
try
WriteLn(f,path);
WriteLn(f,dbfPath);
WriteLn(f,SrvIp);
WriteLn(f,IntToStr(SrvPort));
WriteLn(f,IntToStr(LocalPort));
if(AutoLaunch)then WriteLn(f,'T')
else WriteLn(f,'F');
Result:=True;
except
On e:Exception do
begin
Result:=False;
ShowMessage(E.Message);
end;
end;
CloseFile(f);
end;
procedure TSysCfgDlg.btnBrowDBFPathClick(Sender: TObject);
begin
if(OpenDlg.Execute)then
begin
edDBFPath.Text:=OpenDlg.FileName;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -