![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в ListView на onCustomDrawItems [D5, Win95/98, Win2k]
TYB © (2006-04-14 12:02:00)Замучал вот такой глюк, сначала код:
procedure TForm1.OnCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
If Item <> nil Then
If Условие Then
with TCustomListView(Sender) Do
begin
Canvas.Font.Style :=[fsBold]
end;
end;
Т.е. при определенном условии пункты в ListView отображаются
жирным шрифтом.
Так вот когда присутсвует код выше происходит по сути
полный сбой программы она зависает, компоненты на форме
не отрисовываются.
Когда ремарю эту строчку Canvas.Font.Style :=[fsBold]
все работает как часы.
Сбой точно из-за строки выше, но вот почему не пойму.
Может кто сталкивался с этим?
kilkennyCat (2006-04-14 18:25:00) [1]with TListView(FindComponent('....' + inttostr((Sender as Tcomponent).tag))) do
Font.style...
Жутко выглядит, но у меня так заработало.
kilkennyCat (2006-04-14 18:25:00) [2]гм... прошу прощения, это не для итема....
Gero (2006-04-14 16:49:00) [3]Я сталкивался с подобным. Дело наверняка в кривой реализации VCL. Проблема решилась только отказом от использования VCL-customdraw и отлове NM_CUSTOMDRAW, где и производилась прорисовка.