ListView, как изменить размер например второй колонки?
При создании ListView колнкам заданы размеры.
Как подгонять размер, скажем второй колонки, если изменились размеры формы на которой лежит панель...?
У меня на панел лежит ListView.
При создании ListView колнкам заданы размеры.
Как подгонять размер, скажем второй колонки, если изменились размеры формы на которой лежит панель...?
Обрабатывать событие OnResize. И при его обработке менять размер размер колонки. Например так:
{
ListView1->Column[1]->Width = ListView1->Width/2;
}
Кроме того у них есть свойтво типа автосайза.
Обрабатывать событие OnResize. И при его обработке менять размер размер колонки. Например так:
{
ListView1->Column[1]->Width = ListView1->Width/2;
}
Я попробовал прописать эту строчку и получил ошибку при запуске программы вида:
List index out of bounds(1)
ЗЫ: ЛистВью у меня содержит 5 колонок.
Я попробовал прописать эту строчку и получил ошибку при запуске программы вида:
List index out of bounds(1)
ЗЫ: ЛистВью у меня содержит 5 колонок.
Хм... хоть 10, все работает.Или ты пишешь что то типа ListVeiw1->Column[5]...тогда ничего удивительного. Проверь что ты не пытаешься менять размер несуществующей колонки. Проверял на версии 6.0
Хм... хоть 10, все работает.Или ты пишешь что то типа ListVeiw1->Column[5]...тогда ничего удивительного. Проверь что ты не пытаешься менять размер несуществующей колонки. Проверял на версии 6.0
Как можно проверить?
Я пробовал код именно:
ListView1->Column[1]->Width = ListView1->Width/2;
т.е. от 0 до 4 я должен был попасть...
Как можно проверить?
Я пробовал код именно:
ListView1->Column[1]->Width = ListView1->Width/2;
т.е. от 0 до 4 я должен был попасть...
Проверить достаточно просто:
{
ShowMessage(lv->Columns->Count);
lv->Column[1]->Width = lv->Width/2;
}
например.
Но для начала стоит проверить режим отображения - может стоит vsIcon или типа него.
Проверить достаточно просто:
{
ShowMessage(lv->Columns->Count);
lv->Column[1]->Width = lv->Width/2;
}
например.
Но для начала стоит проверить режим отображения - может стоит vsIcon или типа него.
У меня в настройках ListView включена опция CheckBoxes = true
и в первом(нулевом) столбце у меня чекбоксы стоят...
При использовании
ShowMessage(lv->Columns->Count);
при запуске программы сначала в ShowMessage отображается Columns = 0
затем появляется сообщение об ошибке:
List index out of bounds(1)
а затем 4 раза выдается ShowMessage в котором
Columns = 3
при запуске программы сначала в ShowMessage отображается Columns = 0
Прикол. Есть подозрение, что событие вызывается в процессе загрузки формы, т. е. чтения DFM. Если конечно, ты программно не задаешь число колонок.
{
if(lv->Columns->Count)
lv->Column[1]->Width = lv->Width/2;
}
Первый WM_SIZE происходит при создании формы. Тогда еще компоненты неинициализированы. Напиши
{
if(lv->Columns->Count)
lv->Column[1]->Width = lv->Width/2;
}
УРЯ!!!
Заработала... :-)))
Спасибо огромное :)