Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.09.06;
Скачать: [xml.tar.bz2];

Вниз

Колонки в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1246866808
smirnoff
2009-07-06 11:53
2009.09.06
Вопрос по AnsiChar


15-1246891880
{RASkov}
2009-07-06 18:51
2009.09.06
Двусторонняя печать


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


15-1246622084
Пит
2009-07-03 15:54
2009.09.06
Запись времени в логе


1-1214066182
X9
2008-06-21 20:36
2009.09.06
Открыть диалог поиска текста в WebBrowser





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский