Witam,
Mam standardowy DBGrid i formatuję sobie jego wygląd, aby wyświetlane dane były bardziej czytelne. Zmianę wysokości wszystkich wierszy w Gridzie zrobiłem tak:
TStringGrid(DBGrid1).DefaultRowHeight:=25;
Po zwiększeniu typowej wysokości wierszy napotykam jednak na problem podczas przewijania danych scrollem myszki - OnMouseWheel
. Mianowicie jak kręcę scrollem "w dół" to ucinane są dwa ostatnie wiersze. W momencie, gdy dojadę do końca tabeli to dwóch ostatnich rekordów po prostu nie widać.
Wydaje mi się, że po zmianie DefaultRowHeight
źle obliczana jest liczba rekordów, która zmieści się w Gridzie. Ale może lepiej na konkretnym przykładzie:
- Niech standardowo wysokość wiersza wynosi 20 pikseli. Zatem w Gridzie o wysokości 200 pikseli (plus dodatkowo wysokość Title) zmieści się jednocześnie równo 10 rekordów. Jak nie ruszam
DefaultRowHeight
to wszystko działa poprawnie. Dojeżdżam do 10 rekordu, a od 11 następuje przewijanie. - Jeżeli natomiast zmienię wysokość wiersza na 25 to oczywiście wyświetlonych będzie mogło być jednocześnie tylko 8 rekordów, a nie jak wcześniej 10. Nowa wartość
DefaultRowHeight
nie jest niestety uwzględniana w DBGrid podczas przewijania scrollem myszki. W praktyce ucinane są 2 ostatnie rekordy. Mam ustawionedgRowSelect:=True
i podświetlenie aktywnego rekordu znika mi gdzieś na dole.
Proszę o podpowiedź, czy jest jakiś parametr, którym mogę określić liczbę wyświetlanych rekordów, po przekroczeniu których nastąpi przewijanie? W moim przypadku po zmianie DefaultRowHeight
powinna ona wynosić nie 10 ale 8 wierszy.