Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-02-2016
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
Contar Tiempo atrás

Tengo varios button que cada uno debe respetar un tiempo, por lo cual tengo algunos de 5 min a 60 min, la cuestión es como hago para contar el tiempo atrás, que arranque de 5 a 0.. y de 60 a 0 y luego haga una acción como activar el botón..

Alguna idea?
Responder Con Cita
  #2  
Antiguo 24-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Revisa los enlaces al pié de esta página.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-02-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Mira los enlaces del final de página, abajo del todo.
Responder Con Cita
  #4  
Antiguo 24-02-2016
Avatar de Osorio
Osorio Osorio is offline
Miembro
 
Registrado: may 2003
Ubicación: Colombia
Posts: 251
Poder: 21
Osorio Va por buen camino
Un TTimer tal vez?

y cuando llega a cero se ejecuta el eveto ontimer para que haga "algo".
Responder Con Cita
  #5  
Antiguo 24-02-2016
wolfran_hack wolfran_hack is offline
Miembro
 
Registrado: abr 2013
Posts: 97
Poder: 12
wolfran_hack Va por buen camino
Probe con esos, http://clubdelphi.com/foros/showpost...82&postcount=2 este en particular, me sirvió para uno solo, no para todos los botones.
Responder Con Cita
  #6  
Antiguo 24-02-2016
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Cita:
Empezado por wolfran_hack Ver Mensaje
..., la cuestión es como hago para contar el tiempo atrás, que arranque de 5 a 0.. y de 60 a 0 y luego haga una acción como activar el botón.
Este ejemplo hace lo que solicitas, fijate si te sirve de guía:
Código Delphi [-]
unit uButtonTimer;

interface

uses Classes, StdCtrls, ExtCtrls;

type
  TButton = class(StdCtrls.TButton)
  private
    FLapso : Integer;
    FTimer : TTimer;
    procedure FTimerTimer(Sender: TObject);
    function GetLapso: Integer;
    procedure SetLapso(const Value: Integer);
  public
    constructor Create(AOwner: TComponent); override;
    property Timer: TTimer read FTimer write FTimer;
    property Lapso: Integer read GetLapso write SetLapso;
    destructor Destroy; override;
  end;

implementation

{ TButton }
constructor TButton.Create(AOwner: TComponent);
begin
  inherited;
  FLapso := 0;
  FTimer := TTimer.Create(Self);
  FTimer.Interval := 1000;
  FTimer.Enabled  := False;
  FTimer.OnTimer  := FTimerTimer;
end;

procedure TButton.FTimerTimer(Sender: TObject);
begin
  Dec(FLapso, Timer.Interval);
  Enabled := FLapso = 0;
  Timer.Enabled := FLapso <> 0;
end;

function TButton.GetLapso: Integer;
begin
  Result := FLapso;
end;

procedure TButton.SetLapso(const Value: Integer);
begin
  if Value <> FLapso then
    if Value > 0 then
      FLapso := Value;
end;

destructor TButton.Destroy;
begin
  FTimer.OnTimer := nil;
  FTimer.Free;
  inherited;
end;

end.

Ejemplo del uso:
Código Delphi [-]
unit Unit1;

interface

uses ...,
     uButtonTimer; // última posición en el uses

type
  TForm1 = class(TForm)
    btnCinco: TButton;
    procedure btnCincoClick(Sender: TObject);
  ...
  end;
...

implementation

const
  MINUTO = 1000 * 60;

procedure TForm1.btnCincoClick(Sender: TObject);
begin
  btnCinco.Enabled := False;
  btnCinco.Lapso   := 5 * MINUTO;
  btnCinco.Timer.Enabled := True;
end;
...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cuenta atrás. alfredosg19 Varios 2 20-08-2010 00:06:29
MessageDLG atras? Willo Varios 5 26-11-2009 11:51:02
cronometro hacia atras kurono Varios 3 22-12-2008 18:05:47
40 años atrás... Robert01 La Taberna 0 17-06-2007 00:03:53
for contando hacia atras Duc OOP 7 20-07-2005 10:23:13


La franja horaria es GMT +2. Ahora son las 05:48:18.


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
Copyright 1996-2007 Club Delphi