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

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

Горизонтальная прокрутка в ListBox


RIMMER ©   (2003-06-28 00:27:00) 

Старый совет по добавлению сабжа неправильно работает в WinXP - длина скролла устанавливается меньше, чем надо. Что делать?


RIMMER   (2003-07-01 00:25:00) [1]

Не хватает по разному (кажется в зависимости от длины макс. строки), но обычно >20 пикселов. Шрифты по вкладке в свойствах дисплея = "Обычный размер (96 dpi)"


Ученик   (2003-06-28 10:08:00) [2]

Вроде, работает этот код под Windows XP, а какие шрифты установлены с системе "большие" или "маленькие", может проблема в +7, или много не хватает ?


RIMMER   (2003-06-28 00:30:00) [3]

ЗЫ Имеется в виду следующая процедура
procedure TForm1.ShowHScroll(Sender: TObject; ListBox: TCustomListBox);
var

i, MaxWidth: integer;
begin

MaxWidth := 0;
for i := 0 to ListBox.Items.Count - 1 do
if MaxWidth < ListBox.Canvas.TextWidth(ListBox.Items.Strings[i]) then
MaxWidth := ListBox.Canvas.TextWidth(ListBox.Items.Strings[i]);

SendMessage(ListBox.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+7, 0);

end;


Наверх

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