Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2025, 14:24   #1
Elijah777
 
Регистрация: 17.08.2012
Сообщений: 4
По умолчанию Нужна помощь по TBluetooth

Мне нужно написать приложение, отслеживающее подключение устройства по Bluetooth.

Порядок такой:

1. Получение списка Bluetooth-устройств, типа EnumBluetoothDevices.
2. Выбор и запоминание нужного устройства.
3. Слушание событий этого устройства, типа OnDeviceConnect/OnDeviceDisconnect.

Есть компонент TBluetooth, но непонятно как с ним работать. Что можете посоветовать? Заранее спасибо.
Elijah777 вне форума Ответить с цитированием
Старый 10.04.2025, 12:37   #2
dimagl90
Новичок
Джуниор
 
Регистрация: 09.04.2025
Сообщений: 3
По умолчанию

Elijah777,
Код:
unit Unit1;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
  Vcl.StdCtrls, FMX.Bluetooth, FMX.Bluetooth.Components;

type
  TForm1 = class(TForm)
    BTPanel: TBluetooth;
    DeviceListBox: TListBox;
    ConnectButton: TButton;
    DisconnectButton: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ConnectButtonClick(Sender: TObject);
    procedure DisconnectButtonClick(Sender: TObject);
    procedure BTPanelDeviceConnected(Sender: TObject; const ADevice: IBluetoothDevice);
    procedure BTPanelDeviceDisconnected(Sender: TObject; const ADevice: IBluetoothDevice);
  private
    FSelectedDevice: IBluetoothDevice;
    procedure UpdateDeviceList;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  UpdateDeviceList;

  // Подписка на события
  BTPanel.OnDeviceConnected := BTPanelDeviceConnected;
  BTPanel.OnDeviceDisconnected := BTPanelDeviceDisconnected;
end;

procedure TForm1.UpdateDeviceList;
var
  Devices: TArray<IBluetoothDevice>;
  Device: IBluetoothDevice;
begin
  DeviceListBox.Clear;
  Devices := BTPanel.BluetoothDevices;

  for Device in Devices do
    DeviceListBox.Items.Add(Device.DeviceName);
end;

procedure TForm1.ConnectButtonClick(Sender: TObject);
var
  SelectedIndex: Integer;
begin
  SelectedIndex := DeviceListBox.ItemIndex;
  if SelectedIndex >= 0 then
  begin
    FSelectedDevice := BTPanel.BluetoothDevices[SelectedIndex];
    BTPanel.Connect(FSelectedDevice);
  end
  else
    ShowMessage('Выберите устройство для подключения.');
end;

procedure TForm1.DisconnectButtonClick(Sender: TObject);
begin
  if Assigned(FSelectedDevice) then
  begin
    BTPanel.Disconnect(FSelectedDevice);
    FSelectedDevice := nil; // Сбрасываем выбранное устройство
  end;
end;

procedure TForm1.BTPanelDeviceConnected(Sender: TObject; const ADevice: IBluetoothDevice);
begin
  ShowMessage('Подключено: ' + ADevice.DeviceName);
end;

procedure TForm1.BTPanelDeviceDisconnected(Sender: TObject; const ADevice: IBluetoothDevice);
begin
  ShowMessage('Отключено: ' + ADevice.DeviceName);
end;

end.
dimagl90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мне нужна помощь qbasic (мне нужна команда) саша1970 Помощь студентам 1 09.12.2020 11:00
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12