 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
el Nuevo Invitado
|
Publicado: Dom 24 Oct, 2004 6:33 am Asunto: problema con el siguiente codigo. |
|
|
el asunto es el siguiente:
tengo que activar un Timer con el simple click en un boton, pero como dentro de este objeto Timer tengo condicionales como los que se muestran en el siguiente codigo el linkado se me bloquea, y me presenta un error, hice este mismo experimento pero sin condicionales y me corre bien, pues lo que quiero decir es que me ayuden a solucionar este problema o que me digan si es que estoy haciendo alguna violacion.
gracias. saludos
void __fastcall TForm2::Button2Click(TObject *Sender)
{
Timer1->Enabled=true; // al hacer click en el boton activo el Timer
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
float i,a,w,b,o,t,v,p,tf;
t=StrToInt(Edit1->Text); // tiempo inicial de la simulación
tf=StrToInt(Edit2->Text); // tiempo final de la simulación
if(Form1->cb=="")
{}
if(Form1->cb=="Triangular")
{if(ComboBox1->Text=="R1") // selecciona la resistencia a simular
{
a=Form1->I13;
b=Form1->vr1;
o=Form1->Pr1;
w=Form1->w;
i=a*0.65*asin(sin(w*t*0.0005)); // grafica corriente
v=b*0.65*asin(sin(w*t*0.0005)); // grafica voltaje
p=o*p*0.65*asin(sin(w*t*0.0005)); // grafica potencia
Series1->AddXY(t,i,"",clRed);
Series2->AddXY(t,v,"",clGreen);
Series3->AddXY(t,p,"",clYellow);
t++;
if(t==tf) Timer1->Enabled=false;
}
}
if(Form1->cb=="Cuadrada")
{}
if(Form1->cb=="Senoidal")
{}
if(Form1->cb=="Diente Sierra")
{}
} |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Lun 25 Oct, 2004 8:00 am Asunto: |
|
|
No he visto a fondo el código, pero si hay una cosa que yo he aprendiod al usar los timer. Cuando ejecutas el código asociado al OnTimer, lo primero que debes hacer es descativarlo al entrar. Es decir:
| Código: | void __fastcall TForm2::Timer1Timer(TObject *Sender)
{
float i,a,w,b,o,t,v,p,tf;
Timer1->Enabled = false;
[... Código a ejecutar ...]
Timer1->Enabled = true;
} |
Ten en cuenta que si no hace esto, mientras se evalúa el código pude volver a cumplirse el intervalo que se haya fijado y metes el programa en un bucle sin salida. _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|