Показать сообщение отдельно
Старый 12.03.2021, 12:12   #1  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Игрища с позиционированием выделенной записи среди видимых строк grid'а
Коллеги , может кто занимался подобным и сможет подсказать что дельное ...

Ситуация - есть grid с определенной видимой выделенной строкой, на источнике данных которого запускается обновление набора данных через research() и восстановление выделенной позиции через FindValue()/FindRecord().

В случаях, когда перед таким обновлением и восстановлением выделенной позиции :
а) выделенная позиция имела, скажем так, порядковый номер в выводимом наборе данных, не превышающий кол-во видимых строк в grid
б,) выделенная позиция имела порядковый номер в выводимом наборе данных, превышающий кол-во видимых строк в grid, но среди видимых строк grid'а стояла на последнем месте
то после обновления состояние выделения в grid и место выделенной позиции среди видимых строк grid'а не меняется.

Во всех остальных случаях - позиция выделения, будучи корректной в части позиции в наборе данных, позиционно прыгает" среди видимых строк grid'а вниз, вызывая некий визуальный дискомфорт.
В принципе, данное поведение понятно и технически логично, но хотелось бы, по возможности, от этого избавиться.

Можно ли как-то перед таким обновлением считать у выделенной позиции ее текущее положение среди видимых на гриде строк и после обновления, если положение изменилось, вернуть его в первоначальное состояние (доскроллировать grid на нужное кол-во строк вниз) ?

У источника данных все "позиционные" методы касаются именно позиции выделения в наборе данных и к позиции среди видимых строк на grid'е не имеет отношения, на методах grid'а тоже ничего нарыть не смог и в поиске по форуму не удалось ничего нарыть
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Последний раз редактировалось TasmanianDevil; 12.03.2021 в 12:14.