Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как пометить записи в наборе только для чтения? [D6]


Hose ©   (2003-09-26 10:36:00) 

Есть некая табличка, которая имеет атрибут "RO". Надо чтоб пользователь мог пометить записи в сетке "ПТИЧКОЙ" (ну не хочет заказчик пользоваться мультиселектом). Первое, что приходит в голову, это создать в наборе поле, в котором и хранить признак записи помечена/непомечена и нормально отображать все это в сетках и прочих компонентах. Но мои попытки реализации сего алгоритма не увенчались пока успехом.
Я вот точно помню, что подобное здесь уже пробегало когда-то. Не могу найти. :(( Прошу ткнуть меня носом в описание требуемого мне решения или просто подскажите с какой стороны грамотнее зайти. До сих пор я пытаюсь решить проблему разработкой собственного наследника TField.

Спасибо.


Mike Kouzmine   (2003-09-26 11:12:00) [1]

А ты поставь р/о на уровне полей, а не таблицы, а птичку сделай не р/о.


Nikolay M.   (2003-09-26 10:58:00) [2]

Тупое, не самое красивое решение:
создаешь Calculated-поле, которое будет принимать значение True, если ID присутствует в некотором вспомогательном массиве (SelectedIDs : array of integer), или False, если его там нет.
В DBGrid ловишь OnDblClick, проверяешь SelectedIDs на наличие в нем текущей записи и делаешь ВычислимоеПоле := not ВычислимоеПоле и добавляешь или удаляешь ID из этого массива. Ну, а о том, как нарисовать в DBGrid вместо True/False стандартную виндовую галочку, писалось не один раз...


Наверх

Титульная страница Поиск, карта сайта Написать письмо