Cómo conocer la longitud y altura en pixels de un texto
Artículo por Club Developers · 31 diciembre 2005
5902 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;


