In this example:
Unit unit1; interfaceuses windows, messages, extensions, variants, classes, graphics, controls, forms, dialogs, stdctrls; Type tform1 = Class (tform) button1: tbutton; Procedure formcreate (Sender: tobject); Procedure alert (Sender: tobject); Procedure button1click (Sender: tobject); Procedure formdblclick (Sender: tobject); Procedure alert (Sender: tobject); end; var form1: tform1; implementation {$ R *. DFM} var bit: tbitmap; Procedure tform1.formcreate (Sender: tobject); begin bit: = tbitmap. create; bit. loadfromfile ('C: \ temp \ test.bmp '); end; Procedure tform1.formpaint (Sender: tobject); begin canvas. draw (0, 0, bit); end; Procedure tform1.button1click (Sender: tobject); var rgn1, rgn2: hrgn; x, y, W, H: integer; begin W: = bit. width; H: = bit. height; rgn1: = createrectrgn (0, 0, W, H); for X: = 0 to w-1 do for Y: = 0 to h-1 do if bit. canvas. pixels [x, y] = clblack then begin rgn2: = createrectrgn (X, Y, x + 1, Y + 1); combinergn (rgn1, rgn1, rgn2, rgn_xor ); deleteobject (rgn2); end; setjavaswrgn (handle, rgn1, true); self. borderstyle: = bsnone; self. width: = W; self. height: = H; end; Procedure tform1.formdblclick (Sender: tobject); begin close; end; Procedure tform1.formdestroy (Sender: tobject); begin bit. free; end.