FMX.Graphics.TCanvas.IntersectClipRect

提供: RAD Studio API Documentation
移動先: 案内検索


Delphi

procedure IntersectClipRect(const ARect: TRectF); virtual; abstract;

C++

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

プロパティ

種類 可視性 ソース ユニット
procedure
function
public
FMX.Graphics.pas
FMX.Graphics.hpp
FMX.Graphics TCanvas


説明

TCanvas の現在のクリップ領域と四角形が、交差することにより描画領域を定義します。

ARect パラメータは、共通部分を出す際に使用される四角形領域を示します。

ARect が空の場合、IntersectClipRect は何も行いません。エラーも発生させません。

メモ: キャンバスの状態が最初に SaveState によって保存されている場合にのみ、クリップした四角形は機能します。

Examples

Code structure example:

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;

完全デモ例:

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;



関連項目