FMX.Graphics.TCanvas.IntersectClipRect

De RAD Studio API Documentation
Aller à : navigation, rechercher


Delphi

procedure IntersectClipRect(const ARect: TRectF); virtual;

C++

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

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
FMX.Graphics.pas
FMX.Graphics.hpp
FMX.Graphics TCanvas


Description

Définit la zone de dessin en formant une intersection entre la zone de délimitation en cours de TCanvas et un rectangle.

Le paramètre ARect spécifie la zone rectangulaire utilisée pour l'intersection.

Si ARect est vide, IntersectClipRect ne fait rien. Cela ne déclenche aucune erreur.

Remarque: Le rectangle de délimitation ne fonctionne que si l'état du canevas est d'abord enregistré en utilisant SaveState.

Exemples

Exemple de structure de code :

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

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

Exemple de démo complet :

procedure TForm1.IntersectBtnClick(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.InterSectClipRect(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.Red;
    Canvas.Fill.Kind := TBrushKind.Solid;
    Canvas.FillEllipse(TRectF.Create(TPointF.Create(100, 125), 275, 150), 100);
  
  finally
    Canvas.RestoreState(Save);
  end;
  finally
    Canvas.EndScene;
  end;
end;



Voir aussi