Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Longitud de un String en pixeles (https://www.clubdelphi.com/foros/showthread.php?t=466)

andre 15-05-2003 14:14:47

Longitud de un String en pixeles
 
Hola,

¿Se puede obtener la longitud de una cadena en pixeles? y si es posible, ¿como?

Saludos.

andres1569 15-05-2003 14:57:42

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

marcoszorrilla 15-05-2003 15:03:18

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.

andre 15-05-2003 15:45:11

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.

ScarCom 09-06-2006 01:11:26

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;

vtdeleon 09-06-2006 02:36:39

ScarCom, No te has dado cuenta de la antiguedad de este hilo?:D:D

Saludos


La franja horaria es GMT +2. Ahora son las 19:25:55.

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