2016-11-17 18 views
0

メモ/ラベルのテキストを正当化するメソッドを開発しようとしています。しかし、私はキャラクターのXポジションをとる必要があります。これは可能ですか?もしそうでなければ、私はどのように私のテキストをfiremonkeyで正当化できますか?私はこれがVLCライブラリを使用してデスクトップ上で可能であることを知っていますが、私はfiremonkeyのために何も見つかりませんでした。Firemonkey:メモ内の文字のX位置を検出するにはどうすればいいですか?

+1

[TTextLayout](http://docwiki.embarcadero.com/Libraries/en/FMX.TextLayout.TTextLayout)を参照してください。メモの各行のレイアウトは、次のようにアクセスします。 'layout:= TTextLayout(memo1.Lines.Objects [i]);' –

答えて

2

文字のX座標を取得するためのものは見つかりませんでした。 あなたのフォントの文字の幅の配列を作成し、文字の絶対xとyをカウントする方法を行い、このようなものができます:あなたはこれを使用することができ、テキストの整列のために

for y := 0 to Memo.Lines.Count - 1 do 
    for x := 0 to Memo.Lines[y].Length - 1 do 
    begin 
    AbsoluteX := AbsoluteX + CharWidths[Memo.Lines[y][x]]; 
    AbsoluteY := AbsoluteY + CharHeights[Memo.Lines[y][x]]; 
    // Be careful, for crossplatform using you should use Copy(), not string[n] 
    end; 

(ラベルのためにあなたもVerTextAlignを持っています)

Memo.TextAlign := TTextAlign.Trailing; // For right justify 
Memo.TextAlign := TTextAlign.Center; // For center justify 
Memo.TextAlign := TTextAlign.Leading; // For default left justify 
関連する問題