|
DelphiXE3 [FMX] 四角形辺描画 2014/05/19 |
四角形辺描画(DrawRectSides)は、キャンバス(Canvas)に 四角形の辺、及びコーナーを描画する機能です。四角形描画(DrawRect)の4辺のうち、描画したくない辺を指定出来る、と考えた方が分かりやすいかもしれません。
以下、ヘルプより
TCanvas.
DrawRectSides |
procedure DrawRectSides(const ARect: TRectF;
const XRadius, YRadius: Single;
const ACorners: TCorners;
const AOpacity: Single;
const ASides: TSides;
const ACornerType:TCornerType=TCornerType.ctRound);
procedure DrawRectSides(const ARect: TRectF;
const XRadius, YRadius: Single;
const ACorners: TCorners;
const AOpacity: Single;
const ASides: TSides;
const ABrush: TStrokeBrush;
const ACornerType:TCornerType=TCornerType.ctRound); |
カスタマイズされた角を持つrectangleの指定された辺を、現在の TCanvas に描画します。
DrawRectSides は、カスタマイズされた角を持つ TRectF の指定された辺を、現在の Stroke で描画します。
ARect パラメータは、描画される rectangle を示します。
XRadius パラメータは、水平方向での、角からカスタマイズの始点への距離を示します。 XRadius の最大値は、四角形の幅の半分です。これより大きい場合には、最大値が使用されます。
YRadius パラメータは、垂直方向での、角からカスタマイズの始点への距離を示します。 YRadius の最大値は、四角形の高さの半分です。これより大きい場合には、最大値が使用されます。
ACorners パラメータは、カスタマイズを適用する角を示します。
AOpacity パラメータは、Stroke 色の透明度を示します。
ASides パラメータは、描画される rectangle の辺を示します。 2 つの隣接辺が描画されない場合、それらの間の角はカスタマイズされ、その角は表示されます。 ASides が空の場合、角が定義されていれば、DrawRectSides はカスタマイズされた角を描画します。
ACornerType は任意のパラメータで、角のタイプを示します。 デフォルトでは、ctRound です。
描画ペンをカスタマイズするには、Stroke、StrokeThickness、StrokeCap、StrokeDash、 および StrokeJoin の各プロパティを使用します。
すべての辺を表示するには、AllSides 変数を使用します。 すべての角にカスタマイズを適用するには、AllCorners 定数を使用します。 |
[Shapes]内のペイントボックス(PaintBox)を配置し、ClipChildernプロパティを True にしておきます。uses節に「UIConsts」を追記します。
OnPaintイベントハンドラを下記のようにしてみます。
with Canvas do begin
Clear(claWhite);
Stroke.Kind := TBrushKind.bkSolid ;
Stroke.Color := claBlue ;
Stroke.Thickness := 4 ;
DrawRectSides(RectF(10,10, 100,100),0,0,AllCorners,1.0,AllSides);
end; |
保存・ビルド(コンパイル)・実行をすると下図のようになります。
点(10,10)から点(100,100)までを対角点とする、透過率 1.0 (完全不透明状態)で、青色の四角形を描画します。辺は「AllSides」を指定しているので全ての辺を描画しています。
第6引数 ASides で描画する辺を指定します。
ヘルプでは、下記のように記載されています。
type TSides = set of TSide; |
四角形の一連の辺を指定します。
すべての辺を選択するには、AllSides を使用します。 |
TSide = (sdTop, sdLeft, sdBottom, sdRight); |
表示する四角形の辺を指定します。
TSide は、カスタマイズされた四角形の辺を描画するのに使用されます。
TSides を使用すると、TSide の値の集合を選択できます。すべての辺を選択するには、AllSides を使用します。
TSide の取り得る値は以下のとおりです。
値 | 意味 |
sdTop | 上側の辺。 |
sdLeft | 左側の辺。 |
sdBottom | 下側の辺。 |
sdRight | 右側の辺。 |
|
下記のようにして、上と下の辺だけを描画させてみます。
with Canvas do begin
Clear(claWhite);
Stroke.Kind := TBrushKind.bkSolid ;
Stroke.Color := claBlue ;
Stroke.Thickness := 4 ;
DrawRectSides(RectF(10,10, 100,100),0,0,AllCorners,1.0,
[TSide.sdTop]);
end; |
保存・ビルド(コンパイル)・実行をすると下図のようになります。
下側のコーナー部分も描画されている様子です。
with Canvas do begin
Clear(claWhite);
Stroke.Kind := TBrushKind.bkSolid ;
Stroke.Color := claBlue ;
Stroke.Thickness := 4 ;
DrawRectSides(RectF(10,10, 100,100),10,10,AllCorners,1.0,
[TSide.sdTop]);
end; |
としてみると明らかです。
下側のコーナーは描画したくない、という事であれば、
with Canvas do begin
Clear(claWhite);
Stroke.Kind := TBrushKind.bkSolid ;
Stroke.Color := claBlue ;
Stroke.Thickness := 4 ;
DrawRectSides(RectF(10,10, 100,100),10,10,
[TCorner.crTopLeft, TCorner.crTopRight],1.0,
[TSide.sdTop]);
end; |
という感じでしょうか。
これ以外については、四角形描画(DrawRect)と同じ様子なので、その他の引数の説明については省略します。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Dehi入門編
>Delphi2010
>DelphiXE3
▲2014/05/18
2014/05/19
▼2014/05/20
シェアウェア
Script!World
データベース
|