Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
7-1077117818
XandeR
2004-02-18 18:23
2004.04.25
определить температуру процессора


14-1081095659
Verg
2004-04-04 20:20
2004.04.25
Объясните, кто знает, про F1


1-1081015278
Федя Мегатронов
2004-04-03 22:01
2004.04.25
Ничего не компилиться при повторном открытии ! помогите !


8-1074781380
Samerly
2004-01-22 17:23
2004.04.25
Наложение 256-цветного альфа-канала средствами API


14-1080627971
Babay
2004-03-30 10:26
2004.04.25
Поговорим о Delphi 8




   Наверх