Ver Mensaje Individual
  #1  
Antiguo 14-07-2006
rebollón rebollón is offline
Registrado
 
Registrado: may 2006
Posts: 3
Reputación: 0
rebollón Va por buen camino
Efecto extraño con fuentes

Hola a todos, me he encontrado con un comportamiento extraño al escribir textos de distinto tamaño en un bitmap. A ver si alguno de vosotros se le sabe porque puede estar pasando esto y me echa un cable. No sé muy bien como explicarlo, por lo que he hecho un ejemplo: en un form he añadido un Timage y un TButton y en el evento click del button he puesto lo siguiente:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  bmp: TBitMap;
  sTexto: String;
begin
  bmp:= TBitMap.Create;
  try
    sTexto:= 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';
    bmp.Height:= Image1.Height;
    bmp.Width:= Image1.Width;
    bmp.Canvas.Brush.Color:=clWhite;
    bmp.Canvas.Pen.Color:=clBlack;
    bmp.Canvas.Pen.Width:= 1;
    bmp.Canvas.Font.Name:= 'Times New Roman';
    bmp.Canvas.Font.Color:=clBlack;
    bmp.Canvas.Rectangle(0, 0, Image1.Width, Image1.Height);
    bmp.Canvas.Font.Size:= 17;
    bmp.Canvas.TextOut(20, 20, sTexto);
    bmp.Canvas.Font.Size:= 16;
    bmp.Canvas.TextOut(20, 50, sTexto);
    bmp.Canvas.Font.Size:= 15;
    bmp.Canvas.TextOut(20, 80, sTexto);
    bmp.Canvas.Font.Size:= 14;
    bmp.Canvas.TextOut(20, 110, sTexto);
    bmp.Canvas.Font.Size:= 12;
    bmp.Canvas.TextOut(20, 140, sTexto);
    bmp.Canvas.Font.Size:= 11;
    bmp.Canvas.TextOut(20, 170, sTexto);
    bmp.Canvas.Font.Size:= 10;
    bmp.Canvas.TextOut(20, 200, sTexto);
    bmp.Canvas.Font.Size:= 9;
    bmp.Canvas.TextOut(20, 230, sTexto);
    Image1.Picture.Assign(bmp);
  finally
    bmp.Free
  end;
end;

Al ejecutar el código se ve que las líneas correspondientes al tamaño 9 y 8 ocupan exactamente la misma longitud en pantalla, igual pasa entre los tamaños 7 y 6, sin embargo si escribo las mismas líneas en word salen de longitud distinta, o sea bien. ¿A qué puede ser debido? ¿Se os ocurre algo para resolverlo?

Última edición por dec fecha: 14-07-2006 a las 17:27:23.
Responder Con Cita