Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 19 апр 2024, 05:24

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 02 ноя 2022, 08:02 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
Грид с установленным gioShowRowselCheckboxesEh в TDBGridEh.IndicatorOptions:
Вложение:
2022-11-02_104922.png
2022-11-02_104922.png [ 12.62 KiB | Просмотров: 1067 ]

Подскажите, пожалуйста, как убрать чекбоксы для определенных записей (чтобы пользователь не мог их выбрать/чекнуть)?
Или сделать такие чекбоксы недоступными/disabled?
Или еще какие варианты?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 03 ноя 2022, 11:58 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
Вложение:
selcheck.gif
selcheck.gif [ 229.14 KiB | Просмотров: 1042 ]

Что-то типа такого?
Без правки исходников у меня не получилось. Пришлось внедриться и в отрисовку и в установку чекбоксов. Вообще, жаль что не хватает штатных возможностей по управлению доступным состоянием/видимостью и кнопок (editbutton) и чекбоксов...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 03 ноя 2022, 12:16 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
Да-да, именно такое поведение и хотелось бы получить. А вот исходники не хотелось бы трогать(
Может разработчик все-таки что подскажет?..


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 03 ноя 2022, 13:20 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
rlc писал(а):
А вот исходники не хотелось бы трогать(

Это да. Но у меня уже столько изменений, что я так и застрял на какой-то 8 версии, так и не смог перейти даже на 9...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 04 ноя 2022, 01:20 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

В текущей версии библиотеки (10.2) нет возможности запретить выделение определенных записей.
Сейчас рассматриваем варианты добавления такой возможности в следующую версию.
Вы можете описать реальные примеры, когда это может понадобиться. На основе каких признаков вы решаете, что выбор записи должен быть не доступен?
Предполагаю, что на основе каких-то значений в текущей строке DataSet’а.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 04 ноя 2022, 08:46 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
EhLibSupport писал(а):
Добрый день.

В текущей версии библиотеки (10.2) нет возможности запретить выделение определенных записей.
Сейчас рассматриваем варианты добавления такой возможности в следующую версию.
Вы можете описать реальные примеры, когда это может понадобиться. На основе каких признаков вы решаете, что выбор записи должен быть не доступен?
Предполагаю, что на основе каких-то значений в текущей строке DataSet’а.

Добрый день!
Реальный пример. Есть список контрагентов, который надо показать в гриде. Но некоторые контрагенты могут иметь установленный признак НедоступенДляОбработки (поле "excluded" в БД установлено в True). В гриде такой контрагент должен показываться, но его не должно быть возможно выделить для каких-либо последующих действий со списком выделенных контрагентов. Надеюсь, доступно объяснил.
Был бы весьма признателен, если добавите такую возможность в следующую версию. Спасибо!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 08 ноя 2022, 03:15 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

В EhLib.VCL 11.0 Beta Build 11.0.007 добавлено событие TDBGridEh.OnCanUserSelectRow.

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  DBGridEh1.OnCanUserSelectRow := CanUserSelectCurrentRow;
end;

procedure TForm1.CanUserSelectCurrentRow(Grid: TCustomDBGridEh;
  var CanSelectRow: Boolean);
begin
  if MemTableEh1.FieldByName('Continent').AsString = 'North America' then
    CanSelectRow := False;
end;


Проверьте, пожалуйста.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 09 ноя 2022, 05:44 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
EhLibSupport писал(а):
Проверьте, пожалуйста.

Еще бы знать, как скачать эту бету)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 09 ноя 2022, 07:29 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

EhLib.VCL 11.0 beta is available for download
https://forum.ehlib.com/ru/viewtopic.php?f=3&t=3268

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Как убрать/дизейбл чекбоксы?
СообщениеДобавлено: 10 ноя 2022, 05:40 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
EhLibSupport писал(а):
Проверьте, пожалуйста.

Работает!


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB