Da sich die Regions im Programmverlauf wohl nicht ändern werden, würde ich sie einmalig (z.B. im OnCreate) anlegen, mir das jeweilige
Handle merken und sie im OnDestroy dann wieder zerstören. Beispielhaft mit einer einzelnen Region:
Delphi-Quellcode:
type
TDeinForm = class(TForm)
private
FRgnSingle: hRgn;
...
end;
procedure TDeinForm.FormCreate(Sender: TObject);
begin
FRgnSingle := CreatePolygonRgn(...);
if FRgnSingle = 0 then
raise SomeException;
end;
procedure TDeinFom.FormDestroy(Sender: TObject);
begin
DeleteObject(FRgnSingle);
end;