У меня есть приложение 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