скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Определяет наличие СОМ портов



Автор: Михаил

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

..........





Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook