SoloCodigo

Programación General => C/C++ => C++ Builder => Mensaje iniciado por: sergiocg en Miércoles 2 de Junio de 2010, 21:38

Título: Intermitencias
Publicado por: sergiocg en Miércoles 2 de Junio de 2010, 21:38
A ver si me explico tengo un formulario con dos Shape y un botón. Al pulsar el botón se debe poner en marcha los colores de los shapes de forma intermitente, pero no me sale. Alguna sugerencia.

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if (m = false)
{
Shape1->Brush->Color = clYellow;
Shape2->Brush->Color = clRed;
}
else
{
Shape1->Brush->Color = clRed;
Shape2->Brush->Color = clYellow;
}
m = true;
}
Título: Re: Intermitencias
Publicado por: softevolutions en Jueves 3 de Junio de 2010, 09:11
Un par de cosas:

1) en el if, has metido una asignación y no una comparación
2) Tienes que cambiar el sitio donde cambias el valor de "m", ya que el cambio SOLO lo hará una vez o ninguna.

Te dejo una sugerencia para evitar el uso de una variable intermedia "m"

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
     if (Shape1->Brush->Color == clYellow) {
          Shape1->Brush->Color = clRed;
          Shape2->Brush->Color = clYellow;
     }
     else {
          Shape1->Brush->Color = clYellow;
          Shape2->Brush->Color = clRed;
     }
}