![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Всем доброго
Собственно вопрос, как можно самому перерисовать (или переопределить) стандартный вертикальный ScrollBar класса TListBox (который появляется, если количество Item' ов переваливает за число видимых). поиск привел к FlatSB_XXXX функциям, но Comctl32.dll versions 6.00 and later do not support flat scroll bars. что можно предложить еще? |
|
#2
|
|||
|
|||
|
Может быть, проще использовать TListView? Там вроде бы есть опция FlatScrollBars. Или нужно полностью перерисовывать?
|
|
#3
|
||||
|
||||
|
нужно именно перерисовать, т.е. изменить ширину, форму, цвет и проч.
|
|
#4
|
|||
|
|||
|
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
with ListBox1 do
begin
InitializeFlatSB(Handle);
FlatSB_EnableScrollBar(Handle,SB_VERT,ESB_ENABLE_BOTH);
FlatSB_SetScrollRange(Handle,SB_VERT,0,100,False);
// меняем параметры
FlatSB_SetScrollProp(Handle,WSB_PROP_VSTYLE,FSB_REGULAR_MODE,False); // плоский
FlatSB_SetScrollProp(Handle,WSB_PROP_VBKGCOLOR,clGreen,False); // цвет фона
FlatSB_SetScrollProp(Handle,WSB_PROP_CXVSCROLL,100,False); // ширина
FlatSB_ShowScrollBar(Handle,SB_VERT,True);
end;
end; |
| Этот пользователь сказал Спасибо zmicer за это полезное сообщение: | ||
cotseec (02.06.2012)
| ||
|
#5
|
||||
|
||||
|
спасибо, но
Цитата:
|
|
#6
|
||||
|
||||
|
Только запрет скрол-бара и собственная отрисовка или поиск компонента где это уже сделали.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
cotseec (02.06.2012)
| ||
|
#7
|
||||
|
||||
|
это самое кардинальное решение, думал может будет еще что-то
буду рисовать |