![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как принудительно обновить размер колонок в 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]И такая "ерунда" у него только при первой смене вкладок, т.е. при первом наполнении...
В общем если после первого раза "исправить" изменением размера формы, то последующие разы все нормально происходит.
Например находясь на первой вкладке уменьшить ширину формы, и перейти на вторую, то ЛистВью наполняется и горизонтальный(нижний) скролбар не появляется.... Что за ерунда?