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 14-05-2008
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
Problema con TEdit en imagen

hola, quiero hacer que el usuario pueda escribir en una imagen en tiempo de ejecución el texto que quiera y no uno definido. La imagen está abierta y contenida en un TImage, entonces mi idea era poner un Tedit y que el usuario escriba en él y luego recuperar el contenido del mismo para que a través de la propiedad Canvas->TextOut, lo escriba en la imagen.
Bien pues me lo escribe en la imagen pero a la segunda vez que pulso el botón y el control TEdit que lo pongo a no visible nunca desaparece, creo q es porque sigue teniendo el control... pero no se como quitárselo, os pongo el código de lo que tengo... resumiendo mi idea es q el usuario escriba en el Tedit y luego recuperar el contenido, escribirlo en la imagen y hacer desaparecer el TEdit.

void __fastcall TForm1::AadirTexto1Click(TObject *Sender)//texto en el menu
{
int c=0;
Edit1->Visible=true;
c=1;
String s=Edit1->Text;

if(c==1 ){
Imagen->Canvas->Font->Size = 40;
Imagen->Canvas->Font->Color = clWhite;
Imagen->Canvas->Brush->Style = bsClear;
Imagen->Canvas->TextOut(10, 10, s);
Edit1->Enabled=false;
Edit1->Visible=false;

}
}

Saludos y gracias.
Responder Con Cita
  #2  
Antiguo 14-05-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Con canvas->textout estas dibujando encima del TImage
Responder Con Cita
  #3  
Antiguo 15-05-2008
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
Claro, es lo que quiero, y eso me sale, lo q no me sale es hacer desaparecer el Tedit de la imagen...
Responder Con Cita
  #4  
Antiguo 15-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Fíjate en estas líneas:
Código:
Edit1->Visible=true;
String s=Edit1->Text;
Haces visible el Edit e inmediatamente capturas el valor de Edit1->Text ... esto.... no estas dejando tiempo al usuario para que escriba algo .

Ahí está el quid de la cuestión, ¿Cuando quieres hacer desaparecer el TEdit?

- Cuando el usuario pulse la tecla Intro (usar el TEdit.OnkeyUp para pintar el texto y después ocultar el TEdit)
- Cuando el foco salga del TEdit (usar evento TEdit.OnExit).
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 15-05-2008
fasthorse fasthorse is offline
Miembro
 
Registrado: ene 2007
Posts: 90
Poder: 18
fasthorse Va por buen camino
Lo uso así como me dices, pero me sigue saliendo igual... a ver sería una cosa así no?

Edit1->Visible=true;
Edit1->OnEnter=OnPaint; //aquí habrá que indicarle algo no?
String s=Edit1->Text;
Edit1->OnExit;
Imagen->Canvas->TextOut(10, 10, s);

No es así?

Saludos.
Responder Con Cita
  #6  
Antiguo 16-05-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Yo C no tengo muy clara la sintaxis, intentaré explicarlo:

Releyendo tu mensaje, He visto que quieres hacerlo de otra forma y es pulsando el mismo botón "AadirTexto1" varias veces:
La primera vez que se pulse, mostraría el TEdit y la segunda vez que se pulse, oculta el TEdit y pinta en la imagen.
Código:
void __fastcall TForm1::AadirTexto1Click(TObject *Sender)//texto en el menu
{

Edit1->Visible= not Edit1-> Visible;

if(not Edit1->Visible ){
Imagen->Canvas->Font->Size = 40;
Imagen->Canvas->Font->Color = clWhite;
Imagen->Canvas->Brush->Style = bsClear;
Imagen->Canvas->TextOut(10, 10, Edit1->Text);
Edit1->Enabled=false;

}
}
Como ves el truco está en la primera línea, cambiamos su visibilidad y después preguntamos por ella (básicamente lo que haciás con c= 0 y c= 1) el problema que tenías es que "c" es una variable local y se pierde el valor entre 2 pulsaciones del boton.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
Problema de Query y Tedit AYUDA PORFAVOR hurricane21 SQL 1 12-01-2007 11:12:27
TEdit Propiedad Text problema para cambiar alucardo OOP 12 29-05-2006 16:12:08
Problema con el TEdit y las comas alfredosg19 Varios 10 09-03-2005 11:15:42
Pasar el valor de un TEdit dentro de un StringGrid a otro TEdit que está fuera atirado Varios 4 11-09-2004 19:13:48
problema con los Tedit en un programa Pepetrueno Varios 6 28-06-2003 01:47:38


La franja horaria es GMT +2. Ahora son las 00:28:14.


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