Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

А исходников у Вас нет?

При обращении.


Наверх

Титульная страница Поиск, карта сайта Написать письмо