|
DelphiXE3 [FMX]パスラベル(PathLabel) 2013/10/01 |
前頁で[Standard]内の「ImageControl」(イメージコントロール)について書きましたので次は、同じく[Standard]内の「PathLabel」(パスラベル)です。これはDelphi2010、XE3のVCLアプリケーションにはありません。VCLの Shapeコンポーネントに近いのでしょうか?扱い方は全く違います。
| |
|
(ヘルプより)
Data
バインディングのために、子の 1 つに関連付けられているデータを示します。 |
FMX.Types.TPathData
TPathData は、連結された一連の曲線や直線を表します。
TPathData を使用すると、一連の曲線や直線を連結することでグラフィック図形を作成できます。TPathData は、TCanvasインスタンスをコンポーネントとして持つオブジェクト上で描画したり塗りつぶすことができます。
TPathDataを使用すると、TPathAnimation の適用時にたどるパスを作成できます。
TPathDataでは、ワールド座標空間における幾何学的図形の座標を TPathPointの配列に保持します。定義している基本図形を識別するため、保存された各点には特定の型があります。TPathData の複合図形は、直線や曲線などの一連の基本図形で構成されます。TPathPoint の配列にアクセスするには、Count プロパティと Points プロパティを使用します。
TPathData を初期化するには、Dataプロパティを設定するか、新しい図形をそれぞれ明示的に追加します。TPathDataでは、図形を明示的に追加する方法が定義されています。「TPathDataのメソッド」を参照してください。
デフォルトでは、TPathData インスタンスが生成されると、追加する新しい図形はそれぞれパスの末尾に追加されます。前の図形の終了点が新しい図形の開始点になります。追加する新しい要素の開始点をカスタマイズするには、MoveToメソッドかMoveToRelメソッドを使用します。 |
WrapMode
このパスラベルのコンテンツを描画される際の方法を示します。
WrapModeは、次の値のいずれかを取ります。
pwFit
グラフィカルパスコンテンツは、このパスラベルの領域全体に合わせて表示されます。
pwOriginal
グラフィカルパスコンテンツは、このパスラベル内に、元のサイズで表示されます。
pwStretch(デフォルト)
グラフィカルパスコンテンツは、このパスラベルの領域全体に合わせて、引き伸ばされます。
pwTile
グラフィカルパスコンテンツは、このパスラベルの領域全体を埋めるように、1回または複数回、タイル状に敷き詰められます。 |
|
(ヘルプより)
TPathDataに格納されている情報を FireMonkey フォーム内に表示するためのグラフィカル コントロールを表します。
FireMonkey フォームで TPathLabel コンポーネントを使用すると、TPathData の表示機能を追加できます。たとえば、以下の画像では、TPathData オブジェクトを使って 3 つの四角形を表示しています。
var
PathData: TPathData;
begin
PathData:= TPathData.Create;
PathData.AddRectangle(RectF(20, 20, 80, 80), 0, 0, AllCorners);
PathData.AddRectangle(RectF(10, 10, 90, 90), 0, 0, AllCorners);
PathData.AddRectangle(RectF(0, 0, 100, 100), 0, 0, AllCorners);
PathLabel1.Data := PathData;
{ ... other instructions ... } |
|
というわけで、パスデータ(ひとまとまりの図形データ)を登録させて、それを表示させるコンポーネントです。長方形とか楕円とかを描く事が出来ますが、VCLのShapeコンポーネントのようにプロパティで種類を選択するわけではありません。「ラベル」とありますが、文字ではありません。
Dataプロパティの右端にある[…]をクリックすると
のような画面が表示されますが、これの使い方がさっぱり分かりません。「SVG」とあるので、SVGファイルをテキスト状態で貼り付けたらプレビューにその絵が出るのかと思いましたが、全く反応せず、何をどうしたら良いのかよく分かりません。
ヘルプにあるプログラムコードをボタンを押したら実行するようにしてみます。
procedure TForm1.Button1Click(Sender: TObject);
var
PathData: TPathData;
begin
PathData:= TPathData.Create;
PathData.AddRectangle(RectF(20, 20, 80, 80), 0, 0, AllCorners);
PathData.AddRectangle(RectF(10, 10, 90, 90), 0, 0, AllCorners);
PathData.AddRectangle(RectF(0, 0, 100, 100), 0, 0, AllCorners);
PathLabel1.Data := PathData;
end; |
保存・コンパイル・実行を行います。
↓
WrapModeプロパティの指定によって表示方法は変わってきます。
例えば、
procedure TForm1.Button1Click(Sender: TObject);
var
PathData: TPathData;
begin
PathData:= TPathData.Create;
PathData.AddEllipse(RectF(0,0,10,10));
PathLabel1.Data := PathData;
end; |
のようにした場合、
WrapModeプロパティ値によって下図のようになります。
pwFit
|
pwOriginal
|
pwStretch(デフォルト)
|
pwTile
|
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/09/30
2013/10/01
▼2013/10/02
シェアウェア
Script!World
データベース
|