Имеется Grid с логическим полем (CheckBox’ы).
Как контролировать логическое поле таблицы, при условии что состояние Checked=true может иметь только одна запись, т.е. при смене состояния одной записи в true, остальные должны быть переведены в false.
Grid с логическим полем – только одна запись в true.
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
просто пробежаться по всем остальным чекбоксам и установить им checked:=false;
/офф: а вообще - если выбирается только одно из всех, это больше похоже на RadioGroup, если таковое в гриде существует
/офф: а вообще - если выбирается только одно из всех, это больше похоже на RadioGroup, если таковое в гриде существует
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
как всегда когда речь идёт о несколько странной необходимости, хочется узнать а для чего?
может переделать чутка по иному удастся...


Проблема заключается в том, что у DBGridEh стоит свойство dgEditing = true – пользователь редактирует все поля во временной таблице. По высоте Grid отображает только 4 записи. Событие onClick срабатывает только у первых 4 - х записей, ниже 4 – ой события onClickне возникает. Я делал подобную задачу – там dgEditing = false, dgRowSelect=true, но пользователю доступно было изменять только поле с CheckBox’ами, - на любой записи возникало событие onClick, в котором я и очищал остальные CheckBox. А в данном случае я попал в тупик – в событиях таблицы BeforeEdit нельзя изменять другие записи – получается цикл. В каком еще событии отследить?
Нашел загвоздку: Таблица - компонент TMemTableEh, Grid - DBGridEh. В этой связке и есть проблема. OnClick не работает в ячейках не видимых при начальном открытии формы. При другой временной таблице и DBGridEh - работает, как и при TMemTableEh с другим Grid'ом - тоже работает. А эта связка нужна, т.к. DBGridEh - без него никуда, ни CheckBox'ов, ни сортировки по всем столбцам, ни Footer'a и т.д. TMemTableEh тоже нужен потому что поддерживает MasterSource - связь с другой таблицей по ключю. Выходит, косяк EhLib'a, блин как же теперь решить проблему?
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
в качестве мысли...
запретить редактирование, отследить клик, выполнить запрос на обновление выставив всем false и потом установить выделенному True...
запретить редактирование, отследить клик, выполнить запрос на обновление выставив всем false и потом установить выделенному True...
