AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
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
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.