Сокрытие/показ колонок в TListView.
Как реализовать Show/Hide конкретной колонки (группы колонок) в TListView, наподобие того, как это сделано в Windows Explorer (View->Choose Columns...).
Метод удалениия и последовательного добавления выбранных пользователем колонок приводит к неверному показу данных в ListView, например данные поля Size оказывются в поле Comment, и т.п. Буду признателен за любые продуктивные идеи.
С уважением,
Dmitry.
P.S. Для отображения данных используется virtual (OwnerData := True) режим TListView.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
05-11-2003 23:09
Я нашел довольно надежное решение.
1. Записываешь ширину колонки в Columns[i].Tag.
2. Для Hide колонки делаешь Columns[i].Width := 0;
3. Для Show колонки делаешь Columns[i].Width := Columns[i].Tag;
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.