• Viernes 19 de Abril de 2024, 15:33

Autor Tema:  Abrir Messagebox Solo Una Vez  (Leído 1784 veces)

zaryus

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
    • http://www.masfree.cl/
Abrir Messagebox Solo Una Vez
« en: Martes 22 de Enero de 2008, 01:41 »
0
hola amigos ,tengo el siguientew codigo, para que cuaando transcurrra el tiempo indicado en un combobox (elegido por el usuario), se produzca algo, ejecucion de un comando o algo:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
   : TForm(Owner)
{

}
//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)
{
Timer1->Interval = ComboBox1->ItemIndex;
Timer1->Enabled  = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::FormCreate(TObject *Sender)
{
 Timer1->Enabled=false;
}
//---------------------------------------------------------------------------

void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
    ShowMessage(L"oso nicoloso");

   Timer1->Enabled=false;
}
//---------------------------------------------------------------------------


Con el messagebox controlo que se realice bien, luego cuando este bueno lo borrare  y ejecutare el comando que quiero.
Pero el problema es que se produce un bucle y se carga infinitamente el MessageBox, ya no se como hacerlo, lo otro que necesito es extraer el contenido del combobox seleccionado por el usuario pero no se si lo estoy haciendo correctamente.
Muchas gracias.
Saludines :D.

zaryus

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
    • http://www.masfree.cl/
Re: Abrir Messagebox Solo Una Vez
« Respuesta #1 en: Jueves 24 de Enero de 2008, 00:40 »
0
esto debe ser sencillisimo para ustedes que estan mas avanzados que yo.
Lo que quiero es que el messagebox salga solo una vez, luego lo sustituire por la ejecucionde un comando, pero si no sale bien esta primera parte no podre proseguir ...
Muchas gracias

saulillo

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Abrir Messagebox Solo Una Vez
« Respuesta #2 en: Jueves 24 de Enero de 2008, 09:51 »
0
Hola,

Así de primeras se me ocurre que declares una variable booleana, la inicializas a false. Luego antes de que se ejecute el comando compruebas si el booleano esta a false (if (var==false)) y cuando se ejecute lo que quieras lo cambias a true. Así cada vez que vaya a ejecutarse tu comando comprobará la variable y como no va a ser false, no se ejecutara.

Un saludo

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Abrir Messagebox Solo Una Vez
« Respuesta #3 en: Jueves 24 de Enero de 2008, 09:59 »
0
Puede que el problema sea que no se ejecuta todo el codigo hasta que no se termina el ShowMessage, proba asi:

Código: Text
  1.  
  2. void __fastcall TForm2::Timer1Timer(TObject *Sender)
  3. {
  4.   Timer1-&#62;Enabled=false;
  5.   ShowMessage(L&#34;oso nicoloso&#34;);
  6. }
  7.  
  8.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

zaryus

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
    • http://www.masfree.cl/
Re: Abrir Messagebox Solo Una Vez
« Respuesta #4 en: Viernes 25 de Enero de 2008, 01:40 »
0
:D muchas gracias Saulillo  and Eternal Idol, el problema es que habia que invertir los valores que hablo Eternal, quedo bastante bueno :D.
saludillos.