按图片中形状显示的窗体
要求背景色是纯色,本例中背景色是白色
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;
type
TForm3 = class(TForm)
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
var
x,y:integer;
tepRgn,WndRgn:HRGN;
begin
form3.Width := form3.image1.Width;
form3.Height := form3.image1.Height;
WndRgn := CreateRectRgn(0, 0, Width, Height);
y := 0;
while y<form3.image1.Height do
begin
x := 0;
while x < form3.image1.Width do
begin
//要求背景色是纯色,if语句中与背景色比较
//本例中背景色是白色,所以与clwhite比较,其他背景色一样
if (form3.image1.Canvas.Pixels[x, y] = clWhite) then
begin
tepRgn := CreateRectRgn(x, y, x+1, y+1);
CombineRgn(WndRgn, WndRgn, tepRgn, RGN_XOR);
DeleteObject(tepRgn);
end;
Inc(x);
end;
Inc
![Thumbs up (y) (y)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f44d.png)
;
end;
SetWindowRgn(Handle, WndRgn, true);
end;
end.