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

Вниз

Горизонтальный скролл в ListBox   Найти похожие ветки 

 
Igit ©   (2003-01-19 13:14) [0]

Вот нет в MCK этого сабжа? Ставлю Мультискролл, а он не появляется, приходиться через скроллбокс, но так не удобно... как реализовать???


 
blackalex ©   (2003-01-20 11:42) [1]

Реализовать можно через сообщение LB_SETHORIZONTALEXTENT. Пример здесь
http://community.borland.com/article/0,1410,15531,00.html
Также ListBox должен быть создан with WS_HSCROLL  style


 
blackalex ©   (2003-01-20 11:50) [2]

Тут еще есть классный примерчик
http://www.scalabium.com/faq/dct0010.htm


 
Gandalf   (2003-01-31 21:15) [3]

Еще есть пример на "Королевсте Дельфи".


 
3APA3A ©   (2003-09-19 01:46) [4]

Да, но как-то странно это работает...Не той длины какой надо...  Самые длинные строки обрезает...

Код такой:
 for i:=0 to Self.ListBox1.Count-1 do
  if ListBox1.Canvas.TextWidth(Self.ListBox1.Items[i]+"x")>j        then j:=ListBox1.Canvas.TextWidth(Self.ListBox1.Items[i]+"x");
 SendMessage(ListBox1.Handle,LB_SETHORIZONTALEXTENT,j,0);


 
Gandalf ©   (2003-09-19 22:09) [5]

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


 
Igit ©   (2003-09-21 16:30) [6]

блин... не получается... вот как я делаю

Procedure ListBox1Add(s:string);
var i, j: Integer;
begin
form1.ListBox1.Add(s);
for i:=0 to form1.ListBox1.Count-1 do
if Form1.ListBox1.Canvas.TextWidth(Form1.ListBox1.Items[i]+"x")>j
         then j:=Form1.ListBox1.Canvas.TextWidth(Form1.ListBox1.Items[i]+"x");
SendMessage(Form1.ListBox1.Handle,LB_SETHORIZONTALEXTENT,j,0);
end;


а как создать, или установить в MCK стиль WS_HSCROLL?


 
Gandalf ©   (2003-09-21 21:42) [7]

Я так:
 ListBox1.Style:=ListBox1.Style or WS_HSCROLL;
 for i:=0 to Self.ListBox1.Count-1 do
   if ListBox1.Canvas.TextWidth(Self.ListBox1.Items[i])>j then
     j:=ListBox1.Canvas.TextWidth(Self.ListBox1.Items[i]);
 SendMessage(ListBox1.Handle,LB_SETHORIZONTALEXTENT,j,0);


 
Igit ©   (2003-09-22 07:33) [8]

Понятно!
Но... он не двигается...


 
Gandalf ©   (2003-09-23 08:50) [9]

Т.е.?


 
Igit ©   (2003-09-23 10:25) [10]

т.е. он появился внизу listbox"а, с виду длинный такой, а у меня в нем длинная строчка, чтоб посмотреть её конец я мышкой пытаюсь передвинуть скролл а он на месте дрыгается, и все...


 
Igit ©   (2003-09-23 10:43) [11]

Все, понял, забыл j обнулять, но он все равно дрыгается, т.е. мышкой зацепил, перевел куда нужно, а он показывает что в самом начале, хотя в самом конце...


 
Gandalf ©   (2003-09-23 20:54) [12]

Ты на какое событие повесил код, может у тебя пересчет постоянно идет...


 
Igit ©   (2003-09-23 23:47) [13]

На добавление строки, процедуру написал, добавляет строку и пересчитывает после этого



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

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

Наверх




Память: 0.49 MB
Время: 0.033 c
4-1077483069
Nick Denry
2004-02-22 23:51
2004.04.25
Menu а-ля Office XP. Ownerdraw.


1-1081318748
Serj
2004-04-07 10:19
2004.04.25
Размер comboboxa


1-1081589386
KEBZ
2004-04-10 13:29
2004.04.25
ProgressBar1


3-1080540271
Vetas
2004-03-29 10:04
2004.04.25
Помогите с базой на Access


14-1080902712
V-Isa
2004-04-02 14:45
2004.04.25
Оцените компонент AnimIcon!