![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вот такая странность замечается с 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]Ты с ума сошел - такие огромные скриншоты класть? И вообще, лучше код покажи, яснее будет.