Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2024
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Poner un texto en una imagen

Hola a tod@s.

tengo este código que genera un texto con una pequeña inclinación:
Código Delphi [-]
var
 
  LOGFONT : TLogFont;
  Font    : HFONT;



begin
  LOGFONT.lfHeight := 30;
  LOGFONT.lfWidth  := 10;
  LOGFONT.lfWeight := FW_NORMAL;
  LOGFONT.lfEscapement := 500; { angulo expresado en decimas de grado }
  LOGFONT.lfStrikeOut  := 0; { distinto de cero para activarlo }
  LOGFONT.lfItalic     := 0; { distinto de cero para activarlo }
  LOGFONT.lfUnderline  := 0; { distinto de cero para activarlo }
  LOGFONT.lfFaceName := 'Tahoma';
  Font := CreateFontIndirect(LOGFONT);
  SelectObject(Form1.Canvas.Handle,Font);
  Form1.Canvas.TextOut(Form1.Image1.Left+label3.left,Form1.Image1.Top+label3.top,'Clouding administración');
  DeleteObject(Font);

Pero el texto lo pone en el form1 y no lo veo porque encima hay una imagen y me gustaría que apareciese el texto en Image1 (como si fuese un label)

Quedo pendiente y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 29-01-2024
WHILENOTEOF WHILENOTEOF is offline
Miembro
 
Registrado: mar 2008
Posts: 229
Poder: 17
WHILENOTEOF Va camino a la fama
Si lo que quieres es mostrarlo en pantalla, dibuja la imagen en el canvas del form igual que haces con el texto y después dibujas el texto. También puedes cargar la imagen, sobre el canvas de la iamgen dibujas el texto y después asignas la image al TImage
Responder Con Cita
  #3  
Antiguo 29-01-2024
Delphi01 Delphi01 is offline
Miembro
 
Registrado: nov 2015
Ubicación: Barcelona,España
Posts: 68
Poder: 9
Delphi01 Va por buen camino
Cita:
Empezado por Parsec Ver Mensaje
Hola a tod@s.

tengo este código que genera un texto con una pequeña inclinación:
Código Delphi [-]
var
 
  LOGFONT : TLogFont;
  Font    : HFONT;



begin
  LOGFONT.lfHeight := 30;
  LOGFONT.lfWidth  := 10;
  LOGFONT.lfWeight := FW_NORMAL;
  LOGFONT.lfEscapement := 500; { angulo expresado en decimas de grado }
  LOGFONT.lfStrikeOut  := 0; { distinto de cero para activarlo }
  LOGFONT.lfItalic     := 0; { distinto de cero para activarlo }
  LOGFONT.lfUnderline  := 0; { distinto de cero para activarlo }
  LOGFONT.lfFaceName := 'Tahoma';
  Font := CreateFontIndirect(LOGFONT);
  SelectObject(Form1.Canvas.Handle,Font);
  Form1.Canvas.TextOut(Form1.Image1.Left+label3.left,Form1.Image1.Top+label3.top,'Clouding administración');
  DeleteObject(Font);

Pero el texto lo pone en el form1 y no lo veo porque encima hay una imagen y me gustaría que apareciese el texto en Image1 (como si fuese un label)

Quedo pendiente y gracias de antemano.


Puedes utilizar un componente TLabel y establecer la propiedad Parent del TLabel como Image1.
Responder Con Cita
  #4  
Antiguo 30-01-2024
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.275
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
Tendrás que dar más detalles.
¿VCL/FMX? ¿Qué versión estás utilizando? ¿Qué evento estás utilizando?
Porque a mi con una sencilla prueba, el código que has puesto me está funcionando.



Otra cosa es que cuando hagas determinados "repintados" de componentes o del form, eso se pierda, pero es correcto, simplemente porque también debes repintar tu texto:




Para eso ya debes pensar dónde colocar ese código para realizar ese "repintado".
__________________
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
  #5  
Antiguo 30-01-2024
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Gracias a todos.

La solución ha sido sencilla: Al nombrar Neftalí lo del repintado se me ha ocurrido hacer un refresh del form y ya está.

Gracias de nuevo
Responder Con Cita
  #6  
Antiguo 30-01-2024
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.275
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
Otra opción sería capturar el mensaje del repintado del form (tipo WM_PAINT o similar) y en ese punto "repintar" el texto. De esa forma te aseguras que sólo se pinta cando es necesario, ni más ni menos veces.


En la parte privada del form defines:
Código Delphi [-]
procedure WMPaint(var Message: TWMPaint); message WM_PAINT;


Y la implementación:
Código Delphi [-]
procedure TForma.WMPaint(var Message: TWMPaint);
begin
  inherited;
  // aquí llamas al procedimiento de repintar el texto
  ...
end;

De esta forma siempre que al form le llegue el mensaje de Repintarse, justo después volverá a repintar el texto.
__________________
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
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
como poner imagen en un dbrich.? tuni Gráficos 5 16-12-2015 17:59:45
TDBLookupCombo: Como poner texto en [0] Bauhaus1975 Conexión con bases de datos 6 12-01-2009 17:21:05
¿Como poner una imagen? kbaby Varios 2 08-01-2008 00:02:58
poner imagen a un fichero exe kapullok_2006 Varios 2 30-11-2007 17:54:54
Poner texto en un edit rastafarey Internet 3 12-08-2005 02:34:43


La franja horaria es GMT +2. Ahora son las 00:18:46.


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