Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Определяет наличие СОМ портов
Данная процедура позволяет определить наличие доступных СОМ-портов.
Список добавлятся в ComboBox. После этого можно выбирать нужный порт.
Зависимости: Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, ComCtrls
Автор: Михаил, mikhail.sazonov@niitp.ru, Москва
Copyright: Сазонов Михаил
Дата: 2 октября 2003 г.
***************************************************** }
unit SetComPort;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, dfsStatusBar, ExtCtrls, StdCtrls, ImgList, Buttons,
ToolWin;
type
TForm1 = class
(TForm)
StrNP: TRichEdit;
dfsStatusBar1: TdfsStatusBar;
ImageList1: TImageList;
CoolBar1: TCoolBar;
Panel1: TPanel;
LoadNP: TBitBtn;
Auto: TCheckBox;
SetRegim: TRadioGroup;
GroupBox1: TGroupBox;
ComPort: TComboBox;
BaudRate: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Parity: TComboBox;
ByteSize: TComboBox;
StopBits: TComboBox;
CloseItem: TBitBtn;
procedure
InquiryPort(Sender: TObject); {опрос существующих портов}
procedure
FormCreate(Sender: TObject);
procedure
FormClose(Sender: TObject; var
Action: TCloseAction);
procedure
CloseItemClick(Sender: TObject);
procedure
ComPortChange(Sender: TObject);
procedure
BaudRateChange(Sender: TObject);
procedure
ParityChange(Sender: TObject);
procedure
ByteSizeChange(Sender: TObject);
procedure
StopBitsChange(Sender: TObject);
procedure
SetRegimClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FHandl: THandle; {дескриптор порта}
DCB: TDCB; {ссылка на структуру настройки порта}
PortName: string
; {имя порта, для дальнейшей работы}
end
;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure
TForm1.InquiryPort(Sender: TObject);
var
i: integer;
begin
{опрос существующих портов}
for
i := 0 to
31 do
{цикл опроса}
begin
{пробуем получить дескриптор порта}
FHandl := CreateFile(PChar('COM' + IntToStr(i + 1)),
GENERIC_READ or
GENERIC_WRITE,
0,
nil
,
OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if
FHandl <> INVALID_HANDLE_VALUE then
{если порт есть то добавить в список}
ComPort.Items.Add('COM' + IntToStr(i + 1));
CloseHandle(FHandl); {закрыть дескриптор}
end
;
end
;
..........