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

Вниз

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

 
КПавел   (2008-01-10 23:20) [0]

Мне нужен горизонтальный TListBox - ну т.е. обычный TListBox, но что бы при этом все Items"ы показывались по горизонту.

Я смотрел свойство Columns в TListBox, оно подходит например для 10 записей. Но если указать 100 и более, то при этом ширина записей становится нулевой (они сжимаются).

Что посоветуете?


 
DVM ©   (2008-01-10 23:24) [1]


> Что посоветуете?

TListView


 
КПавел   (2008-01-10 23:52) [2]

Совсем что-то не хочется использовать его мне, рассматриваю как крайний случай.

Пытался посмотреть в исходникахх TCustomListBox, как задается ширина колонок и задать её принудительно.

procedure TCustomListBox.SetColumnWidth;
var
 ColWidth: Integer;
begin
 if (FColumns > 0) and (Width > 0) then
 begin
   ColWidth := 20;
   //ColWidth := Trunc(ClientWidth / FColumns);
   //if ColWidth < 1 then ColWidth := 1;
   SendMessage(Handle, LB_SETCOLUMNWIDTH, ColWidth, 0);
 end;
end;


Стало работать, но вот что меня волнует. У меня если записей меньше чем количество при котором появляется горизонтальный ScrollBar, то height = 25. Если количество записей будет больше чем 14, то тогда следует увеличивать height, т.к. в таком случае появившийся ScrollBar будет заслонять всё.

Я сделал все совсем слишком в лоб, не опираясь на какие-то настройки пользователей, размеры скроллбаров.

 ListBox1.Items.Add("s");
 if ListBox1.Items.Count = 14 then
   ListBox1.Height :=  ListBox1.Height + 15;


Как бы это грамотно написать?


 
Германн ©   (2008-01-11 00:41) [3]

А если не ListBox, а StringGrid?


 
No_Dead ©   (2008-01-11 04:11) [4]

> [3] Германн ©   (11.01.08 00:41)

озадачил аффтора:)


 
КПавел   (2008-01-11 09:37) [5]

Совсем не хочется использовать что-то отличное от TListBox, сейчас в программе только они и используются.

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


 
Правильный_Вася   (2008-01-11 11:38) [6]


>  не хочется использовать что-то отличное от TListBox, сейчас
> в программе только они и используются.

хороши принципы, уважаю
закидоны, правда, но каждому свои тараканы



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
3-1191146666
абв
2007-09-30 14:04
2008.02.10
Разбиение строки и конкатенация полей


1-1193937748
antonioxxx
2007-11-01 20:22
2008.02.10
Обработка события: нажатие и удержание клавиши мыши


2-1200326503
Windows.Error[41].Generate;
2008-01-14 19:01
2008.02.10
Скопировать весь текст из memo


2-1200803639
_Shuler_
2008-01-20 07:33
2008.02.10
новая строка


2-1200581118
4815162342
2008-01-17 17:45
2008.02.10
MDI окна - панель