2016-11-17 11 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

Я ничего не нашел для получения Х-коордов символов. Вы можете создать массив ширин символов для шрифта и сделать метод для подсчета абсолютного х и у персонажей, что-то вроде этого:

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