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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] 円(Circle)2013/12/21
 
前回は [Shapes]内の「楕円」(Ellipse)について見てみました。
今回は、同じく[Shapes]内の「円」(Circle)について見てみます。
 
 
[Shapes]内
FMX
 
ヘルプより。
TCircle は、2 次元の円を定義します。これは TControl を継承しており、コントロールを構築するためのスタイルで使用されます。
 
次の TCircle プロパティは、円のサイズと位置を定義します:
・TCircle の境界四角形 ShapeRect は、その円の境界となる正方形を定義します:
 ・境界正方形の辺の長さは、ShapeRect 境界四角形の Min(Width, Height) と等しくなります。
 ・境界正方形の中心は、境界四角形の中心と一致します。
・TCircle の形は、取得された境界正方形の中に内接します。
・TCircle オブジェクトの Scale スケール係数を使用して、ローカルの座標軸に比例して、円の座標をスケーリングすることができます。Scaling は、円を移動させ、そのサイズを変更します。
・TCircle オブジェクトの回転軸 RotationCenter および回転角度 RotationAngle を使用して、円の形と位置を変更することができます。
 
TCircle は、Paint メソッドを使用して、曲線を描画し、形状の背景を塗りつぶすことができます。
 
Paint は、TCircle オブジェクトの Stroke、StrokeThickness、StrokeCap、StrokeDash、StrokeJoin、Fill の各プロパティで定義される、色や不透明度などのプロパティを持つ、描画ペンやブラシを使用して、曲線を描画したり、背景を塗りつぶしたりすることができます。
 


 
Fill
形の背景を塗りつぶすのに使用する、色とパターンを決定します。
Fill の値は FMX.Types.TBrush オブジェクトです。これは、形の背景を塗りつぶすための、グラデーション、ブラシ パターン、ブラシ色、不透明度、他のパラメータを定義することができます。
Stroke
グラフィックス プリミティブの直線や形状の輪郭を描画する際に使用される、色やパターンを決定します。
 
Stroke の値は FMX.Types.TBrush オブジェクトです。
StrokeDash
直線または形状の曲線の、一点鎖線スタイルを示します。
 
曲線または直線には、複数のセグメント(ダッシュとドットのグループ)を含めることができ、異なる長さおよびそのセグメント間のスペースで構成されます。
 
取り得る値は sdSolid、sdDash、sdDot、sdDashDot、sdDashDotDot、または sdCustom 定数で、FMX.Types.TStrokeDash 型で定義されています。
 
デフォルトは sdSolid で、単一の実線です。
新しいカスタム スタイルを作成するには、FMX.Types.TCanvas.SetCustomDash を使用します。
 
StrokeDash が sdSolid でなかった場合、StrokeCap は、曲線の各線のセグメントの終端がに影響する点に注意してください。
StrokeThickness
直接または形の曲線を描画する、ストローク アウトラインの幅をピクセルで示します。
StrokeCap
直線や曲線の終端を描画するために使用される、グラフィック スタイルを示します。
 
取り得る値は FMX.Types.TStrokeCap 型で定義されている、scFlat および scRound 定数です。
デフォルトは scFlat -- 四角形の線の終端です。
曲線または直線には、複数の線要素が含まれている場合があります。 StrokeDash が sdSolid ではない場合、StrokeCap は各線要素の終端に影響を及ぼします。
StrokeJoin
直線のセグメント、形状曲線のセグメント、またはパスのセグメントをつなぐ、結合点のスタイルを示します。
 
取り得る値は、sjMiter、sjRound、sjBevel 定数で、FMX.Types.TStrokeJoin 型で定義されています。
 
デフォルトは sjMiter で、線のセグメント群を、セグメント間でシャープな角をなめらかにすることなしに、結合します。
 
 
StrokeThickness プロパティは線幅を指定します。
1(デフォルト)
5
10
ピクセル(ドット)値で指定します。Single型ですので小数点以下の指定も出来、中間色っぽい補正が行われるようです。
この値は、Stroke.Thickness プロパティと同じになるようです。
 
StrokeCap プロパティは線端状態を指定します。
円であるため「線端」はありませんが、線種表現が変わってきます。
FMX.Types.TStrokeCap.scFlat
0 (デフォルト)
FMX.Types.TStrokeCap.scRound
1
この値は、Stroke.Cap プロパティと同じになるようです。
 
StrokeDash プロパティは線種を指定します。
FMX.Types.TStrokeDash.sdSolid
0 (デフォルト)
FMX.Types.TStrokeDash.sdDash
1
FMX.Types.TStrokeDash.sdDot
2
FMX.Types.TStrokeDash.sdDashDot
3
FMX.Types.TStrokeDash.sdDashDotDot
4
FMX.Types.TStrokeDash.sdCustom
5
(任意)
この値は、Stroke.Dash プロパティと同じになるようです。
上記は端点状態がフラットの場合です。
 
StrokeJoin プロパティは線と線の結合部をどのように描画するかを指定します。が、円には角がないので指定しても表現は変わりません。
FMX.Types.TStrokeJoin.sjMiter
0 (デフォルト)
FMX.Types.TStrokeJoin.sjRound
1
FMX.Types.TStrokeJoin.sjBevel
2
この値は、Stroke.Join プロパティと同じになるようです。
 
 
線の色等は、Stroke プロパティにて指定します。
内部の塗り潰しの色等は、Fill プロパティにて指定します。
Stroke、Fill 両プロパティは、ブラシ TBrush型ですが、ブラシの種類は、Stroke.Kind、Fill.Kind プロパティにて指定します。
bkBitmap外部ビットマップ イメージ
bkGradientグラデーション グラデーションの種類と色を設定できる
bkNoneなし(透明塗り潰し)
bkResource指定されたブラシのリソース
bkSolid固定色 Color プロパティを使用して設定できる
bkGrab指定コントロールのスナップショット(※無効)
 
 
Stroke.Kind = bkSolid 時
Color := #FF000000(Black、α=255)
Color := #80000000(Black、α=128)
 
透過させたい場合は、恒例の通り、Opacity プロパティを指定する事でも可能です(但し、塗り潰し部分も含めて全体が透過されます)。
 
Stroke.Kind = bkNone 時
透明状態になります。
 
Stroke.Kind = bkBitmap 時
Bitmap は 画像「」を使用
WrapMode = wmTile
WrapMode = wmTileOriginal
WrapMode = wmTileStretch
 
Stroke.Kind = bkGrab 時
Control に スナップショットするコントトール名を指定するようですが、どうも想定したように動作せず、透明状態になります。
 
Stroke.Kind = bkGradient 時
初期状態
初期状態から、下記画面を出してそのまま[OK]
 
Stroke.Kind = bkResource 時
フォーム起動時のイベントハンドラで
procedure TForm1.FormShow(Sender: TObject);
var
 myBrush: TBrushObject;
begin
 myBrush := TBrushObject.Create(Self);
 myBrush.Brush.Kind:=TBrushKind.bkGradient;
 myBrush.Brush.Gradient.Color := $FF0000FF;
 myBrush.Brush.Gradient.Color1:= $FFFF0000;
 Circle2.Stroke.Kind
  := TBrushKind.bkResource;
 Circle2.Stroke.Resource.StyleResource
  := myBrush;
end;
のようにした場合
(ヘルプより)
FMX.Types.TBrush.Resource
ブラシのパターンを定義するリソースを示します。
 
Resource は、ブラシのパターンや色を定義するために使用される、TBrushResource オブジェクトを指しています。TBrushResource.StyleResource プロパティを TBrushObject に設定します。これには、パターンの特性(色、種類、グラデーションなど)が保持されています。TBrushObject は、複数のコントロールを同じように塗るのに使用できます。
 
メモ: Resource プロパティを適切に使用するには、Kind プロパティを bkResource に設定する必要があります。
 
 
Fill.Kind = bkSolid 時
Color := #FF000000(Black、α=255)
Color := #80000000(Black、α=128)
 
透過させたい場合は、恒例の通り、Opacity プロパティを指定する事でも可能です(但し、エッジ部分も含めて全体が透過されます)。
 
Fill.Kind = bkNone 時
透明状態になります。
 
Fill.Kind = bkBitmap 時
Bitmap は 画像「」を使用
WrapMode = wmTile
WrapMode = wmTileOriginal
WrapMode = wmTileStretch
 
Fill.Kind = bkGrab 時
Control に スナップショットするコントトール名を指定するようですが、どうも想定したように動作せず、透明状態になります。
 
Fill.Kind = bkGradient 時
初期状態
初期状態から、下記画面を出してそのまま[OK]
 
Fill.Kind = bkResource 時
フォーム起動時のイベントハンドラで
procedure TForm1.FormShow(Sender: TObject);
var
 myBrush: TBrushObject;
begin
 myBrush := TBrushObject.Create(Self);
 myBrush.Brush.Kind:=TBrushKind.bkGradient;
 myBrush.Brush.Gradient.Color := $FF0000FF;
 myBrush.Brush.Gradient.Color1:= $FFFF0000;
 Circle2.Fill.Kind
  := TBrushKind.bkResource;
 Circle2.Fill.Resource.StyleResource
  := myBrush;
end;
のようにした場合
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/12/20
 2013/12/21
▼2013/12/22
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.