📄 configform.pas
字号:
unit ConfigForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls;
type
TfrmConfig = class(TForm)
Panel1: TPanel;
bbnSave: TBitBtn;
bbnExit: TBitBtn;
groupbox1: TGroupBox;
cbxPortNum: TComboBox;
cbxSpeedRate: TComboBox;
GroupBox2: TGroupBox;
cbxStopBit: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
cbxDataBit: TComboBox;
cbxCheckBit: TComboBox;
procedure bbnSaveClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
procedure FillFrm();
procedure ConfigControl();
public
{ Public declarations }
class procedure ReadConfig();
class procedure WriteConfig();
end;
var
frmConfig: TfrmConfig;
implementation
uses
inifiles,FunctionUnit;
{$R *.DFM}
{ TfrmConfig }
procedure TfrmConfig.FillFrm;
begin
//===============填充串口数============
with cbxPortNum.Items do
begin
Clear;
Add('COM1');
Add('COM2');
Add('COM3');
Add('COM4');
end;
//===============填充传输率=============
with cbxSpeedRate.Items do
begin
Clear;
Add('110');
Add('300');
Add('600');
Add('1200');
Add('2400');
Add('4800');
Add('9600');
Add('14400');
Add('19200');
Add('28800');
Add('38400');
Add('56000');
Add('115200');
Add('12800');
Add('25600');
Add('38400');
end;
//===============填充数据位=================
with cbxDataBit.Items do
begin
Add('4');
Add('5');
Add('6');
Add('7');
Add('8');
end;
//===============填充校验位=================
with cbxCheckBit.Items do
begin
Add('Even');
Add('Odd');
Add('None');
Add('Mark');
Add('Space');
end;
//===============填充停止位=================
with cbxStopBit.Items do
begin
Add('1');
Add('1.5');
Add('2');
end;
end;
class procedure TfrmConfig.ReadConfig;
var
mIni:TIniFile;
begin
mIni := TIniFile.Create('CardConfig.ini');
try
Port := mIni.ReadString('comport','Port','COM1');
Speed := mIni.ReadString('comport','Speed','9600');
DataBit := mIni.ReadString('comport','DataBit','8');
CheckBit := mIni.ReadString('comport','CheckBit','None');
StopBit := mIni.ReadString('comport','StopBit','1');
finally
mIni.Free;
end;
end;
class procedure TfrmConfig.WriteConfig;
var
mIni:TIniFile;
begin
mIni := TIniFile.Create('CardConfig.ini');
try
mIni.WriteString('comport','Port',Port);
mIni.WriteString('comport','Speed',Speed);
mIni.WriteString('comport','DataBit',DataBit);
mIni.WriteString('comport','CheckBit',CheckBit);
mIni.WriteString('comport','StopBit',StopBit);
finally
mIni.Free;
end;
end;
procedure TfrmConfig.bbnSaveClick(Sender: TObject);
begin
Port := cbxPortNum.Text;
Speed:=cbxSpeedRate.Text;
DataBit:=cbxDataBit.Text;
CheckBit:=cbxCheckBit.Text;
StopBit:=cbxStopBit.Text;
//写入配置文件
WriteConfig();
//关闭对话框
ModalResult := mrOk;
end;
procedure TfrmConfig.ConfigControl;
var
i:integer;
begin
//===============匹配串口数============
cbxPortNum.ItemIndex := -1;
cbxPortNum.Text := '';
for i:=0 to cbxPortNum.Items.Count-1 do
begin
if cbxPortNum.Items[i] = Port then
begin
cbxPortNum.ItemIndex := i;
Break;
end;
end;
//===============匹配传输率=============
cbxSpeedRate.ItemIndex := -1;
cbxSpeedRate.Text := '';
for i:=0 to cbxSpeedRate.Items.Count-1 do
begin
if cbxSpeedRate.Items[i] = Speed then
begin
cbxSpeedRate.ItemIndex := i;
Break;
end;
end;
//===============匹配数据位=================
cbxDataBit.ItemIndex := -1;
cbxDataBit.Text := '';
for i:=0 to cbxDataBit.Items.Count-1 do
begin
if cbxDataBit.Items[i] = DataBit then
begin
cbxDataBit.ItemIndex := i;
Break;
end;
end;
//===============匹配校验位=================
cbxCheckBit.ItemIndex := -1;
cbxCheckBit.Text := '';
for i:=0 to cbxCheckBit.Items.Count-1 do
begin
if cbxCheckBit.Items[i] = CheckBit then
begin
cbxCheckBit.ItemIndex := i;
Break;
end;
end;
//===============匹配停止位=================
cbxStopBit.ItemIndex := -1;
cbxStopBit.Text := '';
for i:=0 to cbxStopBit.Items.Count-1 do
begin
if cbxStopBit.Items[i] = StopBit then
begin
cbxStopBit.ItemIndex := i;
Break;
end;
end;
end;
procedure TfrmConfig.FormShow(Sender: TObject);
begin
FillFrm;
ConfigControl;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -