FMX.Graphics.TCanvas.IntersectClipRect
Delphi
procedure IntersectClipRect(const ARect: TRectF); virtual;
C++
virtual void __fastcall IntersectClipRect(const System::Types::TRectF &ARect);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
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;