Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

Горизонтальный скролл в 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 вся ветка

Форум: "KOL";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.045 c
1-1081232645
TUser
2004-04-06 10:24
2004.04.25
Скорость сортировки слиянием


4-1077645218
Владимир Березин
2004-02-24 20:53
2004.04.25
Обработка WINDOWS - сообщения


14-1080715256
BEN
2004-03-31 10:40
2004.04.25
Delphi 5 и Win2k


1-1081217402
GreatMaster
2004-04-06 06:10
2004.04.25
Поддержка нац. языков при вводе текста в контрол - как?


3-1080633337
Innokenty
2004-03-30 11:55
2004.04.25
Умножение или деление. Что быстрее.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский