Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Opcion TTimer Ayuda (https://www.clubdelphi.com/foros/showthread.php?t=50006)

Lynn 06-11-2007 07:59:07

Opcion TTimer Ayuda
 
Bueno mi Pregunta Como es la Opcion TTimer para que un Label Cambien de Color a Cada Segundo en el TTimer Prove Con esto

Código Delphi [-]
procedure TFMenu.Timer1Timer(Sender: TObject);
begin
Label1.Font.Color:=clRed;
Label1.Font.Color:=clYellow;
Label1.Font.Color:=clMaroon;
Label1.Font.Color:=clWebBlue;
Timer1.enabled:=True;
end;

Pero no me cambia se pasa defrente al clWebBlue yo se que debe ir algo pero no se que la vez pasada me salio T_T me pueden ayudar

dec 06-11-2007 08:46:11

Hola,

A ver si esto te da alguna idea:

Código Delphi [-]
procedure TFMenu.Timer1Timer(Sender: TObject);
begin
  with Label1.Font do
    Color := RGB(Random(255),Random(255),Random(255));
end;

Lynn 06-11-2007 08:54:16

Muchas Gracias amigo Este Foro que si se Pasa Son las 3 de la mañana y ya me contestaron voy a comenzar a recomendarlo Si que esta Power este Foro.

Bueno esta Bien Pero Seria de tu Parte Muy Buena Explicarme el Porque de las Cosas no Digo que este Mal a lo contario esta Buenizimo pero quiero la Explicacion paea Entenderlo Muchas Gracias David a si sobre todo tu Blog se ve muy Interesante http://dec.clubdelphi.com/davidesperalta/

dec 06-11-2007 09:37:50

Hola,

Pues, tal como pretendías hacerlo antes, siempre quedaba el último color asignado, o sea, el azul. La idea es cambiar el color, bien aleatoriamente (como hago más arriba), o bien entre distintos colores, y, según se precise una cosa u otra, habrá distintas soluciones.

Supón que quieres variar el color entre el rojo y el azul. En el evento "OnTimer" deberías comprobar qué color tiene el "label", y, poner el color contrario, o sea, si es azul, rojo, y, si es rojo, azul. El caso es que no se vale cambiar variables veces el color dentro del propio evento "OnTimer", porque, estos cambios suceden tan rápido que ni se ven.

PD. Aquí son ahora poco más o menos las nueve y media de la mañana. :)

duilioisola 06-11-2007 10:34:07

Según lo que dice dec, quedaría algo asi:

Código Delphi [-]
procedure TFMenu.Timer1Timer(Sender: TObject);
begin
   Timer1.enabled:=False;

   if  (Label1.Font.Color=clWebBlue) then
      Label1.Font.Color:=clRed;

   if  (Label1.Font.Color=clRed) then
      Label1.Font.Color:=clYellow;

   if  (Label1.Font.Color=clYellow) then
      Label1.Font.Color:=clMaroon;

   if  (Label1.Font.Color=clMaroon) then
      Label1.Font.Color:=clWebBlue;

   if  ((Label1.Font.Color<>clRed) and (Label1.Font.Color<>clYellow) and (Label1.Font.Color<>clMaroon) and (Label1.Font.Color<>clWebBlue)) then
      Label1.Font.Color:=clRed;

   Timer1.enabled:=True;
end;

Si es azul lo pongo en rojo.
Si es rojo lo pongo en amarillo.
Si es amarillo lo pongo en marron.
Si es marron lo pongo en azul.
Si no es ninguno de los colores anteriores lo pogo en rojo.

Asi irá haciendo un ciclo entre estos colores...

Lynn 06-11-2007 10:39:23

Que Bueno ah Son las 4.30 de la mañana y siguen las Respuestas me parece bonito tu aporte lo pondre en practica gracias aver que tal sale


La franja horaria es GMT +2. Ahora son las 18:41:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi