можно сделать это по-другому. свойства формы не трогаем, но зато создаём дополнительное монохромное изображение, которое будет шаблоном. дальше пишем в Formcreate вставляем :
Код:
var
pict:TPicture;
begin
pict:=TPicture.Create;
pict.LoadFromFile('fon.bmp');
SetWindowRgn(Form1.Handle,RegionFromPicture(pict,RGB(255,255,255)),True);
pict.Free;
и отдельно функцию
Код:
function TForm1.RegionFromPicture(pict: TPicture; backcolor: TColor): HRGN;
var
rgn,resRgn: HRGN;
x,y,xfirst:Integer;
begin
resRgn:=CreateRectRgn(0,0,0,0);
for y:=0 to pict.Height-1 do
begin
x:=0;
while x<pict.Width do
begin
if (pict.Bitmap.Canvas.Pixels[x,y] <> backcolor) then
begin
xfirst:=x;
Inc(x);
while (x<pict.Width) and (pict.Bitmap.Canvas.Pixels[x,y]<>backcolor) do
Inc(x);
rgn:=CreateRectRgn(xfirst,y,x-1,y+1);
CombineRgn(resRgn,resRgn,rgn,RGN_OR);
DeleteObject(rgn);
end;
Inc(x);
end;
end;
Result:=resRgn;
end;
Admin: Учимся пользоваться тегами!
таким образом форма получиается как бы "дырявой", без всякой прозрачности.