Delphi World - Определяет наличие СОМ портов
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Определяет наличие СОМ портов

Автор: Михаил
WEB-сайт: http://delphibase.endimus.com

{ **** 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;

..........
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования