Hallo!
ich erzeuge eine Fahne(aus einem TPanel) auf einem Image;
das geht auch soweit so gut; die Fahne selbst ist
eine Region und erzeuge ich so wie unten dargestellt.
Delphi-Quellcode:
TFahne =
class(TPanel)
...
hr:HRgn;
p:
array[1..6]
of TPoint;
...
end;
constructor TFahne.Create;
//Fahne ist vom Typ TPanel
begin
inherited create(pOwner);
Visible := true;
// //eigentl. Fahne
p[1] := Point(1,3);
p[2] := Point(10,0);
p[3] := Point(10,9);
p[4] := Point(3,12);
p[5] := Point(3,20);
p[6] := Point(1,20);
hr := CreatePolygonRgn(p,6,ALTERNATE);
SetWindowRgn(
Handle,hr,true);
//BoundsRect
SetBounds
(pLeft2
,pTop2-20
,20
,20);
end;
jetzt möchte ich die Fahne/das TPanel wieder löschen mit
Delphi-Quellcode:
procedure TFahne.LoeschenAusMap;
begin
DeleteObject(hr); //soll die Region freigeben
Free; //soll das Panel löschen
end;
das geht auch so, lässt sich kompilieren; beim laufen verursacht
dies aller dings an anderer Stelle einen Fehler "format ungültig ..."
was mache ich hier beim löschen der Fahne verkehrt?
muss ich die Fahne/Panel noch beim Owner bzw. Parent abmelden?