📄 configfrm.pas
字号:
{
=====================================================================
* 软件名称:PC与数控机床通信程序
* 单元名称:配置文件
* 单元作者:彭为 (pwzyp@fjsm.net)
* 备 注:用到了线程进行发送
* 开发平台:PWin2000 SERVER + Delphi 7.0
* 兼容测试: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),
'未命名设备'))
end;
Result := FChannelList;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -