| 1 | unit USerialPortOptions;
|
|---|
| 2 |
|
|---|
| 3 | {$mode objfpc}{$H+}
|
|---|
| 4 |
|
|---|
| 5 | interface
|
|---|
| 6 |
|
|---|
| 7 | uses
|
|---|
| 8 | Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
|
|---|
| 9 | StdCtrls, ExtCtrls, USerialPort;
|
|---|
| 10 |
|
|---|
| 11 | type
|
|---|
| 12 |
|
|---|
| 13 | { TSerialPortOptions }
|
|---|
| 14 |
|
|---|
| 15 | TSerialPortOptions = class(TForm)
|
|---|
| 16 | Bevel1: TBevel;
|
|---|
| 17 | ButtonSet: TButton;
|
|---|
| 18 | ButtonCancel: TButton;
|
|---|
| 19 | CheckBoxDTR: TCheckBox;
|
|---|
| 20 | Label7: TLabel;
|
|---|
| 21 | CheckBoxRTS: TCheckBox;
|
|---|
| 22 | ComboBox1: TComboBox;
|
|---|
| 23 | ComboBox2: TComboBox;
|
|---|
| 24 | ComboBox3: TComboBox;
|
|---|
| 25 | ComboBox4: TComboBox;
|
|---|
| 26 | ComboBox5: TComboBox;
|
|---|
| 27 | ComboBox6: TComboBox;
|
|---|
| 28 | Label1: TLabel;
|
|---|
| 29 | Label2: TLabel;
|
|---|
| 30 | Label3: TLabel;
|
|---|
| 31 | Label4: TLabel;
|
|---|
| 32 | Label5: TLabel;
|
|---|
| 33 | Label6: TLabel;
|
|---|
| 34 | procedure ButtonSetClick(Sender: TObject);
|
|---|
| 35 | procedure ButtonCancelClick(Sender: TObject);
|
|---|
| 36 | procedure ComboBox3Change(Sender: TObject);
|
|---|
| 37 | procedure FormShow(Sender: TObject);
|
|---|
| 38 | private
|
|---|
| 39 | { private declarations }
|
|---|
| 40 | public
|
|---|
| 41 | SerialPort: TSerialPort;
|
|---|
| 42 | end;
|
|---|
| 43 |
|
|---|
| 44 | var
|
|---|
| 45 | SerialPortOptions: TSerialPortOptions;
|
|---|
| 46 |
|
|---|
| 47 | implementation
|
|---|
| 48 |
|
|---|
| 49 | { TSerialPortOptions }
|
|---|
| 50 |
|
|---|
| 51 | procedure TSerialPortOptions.ButtonSetClick(Sender: TObject);
|
|---|
| 52 | begin
|
|---|
| 53 | with SerialPort do begin
|
|---|
| 54 | Active := False;
|
|---|
| 55 | if ComboBox1.Items.Count = 0 then Name := ''
|
|---|
| 56 | else Name := ComboBox1.Items[ComboBox1.ItemIndex];
|
|---|
| 57 | BaudRate := TBaudRate(ComboBox2.ItemIndex);
|
|---|
| 58 | Parity := TParity(ComboBox3.ItemIndex);
|
|---|
| 59 | DataBits := ComboBox4.ItemIndex + 4;
|
|---|
| 60 | StopBits := TStopBits(ComboBox5.ItemIndex);
|
|---|
| 61 | FlowControl := TFlowControl(ComboBox6.ItemIndex);
|
|---|
| 62 | RTS := CheckBoxRTS.Checked;
|
|---|
| 63 | DTR := CheckBoxDTR.Checked;
|
|---|
| 64 | Active := True;
|
|---|
| 65 | end;
|
|---|
| 66 | Close;
|
|---|
| 67 | end;
|
|---|
| 68 |
|
|---|
| 69 | procedure TSerialPortOptions.ButtonCancelClick(Sender: TObject);
|
|---|
| 70 | begin
|
|---|
| 71 | Close;
|
|---|
| 72 | end;
|
|---|
| 73 |
|
|---|
| 74 | procedure TSerialPortOptions.ComboBox3Change(Sender: TObject);
|
|---|
| 75 | begin
|
|---|
| 76 |
|
|---|
| 77 | end;
|
|---|
| 78 |
|
|---|
| 79 | procedure TSerialPortOptions.FormShow(Sender: TObject);
|
|---|
| 80 | var
|
|---|
| 81 | I: Integer;
|
|---|
| 82 | TestPort: TSerialPort;
|
|---|
| 83 | // Index: Integer;
|
|---|
| 84 | begin
|
|---|
| 85 | SerialPort.Active := False;
|
|---|
| 86 | TestPort := TSerialPort.Create;
|
|---|
| 87 | ComboBox1.Clear;
|
|---|
| 88 | for I := 1 to 255 do with TestPort do begin
|
|---|
| 89 | Name := 'COM' + IntToStr(I);
|
|---|
| 90 | Active := True;
|
|---|
| 91 | if Active or ((Name = SerialPort.Name) and (SerialPort.Active)) then begin
|
|---|
| 92 | ComboBox1.AddItem('COM' + IntToStr(I), TObject(I));
|
|---|
| 93 | if Name = SerialPort.Name then
|
|---|
| 94 | ComboBox1.ItemIndex := ComboBox1.Items.Count - 1;
|
|---|
| 95 | end;
|
|---|
| 96 | Active := False;
|
|---|
| 97 | end;
|
|---|
| 98 | TestPort.Free;
|
|---|
| 99 | SerialPort.Active := True;
|
|---|
| 100 |
|
|---|
| 101 | if (ComboBox1.Items.Count > 0) and (ComboBox1.ItemIndex = -1) then
|
|---|
| 102 | ComboBox1.ItemIndex := 0;
|
|---|
| 103 |
|
|---|
| 104 | with SerialPort do begin
|
|---|
| 105 | ComboBox2.ItemIndex := Integer(BaudRate);
|
|---|
| 106 | ComboBox3.ItemIndex := Integer(Parity);
|
|---|
| 107 | ComboBox4.ItemIndex := Integer(DataBits) - 4;
|
|---|
| 108 | ComboBox5.ItemIndex := Integer(StopBits);
|
|---|
| 109 | ComboBox6.ItemIndex := Integer(FlowControl);
|
|---|
| 110 | CheckBoxRTS.Checked := RTS;
|
|---|
| 111 | CheckBoxDTR.Checked := DTR;
|
|---|
| 112 | end;
|
|---|
| 113 | end;
|
|---|
| 114 |
|
|---|
| 115 | initialization
|
|---|
| 116 | {$I USerialPortOptions.lrs}
|
|---|
| 117 |
|
|---|
| 118 | end.
|
|---|
| 119 |
|
|---|