Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как принудительно обновить размер колонок в ListView?


{RASkov} ©   (2007-08-16 02:59:00) 

Как принудительно заставить пересчитать размер колонок в ListView?
Ситуация такая.... Есть TPageControl у него две вкладки...на второй лежит ЛистВью
наполнение ЛистВью происходит при смене вкладки с первой на вторую.
ЛистВью стиль Репорт, одна из колонок(первая) Автосайз=True. Так вот что получается:
После наполнения листвью и показа вкладки, внизу у листвью появляется скролбар и ширина становится "лишнего" на ширину вертикального Скрола...
Если чуть изменить размер Формы, а ЛистВью и Пайдж Алигн=алКлиент, то колонки становятся нормальной ширины, т.е. равномерно.... т.е. пропадает нижний скрол. (который вообще не нужен).
Знаю, что скорее всего ничего сложного, но что-то не нашел ответа... Спасибо.


{RASkov}   (2007-08-16 03:50:00) [1]

Можно и в ручки это сделать(нечто [2]), но не хочется.... он ведь и сам умеет это делать, например при смене размера по ширине....


{RASkov}   (2007-08-16 03:48:00) [2]

> [2] Riply ©   (16.08.07 03:30)

Не.... не то (
Это выставляет ширину по максимальной ширине текста в колонке.... и появление нижнего скрола.
А вот как бы ему(ЛистВью) послать такое сообщение, что якобы он только-что закончил изменяться в ширину и пора пересчитать ширину колонок...
Общая(сумарная) ширина колонок должна быть равна ширине ЛистВью в целом.


Riply   (2007-08-16 03:30:00) [3]

>[0] {RASkov} ©   (16.08.07 02:59)
>Как принудительно заставить пересчитать размер колонок в ListView?

for i := 0 to Pred(Columns.Count)
do SendMessage(Handle, LVM_SETCOLUMNWIDTH, i, LVSCW_AUTOSIZE(LVSCW_AUTOSIZE_USEHEADER))  ?


{RASkov}   (2007-08-16 03:16:00) [4]

И такая "ерунда" у него только при первой смене вкладок, т.е. при первом наполнении...
В общем если после первого раза "исправить" изменением размера формы, то последующие разы все нормально происходит.
Например находясь на первой вкладке уменьшить ширину формы, и перейти на вторую, то ЛистВью наполняется и горизонтальный(нижний) скролбар не появляется.... Что за ерунда?


Наверх

Титульная страница Поиск, карта сайта Написать письмо