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. |
Con canvas->textout estas dibujando encima del TImage
|
Claro, es lo que quiero, y eso me sale, lo q no me sale es hacer desaparecer el Tedit de la imagen...
|
Fíjate en estas líneas:
Código:
Edit1->Visible=true; 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). |
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. |
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 Saludos |
Hola, así no me hace nada... me sale el cuadro del Tedit, pero ya está, ni se me activa para escribir ni nada...
|
Tienes razón, esta línea sobra:
Edit1->Enabled=false; Perdón :o Saludos |
La franja horaria es GMT +2. Ahora son las 22:34:32. |
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