![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Transporent на канве [D7, WinXP]
Uriy © (2006-04-19 17:29:00)Я хочу нарисовать небольшой фон на конве и слева поверх фона небольшое изображение 16*16, но чтобы оно было прозрачным(т.е. transporent). Делаю так, фон рисуется, изображение тоже рисуется но не прозрачное... Помогите пожалуйста что не так...
var
R, Rg: TRect;
Bmp, Bmp2: TBitmap;
...
with Canvas do
begin
Brush.Style := bsClear;
R := ClientRect;
if Assigned(Bmp) then
StretchDraw(R, Bmp) // рисуем фон
else
FillRect(R);
SetBkMode(Handle, TRANSPARENT);
Rg.Left := R.Left + 5;
Rg.Right := Rg.Left + 16;
Rg.Top := R.Top + (R.Bottom - R.Top - 16) div 2;
Rg.Bottom := Rg.Top + 16;
StretchDraw(Rg, Bmp2);
end;
Uriy (2006-04-19 20:07:00) [1]ой я что заметил... и без:
SetBkMode(sha.Canvas.Handle,TRANSPARENT);
Sha.TransparentColor:=$000000ff;
Sha.TransparentMode:=tmFixed;
транспорент работает =)))
просто:
Sha.Transparent:=True;
can.StretchDraw(sh,sha)
antonn (2006-04-19 19:55:00) [2]classes.rect()
Leonid Troyanovsky (2006-04-19 19:49:00) [3]
> Uriy (19.04.06 19:45) [3]
> можно какнибудь подругому? одной функцией какойнибудь? =)
Rect
--
Regards, LVT.
Uriy (2006-04-19 19:45:00) [4]
> Rg.Left := R.Left + 5;
> Rg.Right := Rg.Left + 16;
> Rg.Top := R.Top + (R.Bottom - R.Top - 16) div 2;
> Rg.Bottom := Rg.Top + 16;
а такой хороший способ задания значений типа Trect? или можно какнибудь подругому? одной функцией какойнибудь? =)
Andy BitOff (2006-04-19 18:30:00) [5]
Sh:Trect;
sha:TBitMap;
//Переносим текстуру на главмый холст, делая при этом красный цвет прозрачным
SetBkMode(sha.Canvas.Handle,TRANSPARENT);
Sha.TransparentColor:=$000000ff;
Sha.TransparentMode:=tmFixed;
Sha.Transparent:=True;
can.StretchDraw(sh,sha);
Uriy (2006-04-19 18:03:00) [6]В Bmp2 это который 16*16 там точно есть рисунок и там фон белый и нижняя левая точка тоже белая(ведь по ней transporent происходит)...