![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Определяет наличие СОМ портов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; .......... Программный код на Delphi, который определяет наличие портов COM и заполняет комбобокс их именами. Вот подробное описание кода: Интерфейс
Секция интерфейса объявляет модуль Определение формы
Определение формы (
Процедуры В форме объявлены несколько процедур:
Переменные Объявлены следующие переменные:
Имплементация
Секция реализации определяет процедуру В целом, этот код appears to be designed to provide a simple way to determine the presence of COM ports on a Windows system and populate a dropdown list with their names. Данная статья описывает процедуру определения наличия доступных СОМ-портов и добавления их в список в ComboBox. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |