Копался, копался так ничего и не получилось, в итоге сделал как предложил ruslan (пост 4) но со своими доработками, если кому интересно
на создание объекта и на событие OnUpdatingObjects (на TListView) сделал
aItem.Height := Round(CalculateTextHeight(aItem.Text, aItem.Objects.TextObject.Width, 36, 130, aItem.Objects.TextObject.Font))+4;
aItem - TListViewItem - элемент списка из TListView
сама функция вот
function CalculateTextHeight(aText: String; aWidth: Single; aMinHeight: Single = 0; aMaxHeight: Integer = 0; aFont: TFont) : Single;
begin
FTextLayout.BeginUpdate;
try
FTextLayout.Text := aText;
FTextLayout.MaxSize := TPointF.Create(aWidth, 1000);
FTextLayout.WordWrap := True;
FTextLayout.Font.Assign(aFont);
FTextLayout.HorizontalAlign := FMX.Types.TTextAlign.Leading;
FTextLayout.VerticalAlign := FMX.Types.TTextAlign.Leading;
finally
FTextLayout.EndUpdate;
end;
Result := FTextLayout.Height;
if aMinHeight>0 then
if Result < aMinHeight then
Result := aMinHeight;
if aMaxHeight>0 then
if Result > aMaxHeight then
Result := aMaxHeight;
end;
Параметры
aText - текст, который там отображен,
aWidth - ширина текстового объекта,
aMinHeight - минимально возможная высота (0 - если не нужно ограничение)
aMaxHeight - максимально возможная высота (0- если не нужно ограничение)
aFont - шрифт, используемый объектом
Сразу скажу, чтоб не говорили, что плагиатор, да основная часть и идея функции взята с этого форума.
P.S.Прибавил 4 пикселя, для того, чтобы рамка поместилась