Registriert seit: 28. Mär 2005
Ort: Hamburg
850 Beiträge
Delphi 11 Alexandria
|
AW: Canvas: Wie Formen kombinieren?
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;
|
|
Zitat
|