Вниз
Скачать: CL | DM;

Колонки в TListView   Найти похожие ветки 

← →
Fr   (2009-07-05 10:56) [0]

Как подогнать ширину колонки в ListView по содержимому?


← →
Юрий Зотов ©   (2009-07-05 11:17) [1]


uses
 CommCtrl;

procedure TForm1.FormShow(Sender: TObject);
var
 i: integer;
begin
 with ListView1 do
   for i := 0 to Columns.Count - 1 do
     SendMessage(Handle, LVM_SETCOLUMNWIDTH, i, LVSCW_AUTOSIZE_USEHEADER)
end;

Если не нужно учитывать ширину текста заголовков колонок, то LVSCW_AUTOSIZE_USEHEADER заменяем на LVSCW_AUTOSIZE.


← →
Fr   (2009-07-05 12:10) [2]

Спасибо. У меня ListView лежит на PageControl. Если поставить SendMessage на обработчик на Tfrm1.ts1Show, то он замечательно отрабатывает при переключении с вкладки на вкладку, а при создании формы, до того, как я ткнусь на вкладку, не хочет ... Как это победить?


← →
Юрий Зотов ©   (2009-07-05 12:12) [3]

Вызвать тот же обработчик из FormShow.


← →
Fr   (2009-07-05 12:41) [4]

Обработчик Tfrm1.ts1Show срабатывает до Tfrm1.FormShow. Но, хотя он и посылает SendMessage, все равно не выравнивает ширину колонки по-содержимому. Ширина колонок выравнивается по ширине названия колонки, не учитывая данные Items.


← →
Юрий Зотов ©   (2009-07-05 12:44) [5]

Значит, в момент FormShow еще нет Items. Вывод - вызывать надо сразу после того, как они появляются.


← →
Fr   (2009-07-05 12:55) [6]

Спасибо! Переклинило меня :)


← →
Юрий Зотов ©   (2009-07-05 13:07) [7]

Возможно, проще делать подгонку в обработчиках AdvancedCustomDraw...
на стадии cdPostPaint (только проследить, чтобы не возникло рекурсии). Тогда все будет подгоняться всегда и автоматически.


← →
Fr   (2009-07-05 13:12) [8]

с помощью все того же SendMessage?


← →
Юрий Зотов ©   (2009-07-05 13:14) [9]

Конечно.


← →
Эстет   (2009-07-05 13:40) [10]

Юрий, а в чем отличие SendMessage от ListView.Perform, всмысле от ListView.Perform(LVM_SETCOLUMNWIDTH, i, LVSCW_AUTOSIZE)


← →
Юрий Зотов ©   (2009-07-05 13:59) [11]

> Эстет   (05.07.09 13:40) [10]

Для оконных контролов отличия, можно сказать, нет. Для графических - только Perform.


← →
Эстет   (2009-07-05 14:06) [12]

Ага, ясно.



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

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



Память: 0.47 MB
Время: 0.008 c
1-1212752457
incm
2008-06-06 15:40
2009.09.06
Как отследить открытие и закрытие дочерних окон ?


1-1213975256
Андрей
2008-06-20 19:20
2009.09.06
Перехват событий


4-1196326695
EgorovAlex
2007-11-29 11:58
2009.09.06
Работа с протоками


2-1246861483
@!!ex
2009-07-06 10:24
2009.09.06
Как представить число в виде трех float чисел.


15-1246624006
Бисовецкий Андрей
2009-07-03 16:26
2009.09.06
Помогите найти правильное решение баз данных. ПОМОГИТЕ СРОЧНО!!




   Наверх