В обработчике события OnUpdate для acEnable напишем вот такой код:
Code: |
procedure TfmMain.acEnableUpdate(Sender: TObject); var SelectedNode: TTreeNode; SelectedItem: TListItem; begin SelectedNode := TreeView.Selected; SelectedItem := ListView.Selected;
TAction(Sender).Enabled := Assigned(SelectedNode) and Assigned(SelectedItem) and (SelectedNode.ImageIndex = -2); end; |
А в обработчике OnExecute для acEnable вот такой код:
Code: |
procedure TfmMain.acEnableExecute(Sender: TObject); var GUID: TGUID; begin GUID := StringToGUID(ListView.Selected.Caption); BluetoothSetServiceState(TreeView.Selected.Parent.ImageIndex, BLUETOOTH_DEVICE_INFO(TreeView.Selected.Data^), GUID, BLUETOOTH_SERVICE_DISABLE); end; |
Важно: После нажатия на кнопку btEnable сервис будет удален из системы. Включить его можно будет через окно свойств устройства Bluetooth.
Как определять отключенные сервисы рассмотрим в серии про передачу данных через Bluetooth.
Удаление устройств
Для удаления устройств используется функция:
BluetoothRemoveDevice - функция удаляет авторизацию между компьютером и устройством Bluetooth. Так же очищает кэш-записи об этом устройстве.
Объявление функции:
Code: |
function BluetoothRemoveDevice( var pAddress : BLUETOOTH_ADDRESS): DWORD; stdcall; |
Параметры:
hAddress |
Адрес устройства, которое удаляется. |
Возвращаемые значения:
ERROR_SUCCESS |
устройство удалено |
ERROR_NOT_FOUND |
устройство не найдено |
Давайте попробуем. Добавим в ActionList TAction со следующими свойствами:
Свойство |
Значение |
Caption |
Remove |
Name |
acRemove |
И на Panel кнопку TButton со свойствами:
Свойство |
Значение |
Action |
acRemove |
Name |
btRemove |
В обработчике OnUpdate для acRemove напишем следующий код:
Code: |
procedure TfmMain.acRemoveUpdate(Sender: TObject); begin TAction(Sender).Enabled := acProperty.Enabled; end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!