-
Ну тогда я действительно ошибался. То, что траблы были, это точно. Но вспомнить где именно и как именно, уже вряд ли получится. Можно сделать ваш варианта кода основным, а старый оставить в скобках {$IFDEF SCROLL_OLD}, чтобы с совместимостью не заморачиваться.
Вообще, скроллбар отдельный был дополнен в KOL не очень давно, намного позже основных контролов. Я просто помнил тогда, какие траблы мне попались до этого (те, что сейчас не вспомню), и полагая, что все то же самое верно и для отдельного скролбара, сразу же реализовал его именно так.
Так что, извиняйте.
А что, со сколлбоксом тоже что-то не так?
-
Не знаю, то ли у меня раньше MSDN не было, только что нашел:
The SetScrollInfo function performs range checking on the values specified by the nPage and nPos members of the SCROLLINFO structure. The nPage member must specify a value from 0 to nMax - nMin +1. The nPos member must specify a value between nMin and nMax - max( nPage– 1, 0). If either value is beyond its range, the function sets it to a value that is just within the range.
То есть вы правы, я не прав, еще раз приношу свои извинения.
-
> А что, со сколлбоксом тоже что-то не так?
ну вы используете там свои скролы, а я показал что и с виндовыми ноупроблем
ну а то что ошиблись-бывает у людей про скролы инфы\опыта особо нет, а в рамках КОЛ возможно только нам они и понадобились :)
-
Нет, они там не могут использоваться. Скроллбокс появился на пару-тройку лет до того, как был добавлен отдельный скроллбар. Там может быть используется алгоритм пересчета максимума, но где именно, я на вскидку уже не скажу Хотя смотреть дальше WndProcScrollBox вроде бы и некуда.
-
на глаз видно , что например движок должен быть ровно половину (типа скролбох 200х200 а содержимое 400х400) ,ан нет - меньше, как раз похоже на корекцию
-
хотя походу все норм. в VCL также
-
-1'
-
1
-
1
-
1
|