Michael99 |
Отправлено: 30.01.2007, 14:57 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Имеется Grid с логическим полем (CheckBox’ы).
Как контролировать логическое поле таблицы, при условии что состояние Checked=true может иметь только одна запись, т.е. при смене состояния одной записи в true, остальные должны быть переведены в false.
|
|
nawok78 |
Отправлено: 30.01.2007, 16:41 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 115
|
Заведи переменную кидай туда номер строки Checked = true;
остальным убирай.
вернее убирать придется только старую строку .
CODE |
TCheckBox(StringGrid1->Objects[Column, CheckedRow])->Checked=false;
TCheckBox(StringGrid1->Objects[Column, Row])->Checked=true;
CheckedRow=Row;
|
что-то вроде этого
Отредактировано nawok78 — 30.01.2007, 16:47 |
|
Michael99 |
Отправлено: 31.01.2007, 06:10 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Проблема заключается в том, что у DBGridEh стоит свойство dgEditing = true — пользователь редактирует все поля во временной таблице. По высоте Grid отображает только 4 записи. Событие onClick срабатывает только у первых 4 — х записей, ниже 4 — ой события onClickне возникает. Я делал подобную задачу — там dgEditing = false, dgRowSelect=true, но пользователю доступно было изменять только поле с CheckBox’ами, — на любой записи возникало событие onClick, в котором я и очищал остальные CheckBox. А в данном случае я попал в тупик — в событиях таблицы BeforeEdit нельзя изменять другие записи — получается цикл. В каком еще событии отследить? |
|
Michael99 |
Отправлено: 31.01.2007, 07:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Нашел загвоздку: Таблица — компонент TMemTableEh, Grid — DBGridEh. В этой связке и есть проблема. OnClick не работает в ячейках не видимых при начальном открытии формы. При другой временной таблице и DBGridEh — работает, как и при TMemTableEh с другим Grid'ом — тоже работает. А эта связка нужна, т.к. DBGridEh — без него никуда, ни CheckBox'ов, ни сортировки по всем столбцам, ни Footer'a и т.д. TMemTableEh тоже нужен потому что поддерживает MasterSource — связь с другой таблицей по ключю. Выходит, косяк EhLib'a, блин как же теперь решить проблему? |
|