Einzelnen Beitrag anzeigen

enigma

Registriert seit: 15. Jun 2008
35 Beiträge
 
#1

Polygon schraffieren ohne Brush.Style

  Alt 7. Jun 2016, 08:29
Hallo,

ich möchte ein Polygon schraffieren, ohne Brush.Style zu verwenden, da dies bei einigen Druckern nicht klappt.

Im Internet fand ich folgenden Algorithhmus, der aber nicht funktioniert.
Ich verwende Delphi 2010 und bin für jeden Tipp dankbar

Code:
procedure HatchSolidDash(ACanvas: TCanvas; const APolygon: array of TPoint;
   HatchColor: TColor; Frequency: integer);
 var
   I, J: integer;
   ClipRgn: HRGN;
   CanvasWidth, CanvasHeight: integer;
 begin
   ClipRgn := CreatePolygonRgn(APolygon[0], Length(APolygon), WINDING);
//Die Werte von APolygon sind hier alle korrekt

   SelectClipRgn(ACanvas.Handle, ClipRgn);
[COLOR="Red"]//ab hier sind alle folgenden Randbereiche (ClipRect.Right, Left, Top, Bottom) = 0[/COLOR]
 
   CanvasWidth := ACanvas.ClipRect.Right - ACanvas.ClipRect.Left;
   CanvasHeight := ACanvas.ClipRect.Bottom - ACanvas.ClipRect.Top;
   ...
 end;
Aufruf von HatchSolidDash:
Code:
HatchSolidDash(metaFileCanvas, arrRinnenSohlePix, clRed, 3);
Dabei ist
Code:
metafile := TMetafile.Create;
metafile.Transparent := True;
metaFileCanvas := TMetafileCanvas.Create(metafile, 0);

arrRinnenSohlePix: Array of TPoint;

Geändert von enigma ( 7. Jun 2016 um 08:53 Uhr)
  Mit Zitat antworten Zitat