Einzelnen Beitrag anzeigen

Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: SelectClipRgn funktioniert nicht in Paint/OnPaint?

  Alt 5. Feb 2010, 09:13
Ja richtig, innerhalb von WM_PAINT gibts schon eine Clipping Region und daher muß man das ganze dann mit den entsprechenden Funktionen machen.

Damit sieht (der Vollständigkeit halber) der Code von oben wie folgt aus:

Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  R: TRect;
begin
  PaintBox1.Canvas.Pen.Color := clBlue;
  PaintBox1.Canvas.MoveTo(0,0);
  PaintBox1.Canvas.LineTo(PaintBox1.Width, PaintBox1.Height);

  R := PaintBox1.ClientRect;
  InflateRect(R, -10, -10);

  IntersectClipRect(PaintBox1.Canvas.Handle, R.Left, R.Top, R.Right, R.Bottom);

  PaintBox1.Canvas.Pen.Color := clRed;
  PaintBox1.Canvas.MoveTo(PaintBox1.Width, 0);
  PaintBox1.Canvas.LineTo(0, PaintBox1.Height);
end;
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat