GetRgnHandle example for Delphi
The following code creates a region, saves its handle and adds the saved region beside the current region.
procedure TForm1.Button1Click(Sender: TObject);
var
{Declare local variables. }
OffsetX, OffsetY: Integer;
SavedRegion: THandle;
begin
{Initialize the variables that we will manipulate to simulate mouse coordinates. }
OffsetX := Lead1.BitmapWidth div 8;
OffsetY := Lead1.BitmapHeight div 6;
{Create an elliptical region. }
Lead1.SetRgnEllipse(OffsetX, OffsetY, OffsetX, OffsetY, L_RGN_SET);
{Save a copy of the region. }
SavedRegion := Lead1.GetRgnHandle;
{Offset original Region}
Lead1.OffsetRgn(OffsetX div 2, OffsetY div 2);
{Add the saved region to the bitmap, offsetting it so that we can see it. }
Lead1.SetRgnHandle(SavedRegion, OffsetX, OffsetY, L_RGN_OR);
{Delete the saved region. }
Lead1.DeleteRgnHandle(SavedRegion);
{Fill the bitmap region with blue. }
Lead1.Fill(RGB(0, 0, 255));
{Free the bitmap region. }
Lead1.FreeRgn;
{Repaint the image so that we can see how the image was updated. }
Lead1.ForceRepaint;
end;