Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Canvas: Wie Formen kombinieren?

  Alt 5. Nov 2010, 08:46
Ich habs jetzt mit einer Paintbox und 2 Regionen probiert (Kreis+Rechteck), die kombiniert werden. Leider verändert das gar nichts an der Ausgabe. D.h. der Kreisausschnitt ist nicht transparent sondern deckt mit dem Brush alles ab. Wo liegt der Fehler:

Delphi-Quellcode:
var
  r: TRect;
  RgnR, RgnK: HRgn;
begin
  r.Left := 10;
  r.top := 20;
  r.Right := 50;
  r.Bottom := 60;

  RgnR := CreateRectRgn(r.Left, r.top, r.Right, r.Bottom);
  RgnK := CreateEllipticRgn(r.Left, r.top, r.Right, r.Bottom);

  CombineRgn(RgnR, RgnR, RgnK, RGN_DIFF);
  SetWindowRgn(PaintBox.Canvas.Handle, RgnR, True);

  PaintBox.Canvas.Rectangle(0, 0, PaintBox.Width, PaintBox.Height);

  PaintBox.Canvas.brush.Color := clRed;
  PaintBox.Canvas.Rectangle(r);

  PaintBox.Canvas.brush.Color := clYellow;
  PaintBox.Canvas.Ellipse(r);
end;
  Mit Zitat antworten Zitat