Вниз
Скачать: 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.007 c
15-1246617399
vajo
2009-07-03 14:36
2009.09.06
Как правильно написать заявление на увольнение?


15-1247078903
Kerk
2009-07-08 22:48
2009.09.06
Вот где программисты Delphi кучкуются :)


2-1247060009
tomkat
2009-07-08 17:33
2009.09.06
компоненты в консольном приложении


15-1246865770
dzmitry[li]
2009-07-06 11:36
2009.09.06
TDateTime = 40000


15-1246625032
Nil
2009-07-03 16:43
2009.09.06
Есть кто-нибдуь кто знает Delphi, С и кому интересен доп зработок




   Наверх