Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2006
Walcasar Walcasar is offline
Miembro
 
Registrado: oct 2006
Posts: 12
Poder: 0
Walcasar Va por buen camino
Letra en un cuadrado

Muchachos tengo el siguiente problema haber si alguien me puede ayudar.

En un TBitmap dibujo un cuadrado y debo colocar en su interior una letra ¿cómo hago para poder colocar esa letra y que quede centrada en el interior del cuadrado?

Saludos y gracias
Responder Con Cita
  #2  
Antiguo 20-10-2006
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si utilizas un TImage con un Bitmap, puede hacerlo con un código como este.
Código Delphi [-]
  Image1.Canvas.Brush.Style := bsClear;
  Image1.Canvas.TextOut(100, 100, 'A');

Para que salga centrada, puedes calcular X e Y en función del ancho del componente y utilizar TextWidth para afinar más...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-10-2006
Walcasar Walcasar is offline
Miembro
 
Registrado: oct 2006
Posts: 12
Poder: 0
Walcasar Va por buen camino
Gracias soy novato en esto.
Responder Con Cita
  #4  
Antiguo 20-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Pues calculando la posición, no es una operación tan complicada. Para eso puedes usar las propiedades TextHeight y TextWidth del Canvas, que te dan respectivamente la altura y el ancho de un texto dentro de ese canvas con la fuente actual. Por ejemplo:

Código Delphi [-]
var
  Bitmap: TBitmap;
  R: TRect;
begin
  Bitmap:= TBitmap.Create;
  try
    // Creamos un bitmap de 100x100
    Bitmap.Width:= 100;
    Bitmap.Height:= 100;
    // Indicamos las coordenadas del rectangulo
    R:= Rect(10,10,90,90);
    // Dibujamos el rectangulo
    Bitmap.Canvas.Rectangle(R);
    // Escribimos la letra
    Bitmap.Canvas.Font.Size:= 32;
    with Bitmap.Canvas do
      TextOut(
        (R.Left + R.Right - TextWidth('A')) div 2,
        (R.Top + R.Bottom - TextHeight('A')) div 2,
        'A');
    // Ahora por ejemplo lo dibujo, tu haz lo que quieras con el
    Canvas.Draw(0,0,Bitmap);
  finally
    Bitmap.Free;
  end;
end;
Responder Con Cita
  #5  
Antiguo 20-10-2006
Walcasar Walcasar is offline
Miembro
 
Registrado: oct 2006
Posts: 12
Poder: 0
Walcasar Va por buen camino
Muchas gracias por la ayuda es justo lo que necesito, maestros.
Responder Con Cita
  #6  
Antiguo 20-10-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otra opción:

Código Delphi [-]
Windows.DrawText(Canvas.Handle, 'A', -1, R, DT_CENTER or DT_VCENTER or DT_SINGLELINE);

donde Canvas es el canvas del bitmap y R el rectángulo donde se quiere centrar la letra.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
La Biblia al pie de la letra Nuria Humor 14 25-05-2007 01:35:33
Generar Tabla Chi-Cuadrado DarkDrakon Varios 2 19-10-2006 04:03:18
El chiste de la letra C Investment Humor 1 05-03-2005 22:01:45
Pulsar una letra en un DBgrid y que vaya al campo que empiece por esa letra Nbull SQL 8 16-12-2004 17:58:01
De número a letra samame Varios 1 10-03-2004 17:31:41


La franja horaria es GMT +2. Ahora son las 18:45:56.


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
Copyright 1996-2007 Club Delphi