![]() |
Regions wieder freigeben
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:
jetzt möchte ich die Fahne/das TPanel wieder löschen mit
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;
Delphi-Quellcode:
das geht auch so, lässt sich kompilieren; beim laufen verursacht
procedure TFahne.LoeschenAusMap;
begin DeleteObject(hr); //soll die Region freigeben Free; //soll das Panel löschen end; 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? |
Re: Regions wieder freigeben
Prüfe doch einfach mal ob die erst. Reg. noch vorhanden ist vor dem freigeben.
|
Re: Regions wieder freigeben
Kann ein Objekt sich eigentlich so ohnes Weiteres selbst freigeben? IIRC gab es dazu schonmal eine Diskussion hier.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz