![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
VerticalScrollBar в TListBox всегда [D7, WinXP]
TrueCoder © (2005-06-23 02:57:00)Господа, прошу подсказать способ заставить TListBox отображать вертикальный скроллбар ВСЕГДА, а не только тогда, когда заполнено большое количество элементов. Вот TMemo умеет же это делать сам, отрисовывая просто неактивные скроллы, если скроллить нечего.
Спасибо.
TrueCoder (2005-06-23 22:42:00) [1]Ученик
Итить! Вот спасибо от недоучки. Пробовал также, но без скобок, а логику-то и не учел!
Ученик (2005-06-23 22:32:00) [2]>TrueCoder (23.06.05 19:41) [3]
procedure TMyListBox.CreateParams(var aParams: TCreateParams);
begin
inherited;
aParams.Style := (aParams.Style or LBS_DISABLENOSCROLL) and not WS_HSCROLL
end;
TrueCoder (2005-06-23 19:41:00) [3]Amoeba
Странный вопрос, конечно.. Цитирую:
"Если все строки списка не помещаются в окне, у списка появится вертикальная полоса просмотра. Если при удалении из списка некоторого количества строк размеры окна списка станут достаточны для отображения всех строк, полоса просмотра исчезнет. В некоторых случаях такое поведение списка нежелательно, так как оно приводит к изменению внешнего вида списка." Что у меня и происходит.
Одним словом, компоненты на форме также нет _необходимости_ выравнивать, программа тоже работать будет.
begin...end
Благодарю за наводку. Работает, но LBS_DISABLENOSCROLL почему-то помимо неактивной вертикальной прокрутки отображает и горизонтальную, что мне совсем не нужно. Ищу как убрать, тем более, что по все докам, что я нарыл, должна отображаться только вертикальная полоса.
begin...end (2005-06-23 11:12:00) [4]> TrueCoder (23.06.05 2:57)
Создать наследника TCustomListBox, в котором перекрыть CreateParams и добавить к Params.Style значение LBS_DISABLENOSCROLL.
Amoeba (2005-06-23 10:52:00) [5]А это действительно так необходимо? Или просто праздное любопытство одолевает?