Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1246528418
DelphiN!
2009-07-02 13:53
2009.09.06
Определить замыкание 2х ножек com порта


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


15-1246918524
DVM
2009-07-07 02:15
2009.09.06
Функция обратного вызова с переменным числом параметров.


15-1247067931
Артур Пирожков
2009-07-08 19:45
2009.09.06
Про систему ЕГАИС


2-1245366914
DimonS
2009-06-19 03:15
2009.09.06
Ошибка при подключении к *.xls