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 г. ***************************************************** } unitSetComPort; 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
; ..........