Siguiendo el ejemplo anterior y cambiando el codigo:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
Text1.Align := TAlignLayout.Top;
Text1.Trimming := TTextTrimming.Word;
Text1.VertTextAlign := TTextAlign.Leading;
Text1.Text := 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore ' +
'et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut ' +
'aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse' +
'cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, ' +
'sunt in culpa qui officia deserunt mollit anim id est laborum.';
Text1.Height := Text1.Canvas.TextHeight(Text1.Text);
end;
procedure TForm1.Text1Click(Sender: TObject);
begin
if Text1.Align = TAlignLayout.Top then
Text1.Align := TAlignLayout.Client
else
begin
Text1.Align := TAlignLayout.Top;
Text1.Height := Text1.Canvas.TextHeight(Text1.Text);
end;
end;
Tendrias que ajustar el calculo del alto cuando el texto se contrae. Por ejemplo podrias pasarle al Canvas como parametro las 3 primeras lineas para que te devuelva el alto necesario para mostrar esas 3 lineas