⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configform.pas

📁 求是科技出版的《Delphi串口通信工程开发实例导航》所有的源代码。是一本很好的书。拿出来与大家共享。
💻 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 + -