Содержание материала

А для события OnExecute вот такой код:

Code:

procedure TfmMain.acRemoveExecute(Sender: TObject);

var

Info: BLUETOOTH_DEVICE_INFO;

Res: dword;

begin

Info := BLUETOOTH_DEVICE_INFO(ListView.Selected.Data^);

Res := BluetoothRemoveDevice(Info.Address);

if Res <> ERROR_SUCCESS then

MessageDlg('Device not found', mtError, [mbOK], 0);

TreeViewChange(TreeView, TreeView.Selected);

end;

 

Процедура выполняется достаточно долго, так что не думайте, что программа зависла.

Важно: Устройство удаляется из списка. Однако, если уже иметь адрес устройства, то можно получить о нем информацию.

Есть еще одно функция, которая связана с BluetoothRemoveDevice. Это:

BluetoothUpdateDeviceRecord - функция обновляет данные об устройстве в кэше.

Объявление функции:

Code:

function BluetoothUpdateDeviceRecord(

var pbtdi : BLUETOOTH_DEVICE_INFO): DWORD; stdcall;

 

Параметры:

pbtdu

Указатель на структуру BLUETOOTH_DEVICE_INFO. В ней должны быть заполнены поля:
dwSize размер структуры;
Address адрес устройства;
szName новое имя устройства.

Возвращаемые значения:

ERROR_SUCCESS

Функция выполнена успешно

ERROR_INVALID_PARAMETER

Указатель pbtdi=nil. (Для варианта в Delphi не реально, так как указатель мы получаем из структуры, передавая ее как var-параметр).

ERROR_REVISION_MISMATCH

Размер структуры в dwSize не правильный

Другие ошибки Win32

 

Попробуем использовать и ее. Схема стандартная: TAction к ActionList, TButton на Panel:

Свойство

Значение

Caption

Update

Name

acUpdate

 

Свойство

Значение

Action

acUpdate

Name

btUpdate

Код:

Code:

procedure TfmMain.acUpdateUpdate(Sender: TObject);

begin

TAction(Sender).Enabled := acProperty.Enabled;

end;

procedure TfmMain.acUpdateExecute(Sender: TObject);

var

Info: BLUETOOTH_DEVICE_INFO;

Res: dword;

NewName: string;

begin

if InputQuery('Имя устройства', 'Новое имя', NewName) then begin

lstrcpyW(Info.szName, PWideChar(WideString(NewName)));

Res := BluetoothUpdateDeviceRecord(Info);

if Res <> ERROR_SUCCESS then RaiseLastOsError;

TreeViewChange(TreeView, TreeView.Selected);

end;

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить