Programación General > C++ Builder
Abrir Messagebox Solo Una Vez
(1/1)
zaryus:
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:
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:
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:
Puede que el problema sea que no se ejecuta todo el codigo hasta que no se termina el ShowMessage, proba asi:
--- Código: Text --- void __fastcall TForm2::Timer1Timer(TObject *Sender){ Timer1->Enabled=false; ShowMessage(L"oso nicoloso");}
zaryus:
:D muchas gracias Saulillo and Eternal Idol, el problema es que habia que invertir los valores que hablo Eternal, quedo bastante bueno :D.
saludillos.
Navegación
Ir a la versión completa