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

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

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE4 [FMX]ラベル(Label) 2015/04/08
 
前回は[Standard]内の「吹き出しパネル(CalloutPanel)」について記述しましたので、今回は、同じく[Standard]内の「ラベル(Label)」について記述します。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
   【DelphiXE3[FMXアプリケーション]の記事はこちら】
 

 
XE4(FMX)

FMX.StdCtrls.TLabel
XE3(FMX)

FMX.Controls.TLabel
 
ユニットが変わっており、オブジェクトインスペクタでのプロパティに Trimmingプロパティが追加されています。
 
(ヘルプより)
AutoSize
TLabelコントロールのサイズが、テキストに合わせて、自動的に拡張または縮小されるかどうかを決定します。
AutoSizeプロパティを使用すると、TLabelコントロールは、自動的にサイズを調整して、クライアント領域がテキストの高さは幅に合うようになります。AutoSizeがFalseの場合、TLabelコントロールのサイズは固定されます。AutoSizeがTrueになると、TLabelコントロールは、テキストが変更された際に、再調整されます。
AutoSizeをTrueに設定すると、自動的にWordWrapをFalseに設定します。
TextAlign
TextAlignプロパティは、TTextControlオブジェクトを、水平方向の整列で、どのように表示するかを示します。TextAlignには、次の値(TTextAlignで定義されている)のいずれかを設定できます:
・taCenter(デフォルト)--テキストを水平軸上で、
 TTextControlオブジェクトの真ん中に整列します。
・taLeading--テキストを水平軸上で、
 TTextControlオブジェクト中の一番左の位置に整列します。
・taTrailing--テキストを水平軸上で、
 TTextControlオブジェクト中の一番右の位置に整列します。
ITextSettings.TextSettingsに保持されているテキスト表現プロパティを使用する際には、TextAlignがHorzAlignに相当する点に留意してください。
VertTextAlign
VertTextAlignプロパティは、TTextControlコントロールを、垂直方向の整列で、どのように表示するかを示します。VertTextAlignには、次の値(TTextAlignで定義されている)のいずれかを設定できます:
・taCenter(デフォルト)--テキストを垂直軸上で、
 TTextControlオブジェクトの真ん中に整列します。
・taLeading--テキストを垂直軸上で、
 TTextControlオブジェクト中の一番上の位置に整列します。
・taTrailing--テキストを垂直軸上で、
 TTextControlオブジェクト中の一番下の位置に整列します。
ITextSettings.TextSettingsに保持されているテキスト表現プロパティを使用する際には、VertTextAlignがVertAlignに相当する点に留意してください。
WordWrap
テキストを、水平方向の整列で、どのように表示するかを示します。
TTextControlオブジェクト内のテキストが、コントロールの幅より長くなった場合に、折り返すのかどうかを示します。
WordWrapをTrueに設定すると、TTextControlコントロールを複数行テキストで表示することができます。WordWrapがTrueの場合、TTextControlオブジェクト内に長すぎて入らないテキストは、右マージンで折り返され、追加行に続きます。
WordWrapがFalseの場合、テキストは、TTextControlの単一行上に広がります。しかしこの場合、TTextControlに長すぎて入らないテキストは、途切れて表示されます。
WordWrapプロパティのデフォルト値は、Falseです。
デフォルトは Falseとありますが、貼り付け直後の値は Trueになっています。
 
Trimming
テキストを描画する領域からあふれたときのテキストの動作を指定します。
Trimmingは、TTextTrimming型で定義されている次の値を取ることができます:ttNone、ttCharacter、およびttWord。
このプロパティの値がttNoneでなく、テキストが描画領域に合わない場合、テキストは領域に合わせて切り詰められ、その短縮テキストの後に省略記号が表示されます。
メモ:iOSプラットフォーム下では、TrimmingはWordWrap=Falseであるときのみ動作します。
 
WordWrapプロパティ値が「True」のまま、Textプロパティ(※VCLの場合は Captionプロパティでした)の内容を「これはラベル(TLabel)コンポーネントです。」のように長い文字列にしてみると、

のように自動的に折り返されて複数行表示が行われますね(そのままでは縦にクリップされてしまうので、高さ Heightプロパティを大きくしています)。これは地味に便利かもしれません。
 
