![]() |
Longitud de un String en pixeles
Hola,
¿Se puede obtener la longitud de una cadena en pixeles? y si es posible, ¿como? Saludos. |
Hola:
Esta pregunta pertenece más bien al foro de gráficos. El método TextWidth (cadena) del TCanvas devuelve la longitud en píxeles de dicha cadena. Ten en cuenta que debes disponer de un Canvas para usarla (está claro), no hay una función general para esto, puesto que depende del tipo de fuente, tamaño y estilo que haya asignada al Canvas y de otras características del mismo. Lo normal es que lo apliques sobre el Canvas sobre el que quieres dibujar, si no, puedes crear un objeto que disponga de Canvas (un Bitmap, on un THintWindow), asignarle la fuente deseada y llamar al método. También puedes llamar a alguna función del API, como GetTextExtentPoint, a la que debes pasar el Handle del control. Un saludo |
procedure TForm1.Button1Click(Sender: TObject);
var nAncho:Integer; s:String; begin s:='Ejemplo de ancho'; form1.Canvas.Font.size:=20; with form1.Canvas do begin nAncho:=TextWidth(s); ShowMessage(IntToStr(nAncho)); end; end; Un Saludo. |
Muchas gracias amigos por la solucion que me proveyeron. Fue justo lo que necesitaba. Mis disculpas por no poner en el foro de graficos.
Saludos. |
Longitud de la cadena
Otra manera, menos ortodoxa, es declarando primero en los canvas el tipo de fuenta que vas a utilizar y luego calculando por la longitud de la cadena y el tamaño de la fuente.
var pixel:integer; begin obj.canvas.font.type:=xxxx; obj.canvas.font.size:=yyyy; pixel:=(length(cadena) *yyyy); end; |
ScarCom, No te has dado cuenta de la antiguedad de este hilo?:D:D
Saludos |
La franja horaria es GMT +2. Ahora son las 21:25:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi