Cómo conocer la longitud y altura en pixels de un texto
Artículo por Club Developers · 31 diciembre 2005
5040 vistas
El siguiente código permite recuperar la longitud y altitud de un pÃxel dentro de un texto.
La función soporta texto multilínea y devuelve la longitud de la línea más larga y la altura total.
El principio es la utilización de las funcionalidades del Canvas de un TBitmap para recuperar las medidas del texto.
La función soporta texto multilínea y devuelve la longitud de la línea más larga y la altura total.
El principio es la utilización de las funcionalidades del Canvas de un TBitmap para recuperar las medidas del texto.
delphi
Function TextSize(Frase: string; Control: TFont = nil): TPoint; var  DC: HDC;  X: Integer;  Rect: TRect;  C : TBitmap; begin  C := TBitmap.create;  if Control <> nil then C.Canvas.Font := Control;  Rect.Left := 0;  Rect.Top := 0;  Rect.Right := 0;  Rect.Bottom := 0;  DC := GetDC(0);  C.Canvas.Handle := DC;  DrawText(C.Canvas.Handle, PChar(Frase), Length(Frase), Rect, (DT_EXPANDTABS or DT_CALCRECT));   C.Canvas.Handle := 0;   ReleaseDC(0, DC);   Result.X := Rect.Right - Rect.Left;   Result.Y := Rect.Bottom - Rect.Top;   C.Free; end;