?? configfrm.pas
字號(hào):
{
=====================================================================
* 軟件名稱:PC與數(shù)控機(jī)床通信程序
* 單元名稱:配置文件
* 單元作者:彭為 (pwzyp@fjsm.net)
* 備 注:用到了線程進(jìn)行發(fā)送
* 開發(fā)平臺(tái):PWin2000 SERVER + Delphi 7.0
* 兼容測(cè)試:PWin9X/2000/XP + Delphi 6/7
* 采用控件:Raize 3.12 ,SPCOMM
* 修改記錄:V1.0 by pengwei
=====================================================================
}
unit ConfigFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, RzButton, Mainfrm, Grids, ValEdit,
inifiles, RzShellDialogs, Mask, RzEdit;
type
TConfig = class(TForm)
Label1: TLabel;
RzBitBtn1: TRzBitBtn;
cboComm: TComboBox;
Label2: TLabel;
edtPath: TRzEdit;
SelectFolder: TRzSelectFolderDialog;
RzBitBtn2: TRzBitBtn;
Label3: TLabel;
edtDelay: TRzNumericEdit;
Label4: TLabel;
vlEdt: TValueListEditor;
Label5: TLabel;
Bevel1: TBevel;
Bevel2: TBevel;
RzBitBtn3: TRzBitBtn;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure RzBitBtn1Click(Sender: TObject);
procedure RzBitBtn2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RzBitBtn3Click(Sender: TObject);
private
FChannelList: TStrings;
FInifile: TIniFile;
function GetCommname: string;
function GetReceivedPath: string;
procedure SetCommname(Commname: string);
procedure SaveConfigInfo;
procedure SetReceivedPath(const Value: string);
function GetDelayTime: Integer;
procedure SetDelayTime(const Value: Integer);
function GetChannelList: TStrings;
{ Private declarations }
public
property ChannelList: TStrings read GetChannelList;
property CommName: string read GetCommname write SetCommname;
property ReceivedPath: string read GetReceivedPath write SetReceivedPath;
property Delaytime: Integer read GetDelayTime write SetDelayTime;
procedure ShowForm;
{ Public declarations }
end;
var
Config: TConfig;
implementation
uses Include;
{$R *.dfm}
procedure TConfig.FormCreate(Sender: TObject);
begin
Caption := sConfigCaption;
FInifile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Comm.ini');
FChannelList := TStringList.Create;
end;
procedure TConfig.ShowForm;
begin
if Config = nil then
Config := TConfig.Create(Self);
Config.ShowModal;
end;
function TConfig.GetCommname: string;
begin
Result := FInifile.ReadString('CONFIG', 'Comm', 'COM1');
end;
procedure TConfig.SetCommname(Commname: string);
begin
FInifile.WriteString('CONFIG', 'Comm', Trim(Commname));
end;
procedure TConfig.FormDestroy(Sender: TObject);
begin
FInifile.Free;
FChannelList.Free;
end;
procedure TConfig.SaveConfigInfo;
var
I: Integer;
temp: string;
begin
CommName := cboComm.Text;
ReceivedPath := Trim(edtPath.Text);
Delaytime := StrToInt(edtDelay.Text);
//save valueedit info
for i := 1 to MaxChannels do
begin
Temp := vlEdt.Values[intTostr(i)];
if Trim(Temp) <> '' then
FInifile.WriteString('CONFIG', 'Machine' + intTostr(i), Temp)
else
begin
if FInifile.ReadString('CONFIG', 'Machine' + intTostr(i), '') <> '' then
FInifile.DeleteKey('CONFIG', 'Machine' + intTostr(i));
end;
end;
end;
procedure TConfig.RzBitBtn1Click(Sender: TObject);
begin
SaveConfigInfo;
Close;
end;
function TConfig.GetReceivedPath: string;
begin
Result := FInifile.ReadString('CONFIG', 'ReceivedPath',
ExtractFilePath(ParamStr(0)));
end;
procedure TConfig.SetReceivedPath(const Value: string);
begin
FInifile.WriteString('CONFIG', 'ReceivedPath', Trim(value));
end;
procedure TConfig.RzBitBtn2Click(Sender: TObject);
begin
SelectFolder.SelectedPathName := ReceivedPath;
if SelectFolder.Execute then
begin
if Trim(SelectFolder.SelectedPathName) <> '' then
edtPath.Text := SelectFolder.SelectedPathName;
end;
end;
procedure TConfig.FormShow(Sender: TObject);
var
i: Integer;
temp: string;
begin
cboComm.ItemIndex := cboComm.Items.IndexOf(CommName);
edtPath.Text := ReceivedPath;
edtDelay.Value := Delaytime;
//init valueedit
vlEdt.Strings.Clear; //初始化輸入框
vlEdt.TitleCaptions.Clear;
vlEdt.TitleCaptions.Add(sKey);
vlEdt.TitleCaptions.Add(sValue);
for i := 1 to MaxChannels do
vledt.InsertRow(intTostr(i), '', true);
for i := 1 to MaxChannels do
begin
Temp := FInifile.ReadString('CONFIG', 'Machine' + intTostr(i), '');
if Temp <> '' then
vlEdt.Values[intTostr(i)] := Temp;
end;
end;
function TConfig.GetDelayTime: Integer;
begin
Result := FInifile.ReadInteger('CONFIG', 'DelayTime', 50);
end;
procedure TConfig.SetDelayTime(const Value: Integer);
begin
FInifile.WriteInteger('CONFIG', 'DelayTime', value);
;
end;
procedure TConfig.RzBitBtn3Click(Sender: TObject);
begin
Close;
end;
function TConfig.GetChannelList: TStrings;
var
I: Integer;
begin
FChannelList.Clear;
for i := 1 to MaxChannels do
begin
FChannelList.Add(intTostr(i) + '--' + FInifile.ReadString('CONFIG', 'Machine'
+
intTostr(i),
'未命名設(shè)備'))
end;
Result := FChannelList;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -