Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.17;
Скачать: CL | DM;

Вниз

TDBGrid.SelectedRows   Найти похожие ветки 

 
Андрю-ХА!   (2003-01-30 18:12) [0]

Не устраивает реализация TDBGrid.SelectedRows через TBookmark, т.к. после любого изменения порядка записей или их количества в DataSet (фильтр, индекс) bookmark"и указывают уже на другие записи.
Очевидно (или нет?), надо создать список значений ключевых полей, а потом по нему SetKey\GotoKey. Вот тут-то и возникает вопрос о правильной организации такого списка со временем поиска порядка как при использовании TBookmark. Поделитесь идеями.


 
snake1977   (2003-01-31 08:38) [1]

Я делал таким образом :
1. обрабатывал событие onKeyPress на гриде и по нажатию , например пробела, добавлял значение уникального поля для текущей записи в обычный TStringList, организованный естественно заранее.
2. на повторное нажатие клавиши соответственно убирал запись из списка
3. на событие onDrawColumnCell обрабатывал тек запись, если она примутствовала в списке, то рисовал соответственно другой фон записи, таким образом было видно какие записи выделены
4. по нажатию определенной кнопки устанавливал Filtered, для выбранного DataSet в true, а на событие для него OnFlterRecord делал проверку на наличие значения ключевого поля для записи, в списке выбранных, и при наличии ставил Accept в true

вот. если я правильно понял вопрос конечно :)
если хош могу выслать пример напиши на edge@emails.ru


 
Андрю-ХА!   (2003-01-31 10:55) [2]

//snake1977 (31.01.03 08:38)
О! Через OnFlterRecord я еще не пробовал.
Правда пока вызывает опасение время выполнения фильтрации.....
Надо поэкспериментировать. Спасибо.


 
BlackTiger   (2003-01-31 11:45) [3]

Хмммм...
Вообще-то, мультиселект сделан для цепочки действий "выбрал->выделил->обработал выделенное->забыл" и никаких промежуточных действий, результатом которых может быть изменение данных, вошедших в выделение.

Например, скопировать в записи буфер, подсчитать суммы по полям выделенных записей, заполнить поле выделенных записей одним значением (вот тут могут начаться чудеса - поле не должно входить в критерий выборки/сортировки).

А всякие извращения... Они на то и извращения, чтобы потреблять ресурсы.


 
Андрю-ХА!   (2003-01-31 14:55) [4]

// ВСЕМ! ВСЕМ! ВСЕМ!
Результаты широкомасштабного тестирования показали, что использование вариантов
(а) TDBGrid.SelectedRows,
(б) TDataSet.OnFilterRecord и
(в) TMYDBGrid.SelectedRecords+TClientDataSet.SetKey\GotoKey
дает приблизительно одинаковые результаты по производительости.
PS C чем себя и поздравляю



Страницы: 1 вся ветка

Текущий архив: 2003.02.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
1-53007
Gennadiy
2003-02-10 17:17
2003.02.17
Где можно найти компонент Express Quantum Grid v. 4.0.


7-53291
SERGGL
2002-12-16 12:16
2003.02.17
обращение к сегменту кода под виндой


1-52998
Tundra
2003-02-10 15:23
2003.02.17
Как убрать мерцание в TScrollBar


14-53245
JibSkeart
2003-01-31 15:08
2003.02.17
Какой прожыточный минимум в Москве и можно там найти


1-53119
Беспечный Ангел
2003-02-06 14:55
2003.02.17
Помогите со скинами, плизззз!