Форум: "Media";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Внизпроблема с прозрачностью окон Найти похожие ветки
← →
dubdaze (2004-06-27 19:14) [0]есть функция, которая делает окно прозрачным, она выглядит следующим образом
function RegionFromBitmap(ABitmap : Graphics.TBitmap; TransparentColour : TColor): HRGN;
var
x, y : integer;
Rgn1, Rgn2 : hrgn;
Startx : integer;
InTransparent : Boolean;
begin
Rgn1 := 0;
For y := 0 to ABitmap.Height-1 do begin
Startx := 0;
InTransparent := True;
For x := 0 to ABitmap.Width do begin
If (ABitmap.Canvas.Pixels[x, y] = TransparentColour) or (x = ABitmap.Width) then begin
If Not InTransparent then begin
if Rgn1 = 0 then begin
Rgn1 := CreateRectRgn(Startx, y, x, y+1);
end
else begin
Rgn2 := CreateRectRgn(Startx, y, x, y+1);
if Rgn2 <> 0 then CombineRgn(Rgn1, Rgn1, Rgn2, RGN_OR);
DeleteObject(Rgn2);
end;
end;
InTransparent := True;
end
else begin
If InTransparent then begin
Startx := x;
end;
InTransparent := False;
end;
end;
end;
Result := Rgn1;
end;
далее у меня есть таймер, который использует эту функцию для создания анимации (типа screen mate"а такого), форма, соответственно, делается прозрачной
procedure TForm1.Timer1Timer(Sender: TObject);
var
ABitmap: TBitmap;
ARegion: HRGN;
r: trect;
begin
ABitmap:=TBitmap.Create;
I:=I+1;
if I > 1 then I:=0;
case I of
0: ABitmap.LoadFromFile("1.bmp");
1: ABitmap.LoadFromFile("2.bmp");
end;
ARegion:=RegionFromBitmap(ABitmap, clLime);
SetWindowRgn(Handle, ARegion, True);
r:=Rect(0, 0, Abitmap.Width, Abitmap.Height);
Form1.Canvas.CopyRect(r, ABitmap.Canvas, r);
DeleteObject(ARegion);
ABitmap.Free;
end;
border style у формы bsNone, так вот проблема в том, что во время анимации при перетаскивании формы при помощи следующего кода
procedure MoveForm(Sender: TWinControl);
begin
ReleaseCapture;
Sender.Perform(WM_SYSCOMMAND, $F012,0);
end;
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then MoveForm(Self);
end;
остается ободок от формы, который хрен знает откуда берется, предполагаю, что он от установленной предыдущей картинкой формы, как это исправить?
← →
wicked © (2004-06-27 21:06) [1]никак.....
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.045 c