function Tform1.CreateRegion(wMask:TBitmap;wColor:TColor;hControl:THandle): HRGN;
var
; dc, dc_c: HDC;
; rgn: HRGN;
; x, y: integer;
; coord: TPoint;
; line: boolean;
; color: TColor;
begin
; dc := GetWindowDC(hControl);
; dc_c := CreateCompatibleDC(dc);
; SelectObject(dc_c, wMask.Handle);
; BeginPath(dc);
; for x:=0 to wMask.Width-1 do
; begin
; ; line := false;
; ; for y:=0 to wMask.Height-1 do
; ; begin
; ; ; color := GetPixel(dc_c, x, y);
; ; ; if not (color = wColor) then
; ; ; begin
; ; ; ; if not line then
; ; ; ; begin
; ; ; ; ; line := true;
; ; ; ; ; coord.x := x;
; ; ; ; ; coord.y := y;
; ; ; ; end;
; ; ; end;
; ; ; if (color = wColor) or (y=wMask.Height-1) then
; ; ; begin
; ; ; ; if line then
; ; ; ; begin
; ; ; ; ; line := false;
; ; ; ; ; MoveToEx(dc, coord.x, coord.y, nil);
; ; ; ; ; LineTo(dc, coord.x, y);
; ; ; ; ; LineTo(dc, coord.x + 1, y);
; ; ; ; ; LineTo(dc, coord.x + 1, coord.y);
; ; ; ; ; CloseFigure(dc);
; ; ; ; end;
; ; ; end;
; ; end;
; end;
; EndPath(dc);
; rgn := PathToRegion(dc);
; ReleaseDC(hControl, dc);
; Result := rgn;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
; w1:TBitmap;
; w2:TColor;
; rgn: HRGN;
begin
; w1:=TBitmap.Create;
; w1.Assign(image1.Picture.Bitmap);
; w2:=w1.Canvas.Pixels[0,0];
; rgn := CreateRegion(w1,w2,Handle);
; if rgn<>0 then
; begin
; ; ;SetWindowRgn(Handle, rgn, true);
; end;
; w1.Free;
end;