文字のフォントや大きさ等は、独自に指定するか、スタイルで指定するか、という切り替えをしっかりしておかないといけないですね。ほかの画面の文字等と共通にするところはスタイルで指定した方がいいのでしょう。StyledSettingsプロパティで、スタイルのまま使用するところと独自で指定するところを指定するのでも良いでしょうし。
 
 
Font.Familiy
Segoe UI(デフォルト)
MS ゴシック
メイリオ
MS Pゴシック
 
Font.Size
11(デフォルト)
8
16
30
 
Font.Style(下記を重複指定可能)
fsBold(太字)をTrue
fsItalic(斜体)をTrue
fsUnderline(下線)をTrue
fsStrikeOut(取消線)をTrue
 
FontColor
Black(デフォルト)
Blue
Blueviolet
#FF224466(即値の場合は負値で)
ColorAnimationを指定すると、点滅させたりする事が出来ます
 
スタイルブックを配置し、スタイルに「Air.Style」を指定し、
上記の Label1 は StyledSettingsプロパティを[ssFamily,ssFontColor,ssOther]、
Label2を配置し、 StyledSettingsプロパティを[ssFamily,ssFontColor]、
Label3を配置し、 デフォルトの [ssFamily,ssSize,ssFontColor]のままとした場合

のようになります。通常はスタイルそのまま利用して、文字の大きさだけを指定したい場合は StyledSettings.ssSize を False にして、文字の大きさは Font.Sizeを自由に指定して利用する、という事が出来ます。
 
 
下図のように画面レイアウトしてみました。
ラベルは、グループボックスやパネル同様、フォーカスを持ちません。

 

指定無し

Air.Style

Amakrits.Style

AquaGraphite.style

Blend.Style

Dark.style

GoldenGraphite.Style

Light.Style

RubyGraphite.style

Transparent.Style
 
MacOSX アプリケーションでも動作OKです。フォントは WindowsとMacOSXとで異なるため、フォント自動置換により文字長が変化して下図のような事になりますが。

 
それで問題になってくるのは、どんなフォントが使えるのか?なのですが
VCLにはあった、Screen.Fonts が、FireMonkey(FMX)にはありません。
また、Printer.Fonts は、Windowsでは利用できるのですが、MacOSX でコンパイルしようとするとエラーが発生し、そのまま継続をしても、フォント一覧は取得できません。
 
ですので、Windowsにて
procedure TForm2.FormShow(Sender: TObject);
var
 i : integer;
begin
 Memo1.Lines.Clear;
 // 以下、MacOSX では例外発生です
 for i:=0 to Printer.Fonts.Count-1 do
  Memo1.Lines.Add(Printer.Fonts[i]);
end;
のようにしてフォント名を取得して、メモ帳等のテキストエディタへコピー&ペーストし、ListBox2 の Itemsプロパティに貼り付け、ListBox1 の ListBoxItem.Font.Family に ListBox2.Items[n] を指定して確認してみました。

これを MacOSX にて動作させたところ、
まず、フォント名に全角文字が含まれているものは、Mac側での PAServer で 警告が表示されます。例えば、「MS ゴシック」「MS 明朝」「メイリオ」等は駄目です。
 
次に、全角文字などは、MacOSX ではどのフォントでも大抵が同じゴシック体の文字として見えます。差異は感じられません(「Arial Black」だけは太字のようになっています」)。但し、「Plantagenet Cherokee」「Times New Roman」「Comic Sans MS」「Georgia」は1つの明朝体の文字として見えます。この明朝体の文字も1種類のようで差異は感じられません。
半角文字については、「Courier New」「Impact」「Plantagenet Cherokee」「Times New Roman」「Tahoma」「Symbol」「Arial Black」「Comic Sans MS」「Georgia」「Arial Narrow」はそれぞれ若干独特な感じですが、それ以外は、1種類のゴシック体の文字のように見えます。 Windowsにて、「MS ゴシック」「MS Pゴシック」「MS 明朝」「MS P明朝」で文字を描き分けていたとしても、Mac では、それらはすべて同じゴシック体の固定ピッチフォントとして見えます。
 
この辺りは、かなり残念な結果、という感じですね。
 
なお、MacOSX側で利用できるフォント(半角英字のもの)があらかじめ分かっている場合、例えば「Osaka」「Times」「Helvetica」等を直接指定して表示させることは可能です。但し、Windowsと共通利用出来るフォントではない場合、Windows側では、おそらくデフォルト状態で見える事になると思われます。
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
>DelphiXE4
△TOP
▲2015/04/07
 2015/04/08
▼2015/04/09
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.