Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ScrollBar ошибка !!!! [Delphi, Windows]


Страницы:   1 2

Robt ©   (2007-09-22 15:42:00) 

размер бегунка получается меньше чем установлено в SBPageSize

например если в ВКЛ и КОЛ сделать одинаковые горизонтальные скролбары длинной 300, высотой 20, Max 1000 и PageSize 200
то КОЛовский будет где-то на 1\5 короче
соответственно и ошибки при скролинге


Dimaxx   (2007-10-03 10:28:00) [21]


> это как раз не правильный взгляд

По-твоему правильно, что, к примеру, портновский метр будет не 1 м, а 793 мм??


homm   (2007-10-03 09:56:00) [22]

> [7] Robt   (03.10.07 09:19)
> MaxScrollPos = MaxRangeValue - (PageSize - 1)

да, и почему Position можно таки выставить в 1000, удерживая кнопку «вправо», если MaxScrollPos по форуме должен быть равен 801 ?


homm   (2007-10-03 09:49:00) [23]

> [7] Robt   (03.10.07 09:19)
> MaxScrollPos = MaxRangeValue - (PageSize - 1)

А откуда цифра 793? (см. мой пост выше)


Robt   (2007-10-03 09:19:00) [24]


> Это не ошибка. Это просто другой взгляд на вещи. Полагаю,
>  более правильный

это как раз не правильный взгляд
теряется смысл существования PageSize как токового, веть при любом его размере - результат SBPosition один и тот же !!! а размер PageSize не больше половины SBMax
кроме того это не прихоть VCL ибо сказано в MSDN :
In version 4.0 or later, the maximum value that a scroll bar can report (that is, the maximum scrolling position) depends on the page size. If the scroll bar has a page size greater than one, the maximum scrolling position is less than the maximum range value. You can use the following formula to calculate the maximum scrolling position:

MaxScrollPos = MaxRangeValue - (PageSize - 1)

так что для своего взгляда делайте условные символы а для народа все должно быть стандартным ...


homm   (2007-10-02 21:35:00) [25]

> [5] Vladimir Kladov ©   (02.10.07 21:04)
> А VCL - не пришей рукав какое-то значение без смысла и  цели.

Действительно, какая-то тупость. По (бредовой) идее там должно быть 1000-200=800, но там 793, причем если нажать на кнопку «впаво», по значение постепенно доползет до 1000, при этом бегунок, ясно дело, не сдвинется.


Vladimir Kladov   (2007-10-02 21:04:00) [26]

Это не ошибка. Это просто другой взгляд на вещи. Полагаю, более правильный. Здесь тест, в точном соответствии с вашими цифрами:
http://kolmk.net/test/Scrollbar.rar

Я просто добавил обработку события OnScroll / OnSBScroll с отображением значения Position / SBPosition (варианты VCL / KOL). Так вот в варианте KOL максимальное значение позиции, когда бегунок сдвинут максимально вправо, равно 1000. А VCL - не пришей рукав какое-то значение без смысла и цели.


Дмитрий К   (2007-10-02 16:37:00) [27]

Не знаю правильно это или нет, но если закомментировать SI.nMax := SI.nMax - Integer(SI.nPage) + Value;в TControl.SetSBPageSize, то ползунок становится таким же как в VCL.


Robt   (2007-10-02 15:18:00) [28]

ну этош не значит что надо на него забить , тем более он в составе кола а не отдельно...

а дельфи 2 ктонить вобще пользуется ? однакош в последнем обновлении 2.81 для него чтото исправили ... а на такой МЕГАкосяк забили :(


Dimaxx   (2007-10-02 10:03:00) [29]

Просто скроллбаром в чистом виде очень редко пользуются...


Robt   (2007-10-02 09:28:00) [30]

что опять тока у меня глюки ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо