Cześć, po raz kolejny. Szukałem w necie, ale zakończyło się fiaskiem.
Jeszcze raz opiszę po krótce problem.
Mam tyle kolumn w Gridzie, że pojawia się poziomy pasek. I teraz, przeciągam go np. do połowy. I klikam na inny rekord. Naturalne działanie jest takie(przy RowSelect = true), że automatycznie scroll schodzi do zera, żeby pokazać pierwszą kolumnę. A ja nie chcę, żeby scroll mi się przesunął. Więc w BeforeScroll pobieram sobie jego pozycję za pomocą:
FScrollPos:=GetScrollPos(Grid.Handle, SB_HORZ);
I w OnMouseUp grida chcę go ponownie ustawić:
SetScrollPos(Grid.Handle, SB_HORZ, FScrollPos, true);
Efektem tego działania jest to, że owszem scroll sam w sobie ustawia się na odpowiednią pozycję, ale zawartość grida się nie przesuwa. Czyli w najgorszym wypadku scroll jest ustawiony najbardziej w prawo, a w gridzie widać pierwszą kolumnę.
Jak to można poprawić?