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

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

Вот такая странность замечается с KOL [Delphi, Windows]


Delphi5.01 ©   (2004-04-10 14:18:00) 

Доброе время суток!
Вот такая странность замечается с KOL:
Если я один раз вывел изображение на экран с свойством TransparentColor=clLime, все ОК, но после того как я изменю картинку он выносит на экран старый рисунок (а более правильно старый силуэт). Чтобы картина стала ясней вот урл на котором я разместил скриншоты.

http://gesoft.h12.ru/kol/

Спасибо за помощь


Delphi5.01   (2004-04-11 08:20:00) [1]

УРА!!!
Я оказался правым, битмап по не известной причине сохраняет старую маску. Самым банальным решением является, создание BufferBitMap* при каждом использовании заново. Может кто посоветует более быстрый вариант?


Delphi5.01   (2004-04-11 08:10:00) [2]

У меня появилось подозрение что после одного TransparentDraw-а этот Битмап сохраняет маску, ну а после его изменения Битмапа маска не изменяется! :-( Если я прав, то пожалуйста объясните почему и как решить проблему?


Delphi5.01   (2004-04-10 20:37:00) [3]

А вот и код:
...
   var TransparentColor: Integer;
...
 begin
...
   SrcBitMap.Draw(BufferBitMap1.Canvas.Handle,0,0);

   FillRGN(BufferBitMap1.Canvas.Handle,RGN,BRUSH);

   BkGround.Draw(BufferBitMap2.Canvas.Handle,0,0);

   TransparentColor:=BufferBitMap1.Canvas.Pixels[0,0];

   BufferBitMap1.DrawTransparent(BufferBitMap2.Canvas.Handle,0,0,TransparentColor);

   BufferBitMap2.Draw(DestCanvas.Handle,0,0);
...
Проблема в следующем, почему-то при вызове этой функции в первые с одним значением RGN все работает, но при вызове этой же функции при другом значении, несмотря на то что в BufferBitMap1 рисунок правильный, при выводе его на экран, вместо TransparentDraw он выводит на экран только ту часть BufferBitMap1 которая была в первой ситуации (при первом вызове).


Avenger[NhT]   (2004-04-10 17:38:00) [4]

код кидай, посмотрим!


miek   (2004-04-10 16:14:00) [5]

Ты с ума сошел - такие огромные скриншоты класть? И вообще, лучше код покажи, яснее будет.


Наверх

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