Я пытаюсь разработать метод, который оправдывает мой текст в памятке/ярлыке. Но мне нужно взять X-позицию персонажа. Это возможно? Если нет, как я могу оправдать свои тексты в firemonkey? Я знаю, что это возможно на рабочем столе с использованием библиотеки VLC, но я ничего не нашел для firemonkey.Firemonkey: Как я могу определить положение X символа в памятке
0
A
ответ
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
См [TTextLayout] (http://docwiki.embarcadero.com/Libraries/en/FMX.TextLayout.TTextLayout), если вы можете работать его. Доступ к макету каждой строки в записке осуществляется с помощью: 'layout: = TTextLayout (memo1.Lines.Objects [i]);' –