Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Wie kann man mit HRGN arbeiten?

  Alt 18. Jun 2012, 20:18
Wenn Du weißt wo Du es zerlegen willst könntest Du in diesem Beispiel mit vier Regions OR,OL,UR,UL und jeweiligen Combine mit Deiner Region 4 Stück erzeugen.
Wenn Du das Ganze irgendwie automatisieren musst, kannst Du vielleicht folgenden Fetzen brauchen ...
Delphi-Quellcode:
procedure TForm5.Button1Click(Sender: TObject);
type
 RgnRects = array[0..0] of TRect;
 pRgnRect = ^RgnRects;
var
 rgn:hrgn;
 RgnData : pRgnData;
 aSize : DWORD;
 RgnPtr : pRgnRect;
 aRect : TRect;
 i:Integer;
begin
 rgn := CreateEllipticrgn(0,0,200,200);
 aSize := GetRegionData(rgn, 0, nil);
 GetMem(RgnData, aSize);
 GetRegionData(rgn, aSize, RgnData);
 RgnPtr := @RgnData.Buffer;
 for i := 0 to pred(RgnData.rdh.nCount) do
    begin
    aRect := RgnPtr[i];
    Canvas.Rectangle(aRect);
    end;
 FreeMem(RgnData);
 DeleteObject(rgn);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat