Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

При отрисовке скроллбаров они *иногда* пропадают   Найти похожие ветки 

 
AlexeyT ©   (2006-07-21 10:34) [0]

Hello All,

Устанавливаю позицию скроллбаров (гориз-го и верт-го) через SetScrollInfo. В зависимости от позиции в файле скроллбары меняют позицию и PageSize. При проходе по файлу от начала до конца видно, что на некоторых позициях файла скроллбары внезапно пропадают (горизонтальный у меня иногда прячется, если строки короткие, но вертикальный пропадать не должен вообще никогда!). Причем, вместе с рамкой окна (как будто окно стало иметь BorderStyle=bsNone). Потом так же внезапно появляются.

Явно глюк где-то в API, проверил код, верт. скроллбар у меня всегда виден. Кто-нибудь с этим сталкивался?


 
AlexeyT ©   (2006-07-21 10:40) [1]

Да, забыл добавить, что скроллбары - это не компоненты TScrollbar, а выставленные стили окна WS_VSCROLL, WS_HSCROLL.


 
han_malign ©   (2006-07-21 16:37) [2]

BorderWidth:= 0;
BevelKind:= bkNone;
BorderStyle - можно bsSingle

глюк не только в API, но и в VCL.
VCL при перерисовке Border/Bevel - закрашивает скроллбары. API перерисовывает  скроллбары только по их изменению... И это еще не все, даже если поправить прорисовку в VCL, чтобы он не закрашивал скроллбары, в API для них неправильно вычислиются Clipping регионы, в аккурат на ширину/высоту Border + Bevel - и там остается мусор.
Таким образом - только вариант описанный в самом начале, а если так уж Bevel-ы нужны - клади на панель...


 
han_malign ©   (2006-07-21 16:40) [3]

Вдогонку, чтобы получить *стабильный* результат - достаточно любое другое окно поверх протащить...


 
AlexeyT ©   (2006-07-21 20:37) [4]


> BorderWidth:= 0;
> BevelKind:= bkNone;
> BorderStyle - можно bsSingle


Поставил в конструкторе - не помогло. Все равно пропадает.
Перетаскивание другого окна поверх - никак не влияет, от этого глюк ни пропадает, ни становится стабильнее...

Да, VCL по-моему не при чем, т.к. я скроллю стрелками. При этом VCL практически не работает (ничего не рисует), а вызывается моя перерисовка и установка скроллбаров.



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.055 c
2-1163438458
Troan_81
2006-11-13 20:20
2006.12.03
Работа с директориями


2-1163532643
DoktorX
2006-11-14 22:30
2006.12.03
как из ImageList отобразить рисунок под номером 2


15-1163508842
Андрей Сенченко
2006-11-14 15:54
2006.12.03
DOC. Память для EXEC


2-1163602889
Новый_Юзер
2006-11-15 18:01
2006.12.03
Панель инструментов и кнопки с картинками из ImageList a


2-1163581261
pavel_guzhanov
2006-11-15 12:01
2006.12.03
Интересное поведение функции Length()