Ver Mensaje Individual
  #5  
Antiguo 04-01-2012
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Yo pondría un solo timer:
Código Delphi [-]
procedure TForm1.Label2Click(Sender: TObject);
begin
  timer1.Enabled:=true;
end;

procedure TForm1.OnTimer1
begin
   // Deshabilito el timer por si tarda demasiado en ejecutarse
   Timer1.Disable;

   // Hago cada cosa dos veces para evitar errores por si queda Top negativo
   if (Componente1.Top > 0) then
      componente1.Top = Componente1.Top - 1;
   if (Componente1.Top > 0) then
      componente1.Top = Componente1.Top - 1;

   // Hago cada cosa dos veces por si el tope es impar
   if (Componente2.Top < Tope) then
      componente2.Top = Componente2.Top + 1;
   if (Componente2.Top < Tope) then
      componente2.Top = Componente2.Top + 1;

   // Hago que la aplicacion refresque la pantalla
   Application.ProcessMessages;

   // Vuelvo a habilitar el timer si corresponde
   if ((Componente1.Top > 0) or (Componente2.Top < Tope)) then
      Timer1.Enable;
end;
Responder Con Cita