Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   FireMonkey (https://www.clubdelphi.com/foros/forumdisplay.php?f=50)
-   -   Ajuste de fuentes segun espacio del contenedor (https://www.clubdelphi.com/foros/showthread.php?t=95282)

Esteban74 12-07-2021 15:19:40

Ajuste de fuentes segun espacio del contenedor
 
Hola, se me presenta una situación en la que un TLabel debe mostrar una información pero con WordWrap en False y autoSize en True , el problema es que en un dispositivo android el texto de dicho label es mas largo que su ancho (Width), por lo que busco reducir el tamaño de la fuente en forma dinámica para que se visualice correctamente, implemento algo así pero me entra en bucle infinito:

Código Delphi [-]
procedure TfrmPrincipal.labRecuperaDatosPaint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
 while Canvas.TextWidth((sender as TLabel).Text) >= (sender as TLabel).Width do
  (sender as TLabel).Font.Size := (sender as TLabel).Font.Size - 1;
end;

No se si estoy cometiendo un error de sintaxis o mi enfoque para resolver el problema no es el correcto, si alguien paso por esto antes agradecería su ayuda. Gracias por su tiempo.

Neftali [Germán.Estévez] 13-07-2021 08:41:20

Si conoces el espacio disponible, creo recordar que a partir del Canvas puedes saber el tamaño que ocupa un texto concreto, con las propiedades actuales de fuente (de ese Canvas).
Se trataría de ir reduciendo la fuente, hasta conseguir que el tamaño obtenido sea menor que el disponible.

Revisa:
http://docwiki.embarcadero.com/Libra...nvas.TextWidth


La franja horaria es GMT +2. Ahora son las 04:50:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi