Как отключить нажатие кнопки, если в ListView не выбран элемент

Добавил событие для ListView OnSelectItem, однако после первого выбора элемента, если кликнуть на пустое место, кнопка уже не отключается. введите сюда описание изображения

Изначально доступность кнопки выставлена на false. В обработчик события на фото(реагирует на нажатие по элементу) включается доступность кнопки. Однако при отмене выбора элемента, доступность кнопки не уходит в состояние false по очевидным причинам. Как можно всегда отключать кнопку, если не выбрано ни одного элемента в контроле ListView


Ответы (1 шт):

Автор решения: IvanDx

Решение было найдено. Действие кнопки требуется занести в ActionList и назначить соответствующий обработчик .Execute в разделе events. После этого добавляем обработчик события OnUpdate для нашего ActionList, в котором прописываем следующую конструкцию: <название действия в actionlist>.enabled:=(listview.selected<>nil). Ниже приведен пример

procedure TFMain.ActShowReportFormExecute(Sender: TObject);
begin
  FReportFilm.show;
  FMain.Enabled:=false;
end;

procedure TFMain.ActionList1Update(Action: TBasicAction; var Handled: Boolean);
begin
  ActShowReportForm.Enabled:=(ListViewMain.Selected<>nil);
end;
→ Ссылка