FMX.Graphics.TCanvas.ExcludeClipRect

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche


Delphi

procedure ExcludeClipRect(const ARect: TRectF); virtual;

C++

virtual void __fastcall ExcludeClipRect(const System::Types::TRectF &ARect);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
FMX.Graphics.pas
FMX.Graphics.hpp
FMX.Graphics TCanvas


Beschreibung

Schließt einen rechteckigen Bereich aus dem Clipping-Bereich von TCanvas aus.

ExcludeClipRect wird von TCanvas-Nachkommen implementiert, um einen angegebenen Rechteckbereich aus dem Zeichenbereich des TCanvas-Objekts auszuschließen.

Der Parameter ARect gibt den auszuschließenden Rechteckbereich an, in dem das Zeichnen keine Auswirkung hat.

Wenn ARect leer ist, führt ExcludeClipRect nichts aus. Diese Methode löst keine Fehler aus.

Hinweis: Das Clipping-Rechteck funktioniert nur, wenn der Canvas-Status zuerst mit SaveState gespeichert wurde.

Beispiele

Beispiel der Codestruktur:

var
  MyCanvas: TCanvas;
  Save: TCanvasSaveState;
  MyRect : TRectF;
begin
  try  
    Save := MyCanvas.SaveState;
  
    // Create the clipping rectangle
    MyRect.Create (20, 20, 100, 100);   
    MyCanvas.ExcludeClipRect (MyRect);
    
    // Do your drawing here

  finally   
    MyCanvas.RestoreState(Save);
  end;
end;

Vollständiges Demo-Beispiel:

procedure TForm1.ExcludeBtnClick(Sender: TObject);
var
  Canvas: TCanvas;
  MyRect: TRectF;
  Save: TCanvasSaveState;
begin
  Canvas := Image1.Bitmap.Canvas;
  MyRect := TRectF.Create(TPointF.Create(50, 50), 160, 160);
  Canvas.BeginScene;
  try
    Save := Canvas.SaveState;
  try

    Canvas.ExcludeClipRect(MyRect);
    Canvas.Stroke.Color := TAlphaColorRec.Lime;
    Canvas.Stroke.Thickness := 3;
    Canvas.Stroke.Dash := TStrokeDash.Dash;
    Canvas.DrawRect(MyRect, 0, 0, [], 1);
    Canvas.Fill.Color := TAlphaColorRec.Aqua;
    Canvas.Fill.Kind := TBrushKind.Solid;
    Canvas.FillEllipse(TRectF.Create(TPointF.Create(10, 10), 125, 125), 100);

  finally
    Canvas.RestoreState(Save);
  end;
  finally
    Canvas.EndScene;
  end;
end;

Siehe auch