SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: miglon2 en Martes 3 de Febrero de 2004, 22:56

Título: Tiempo Espera
Publicado por: miglon2 en Martes 3 de Febrero de 2004, 22:56
Hola,

   Necesito visualizar en un cuadro de texto un texto y al cabo de un tiempo, por ejemplo 2 segundos, visualizar otro distinto: ¿Cómo puedo hacerlo?

Gracias
Título: Re: Tiempo Espera
Publicado por: _Viktor en Miércoles 4 de Febrero de 2004, 02:14
Hola, si lo que quieres son textos aleatorios en un Edit cada cierto intervalo de tiempo, puedes hacer lo siguiente... tan solo necesitas un TEdit y un TTimer, luego en el evento OnTimer del Timer1 pones los siguiente:

Código: Text
  1.  
  2. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  3. {
  4.  String Textos[]={"Cadena1","Cadena2","Cadena3","Cadena4","Cadena5"};
  5.  int cual = random(5);
  6.  Edit1->Text = Textos[cual];
  7.  
  8. }
  9.  
  10.  

Si no es eso lo que buscas, hasmelo saber ya que si quieres algo mas avanzado puedo darte un ejemplo utilizando Thread's, seria bueno que me dijeras de donde estas sacando el texto que quieres mostrar en el Edit, tambien si quieres que sea aleatorio o siguiendo un orden en especial...

Ok?

Saludos!!!
Título: Re: Tiempo Espera
Publicado por: miglon2 en Miércoles 4 de Febrero de 2004, 23:08
Hola de nuevo,

   Lo que realmente quiero es lo siguiente:

   Tengo un TEdit, cuando el usuario hace click en un botón, se debe mostrar un mensaje en él, por ejemplo "primer mensaje", y a continuación (2 segundos por ejemplo) en ese mismo TEdit mostrar otro mensaje, por ejemplo "mensaje 2".

    Los mensajes que muestro son cadenas que escribo directamente en el TEdit, no las almaceno en ningún lugar:
    TEdit->Text = "primer mensaje"

Gracias _Viktor por toda la ayuda que me estás prestando.

Saludos!!!
Título: Re: Tiempo Espera
Publicado por: _Viktor en Jueves 5 de Febrero de 2004, 04:58
Hola, realmente no logro entenderte:

Citar
Tengo un TEdit, cuando el usuario hace click en un botón, se debe mostrar un mensaje en él, por ejemplo "primer mensaje", y a continuación (2 segundos por ejemplo) en ese mismo TEdit mostrar otro mensaje, por ejemplo "mensaje 2".

Ahi dices que quieres mostrar un mensaje diferente cada dos segundos en un Edit, luego dices:

Citar
Los mensajes que muestro son cadenas que escribo directamente en el TEdit, no las almaceno en ningún lugar:
TEdit->Text = "primer mensaje"

Dices que los mensajes no los guardas en ningun lado... de donde salen entonces ?, ademas que asignas directamente el mensaje en el Edit ... te estas contradiciendo...  :blink:

Ve si puedes encontrar una mejor forma de explicarte... de seguro puedo ayudarte.

Saludos!
Título: Re: Tiempo Espera
Publicado por: miglon2 en Jueves 5 de Febrero de 2004, 23:25
Hola,

    Puede que no me explicara muy bien, pero a ver ahora si logro que me entiendas:

     Tengo 2 cadenas que almacenan 2 mensajes distintos:

Citar
   String cadena1 = "Primer mensaje"
   String cadena2 = "Segundo mensaje"   
    Cuando el usuario pulsa un botón, quiero:
   
   1.- Visualizar en el TEdit el mensaje almacenado en cadena1
Citar
                   TEdit->Text=cadena1
   2.- Al cabo de un tiempo (2 segundos por ejemplo) visualizar en ese TEdit el mensaje almacenado en cadena2
Citar
                   TEdit->Text=cadena2
   A ver si viendo un esqueleto de lo que quiero logramos entendernos:

Código: Text
  1. void __fastcall TForm1::Button1Click(TObject *Sender)
  2.     {
  3.   String cadena1 = "Primer mensaje";
  4.   String cadena2 = "Segundo mensaje";
  5.   TEdit1->Text = cadena1;
  6.  
  7.     /**************************************************/
  8.     //Aquí introducir un retardo de 2 segundos
  9.     /**************************************************/
  10.  
  11.   TEdit1->Text = cadena2;
  12.     }
  13.  
  14.  
Citar
P.D.: vi en un mensaje del foro que buscabas el libro "C++ builder 5 Developer's guide", yo lo tengo, pero sólo el archivo pdf ocupa casi 14 MB.
Título: Re: Tiempo Espera
Publicado por: _Viktor en Viernes 6 de Febrero de 2004, 23:39
Hola, haber si esto te sirve:

Unit1.h

Código: Text
  1.  
  2. public:  // User declarations
  3.         bool bMen;
  4.  

Unit1.cpp


Código: Text
  1. //---------------------------------------------------------------------------
  2. __fastcall TForm1::TForm1(TComponent* Owner)
  3.         : TForm(Owner)
  4. {
  5.  bMen=true;
  6.  Timer1->Enabled = false;
  7. }
  8. //---------------------------------------------------------------------------
  9. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  10. {
  11.  String sCadena1 = "Mensaje1";
  12.  String sCadena2 = "Mensaje2";
  13.  
  14.  if(bMen)
  15.   Edit1->Text = sCadena1;
  16.  else
  17.   Edit1->Text = sCadena2;
  18.  
  19.  bMen = !bMen;
  20.  
  21. }
  22. //---------------------------------------------------------------------------
  23. void __fastcall TForm1::Button1Click(TObject *Sender)
  24. {
  25.  Timer1->Enabled = true;
  26. }
  27. //---------------------------------------------------------------------------
  28.  

Si es que logre entender tu duda, lo que hace es que al presionar el botton activas el Timer, el que se encarga de intercambiar cada dos segundos el contenido del Edit entre los dos mensajes.

Eso era ?

Saludos!
Título: Re: Tiempo Espera
Publicado por: miglon2 en Sábado 7 de Febrero de 2004, 00:00
Hola

    Al final conseguí que me entendieras y tu conseguiste entenderme.

MUCHAS GRACIAS.