TextWidth возвращает неправильное значение в приложении AndroidAndroid

Форум для тех, кто программирует под Android
Anonymous
TextWidth возвращает неправильное значение в приложении Android

Сообщение Anonymous »

У меня есть приложение Delphi 12 FMX, где появляется TEDIT, так что дополнительная информация. Приведенный ниже код работает при составлении для Windows, но расчет ширины текста неверен, когда скомпилируется для Android. Hintpnl - тип tcalloutpanel и содержит Hintmemo, который является Tmemo. Я добавил немного прокладки в ширину текста, чтобы все текст отображался для Android, но это не надежное решение. Что я делаю не так? < /P>
procedure TfmMain.EditEnter(Sender: TObject);
var pad: Integer;
begin
if TEdit(Sender).Hint '' then
begin
HintMemo.Text := TEdit(Sender).Hint + ' ';
Pad := 0;
{$IFDEF ANDROID}
Pad := 40;
{$ENDIF ANDROID}
HintPnl.Width := HintMemo.Canvas.TextWidth(HintMemo.Text) + Pad;
HintPnl.Position.X := TEdit(Sender).Position.X - HintPnl.Width;
HintPnl.Position.Y := TEdit(Sender).Position.Y - HintPnl.Height;
HintPnl.Visible := True;
end;
end;


Подробнее здесь: https://stackoverflow.com/questions/795 ... ndroid-app

Вернуться в «Android»