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

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

PlgBlt ne rabotaet tak kak nujno, pochemu? [D5, D6, Win95/98, WinME, Win2k]


Delphi5.01 ©   (2003-04-03 22:52:00) 

Zdravstvuite.
pochemu

a[1].X:=0; a[1].Y:=0;
a[2].X:=RGNSMask[1].Width; a[2].Y:=0;
a[3].X:=0; a[3].Y:=RGNSMask[1].Height;

PlgBlt(PaintBox1.Canvas.Handle,a,
NormalBitMap.Canvas.Handle,
0,0,RGNSMask.Width,RGNSMask.Height,
RGNSMask.MaskHandle,0,0);

rabotaet pravilno tolko s malenkimi izobrajeniami, a tochnee: est bitmap v kotorom

narisovan opredelloni chorni kontur, i nado skopirovat izobrajenie is NormalBitMap

uchitivaia kontur. Problema v tom chto on vsegda kopiruet vne maski izobrajenie, proboval

invertirovat Masku, vso ok s malenkimi izobrajeniami a chto kasaetsa bolshix to vso ravno

prodoljaet dopuskat "oshibku". kak mojno reshit etu problemu, nu ili pomogite naiti zamenu

etoi procedure ochen srochno nujno, tema po konferencii nado zdavat cherez paru dnei!
Spasibo!


MBo   (2003-04-04 06:33:00) [1]

1) PlgBlt НЕ работает в Win9X!
2) эта функция копирует прямоугольник в параллелограмм. В твоем случае я не вижу, что требуется искажение прямоугольника, так что воспользуйся BitBlt или TCanvas.CopyRect


Наверх

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