Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#8

AW: Polygon schraffieren (ohne Canvas.Polygon)

  Alt 22. Dez 2013, 11:59
Da ich gerade etwas ähnliches brauchte (eigentlich einen Farbverlauf in einem Polygon - aber ob Farbverlauf oder Schraffur, nur der Inhalt ändert sich) habe ich Uwes Tipp in Code umgesetzt.

Und weil es kurz vor Weihnachten ist, habe ich das mit Schraffur auch ausprobiert:

Delphi-Quellcode:
procedure Dreieck(ABmp: TBitmap);
var
  P: array[0..3] of TPoint;
  Rgn : HRGN;
begin
  with ABmp do
  begin
    P[0] := Point(0, Height);
    P[1] := Point((Width div 2), 0);
    P[2] := Point(Width, Height);
    P[3] := P[0];

    Rgn := CreatePolygonRgn(P[0], Length(P), WINDING);
    SelectClipRgn(Canvas.Handle, Rgn);

    Canvas.Brush.Style := bsDiagCross;
    Canvas.FillRect(Canvas.ClipRect);

    DeleteObject(Rgn);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  with Image1 do
  begin
    Picture.Bitmap.Width := Width;
    Picture.Bitmap.Height := Height;

    Dreieck(Picture.Bitmap);
  end;
end;
Ich denke es ist alles richtig so.
  Mit Zitat antworten Zitat