![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Canvas [Delphi, Windows]
Инна © (2009-10-30 10:35:00)создается для контролов и картинок всегда или только если есть обращение к нему в коде?
Игорь Шевченко (2009-10-30 22:25:00) [1]http://ln.com.ua/~openxs/articles/smart-questions-ru.html
mdw (2009-10-30 14:49:00) [2]KOL.pas
function WndProc_LVCustomDraw(..);
Инна (2009-10-30 14:33:00) [3]
> Это LVCustomDraw
да
function TForm1.MusicLVCustomDraw(Sender: PControl; DC: HDC;
Stage: Cardinal; ItemIdx, SubItemIdx: Integer; const Rect: TRect;
ItemState: TDrawState; var TextColor, BackColor: Integer): Cardinal;
begin
if (Stage<>CDDS_PREPAINT)and(Stage<>CDDS_ITEMPREPAINT) then begin
if qqq(DYN.list.ItemS[ItemIdx]^).Group then BackColor:=$00FCF4ED;
if qqq(DYN.list.ItemS[ItemIdx]^).Mask and 8 <> 0 then TextColor:=$00AD5A5A;
if qqq(DYN.list.ItemS[ItemIdx]^).Mask and 16 <> 0 then TextColor:=$004848E3;
if qqq(DYN.list.ItemS[ItemIdx]^).Mask and 4 <> 0 then TextColor:=clGreen;
end ;
result:=CDRF_NOTIFYITEMDRAW;
end;
> Попробуйте убрать строчку Sender.Canvas
в где ее убрать ?
в понедельник попробую
mdw (2009-10-30 14:25:00) [4]
> кустомдрав
Это LVCustomDraw? Попробуйте убрать строчку Sender.Canvas;. Возможно она никчему.
Инна (2009-10-30 14:14:00) [5]кстати к чему я все это
при выводе через канвас, используя Lineto и moveto у меня нагрузка на проц в 2-3 раза выше чем с чистым GDI
Инна (2009-10-30 14:10:00) [6]ну мошт онпаинт не создает, а кустомдрав полюбому
Инна (2009-10-30 14:07:00) [7]а чего и куда смотреть ?
брекпоинт ставиш на newcanvas и все
пока у меня онпаинт и кустомдрав использовался ,брекпоинт срабатывал
mdw (2009-10-30 13:52:00) [8]
> создается при онпаинт и кустомдраве
А внимательно смотрели? Не создается.
Инна (2009-10-30 12:54:00) [9]проверила
создается при онпаинт и кустомдраве
как понимаю , чтоб от него отвязаться нужно делать свою обработку в онмесаже, правильно ?
Инна (2009-10-30 12:16:00) [10]не хочу чтоб всякие обертки для GDI создавались вообще, что для етого нужно\ненужно делать ?
Инна (2009-10-30 12:10:00) [11]а вот например в онпаинт передается DC , если его использовать канва создасца и тут вобще по другому ?
miek (2009-10-30 12:02:00) [12]Канва - это обертка для HDC. Создается только для контролов, у которых есть свое окно. Подробнее нужно смотреть в коде контрола. В VCL практикуется стиль lazy allocation, т.е. при обращении.
Инна (2009-10-30 11:45:00) [13]нафига рыца в исходниках когда можно спросить конкретно у кто знает ?
mdw (2009-10-30 11:41:00) [14]А исходников у Вас нет?
При обращении.