скачек поводка линейки прокрутки формы при клике на StringGrid
Когда размер формы мал и справа появляется линейка прокрутки, то возникает такое явление.
Поводком прокрутки выбираем часть формы, в которой расположены требуемые нам для работы ячейки StringGrid (отягчающее обстоятельство - в кликаемую ячейку позиционируется нужный элемент редактирования : ComboBox, Edit). При кликании мышью в нужную ячейку StringGrid происходит скачек поводка прокрутки формы к началу формы. Если вернуться назад и ткнуться в эту ячейку повторно - все работает без скачка. Скачек вновь начинает появляться после того, как в какую-нибудь ячейку StringGrig было занесено значение.
Пробовал сразу при размещении на форме StringGrid задать столько строк, сколько будет при работе, но эффект остается.
Победить не удается, но что-то получается, если в событиях клика мышью размешаемого поверх стрингрида компонента ставить чтение положения позиции клика мышки (OnMouseDown) на компоненте, затем персчет в новые Х У с учетом положения компонента относительно формы (просто складываем значения Top и Left компонента со значениями Х У координат клика мышки на компоненте) и потом присваивание полученных координат позициям VertScrollBar и если надо HorzScrolllBar формы. Здесь все равно есть скачки поводка, но уже в пределах поля зрения.
Создал свой компонент ScrollBox на основе имеющегося, только переопределил виртуальный метод
virtual void __fastcall AutoScrollInView(Controls::TControl* AControl){}
Вытащил на форму свой ScrollBox, напихал в него все что надо (StringGrid) и получил плавную прокрутку и непрыгающий скролл.