Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
31-05-2006 04:25
>>> Это военная тайна?
Ничуть. Вот цитата с www.delphiworld.ru (из offline архива, поэтому ссылку дать не могу):
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Чередование фона строк в TListView
Да какое описание...
Вообщем можно просто copy/past сделать...
Хотя реализация не оптимальная, но общая идея - та что нужна =)))
Зависимости: нету =)
Автор: Subfire, subfire@mail.ru, Питер
Copyright: =) не нужно
Дата: 19 февраля 2003 г.
***************************************************** }
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
i: word;
begin
if item = nil then
EXIT;
i := Item.Index;
if trunc((i) / 2) < (i / 2) then
sender.canvas.brush.Color := cl3DLight
else
sender.canvas.brush.Color := clwhite;
end;
Код я не причесывал, как есть, хотя я бы сделал по-другому.
to Python:
Да я пытался менять цвет, но как-то не так работает - вопрос 41071.
А что касается CustomDrawItem, то все почему-то так и отвечают - " нужно обрабатывать
событие OnCustomDrawItem " , а как - никто не говорит. Это военная тайна ?
Так же как и в любой другой момент времени - никак. Правда можно использовать OwnerDraw, но из-за такой мелочи как обычное изменение цвета я бы поленился. Как пользоваться - установи OwnerDraw твоего ListView в true и пиши обработчик OnDrawItem. Как аальтернатива, можешь попытаться использовать обработчик OnCustomDrawItem, чтобы сменить цвет пера и/или кисти. Тогда OwnerDraw устанавливать не надо (цитирую справку: Unlike the OnDrawItem event, the list view receives this event even if the OwnerDraw property is False. The OnCustomDrawItem event handler provides slightly different state information than the OnDrawItem event.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.