Bouton avec compte à rebours

Description

Salut à tous

Suite à un message de "MUSTAPH_A" qui demandait un peu d'aide voici une petite création rapide.

Un simple Composant de type TButton avec compte à rebours qui devrait l'aider.
Par contre je n'ai pas fait de commentaire (je l'envoie brut de fonderie), mais j'accepte toutes critiques qui permettrai d'agrémenter l'objet.

Source / Exemple :


unit CD_Button;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TCD_Button = class(TButton)
   private
    _Caption : integer;
    tmr : TTimer;
    Go : Boolean;
    Interv : Integer;

    Procedure Set_Caption(Value : integer);
    Procedure _CountDown(Sender : TObject);
    Procedure Set_Go(Value : boolean);
    Procedure Set_Interv(Value : Integer);
   published
    Property Action;
    Property Anchors;
    Property BiDiMode;
    Property Caption;
    Property Constraints;
    Property CountDown : boolean read Go write Set_Go default False;
    Property Cursor;
    property Default;
    Property DragCursor;
    Property DragKind;
    Property DragMode;
    Property Enabled;
    Property Font;
    Property Height;
    Property HelpContext;
    Property HelpKeyWord;
    Property HelpType;
    Property Hint;
    Property Interval : integer read Interv Write Set_Interv Default 1000;
    Property Left;
    Property ModalResult;
    Property Name;
    Property ParentBiDiMode;
    Property ParentFont;
    Property ParentShowHint;
    Property PopUpMenu;
    Property ShowHint;
    Property TabOrder;
    Property TabStop;
    Property Tag;
    Property Top;
    Property Value : Integer read _Caption Write Set_Caption default 100;
    Property Visible;
    Property Width;
    property OnClick;
    property OnContextPopup;
    property OnDragDrop;
    property OnDragOver;
    property OnEndDock;
    property OnEndDrag;
    property OnEnter;
    property OnExit;
    property OnKeyDown;
    property OnKeyPress;
    property OnKeyUp;
    property OnMouseDown;
    property OnMouseMove;
    property OnMouseUp;
    property OnStartDock;
    property OnStartDrag;
   public
    Constructor create(aowner : TComponent); override;
    Destructor destroy; override;
   end;

{procedure Register;}

implementation

Constructor TCD_Button.Create(AOwner : TComponent);
begin
 inherited Create(AOwner);
 Tmr := TTimer.Create(nil);
 Tmr.Enabled := False;
 Tmr.Interval := 1000;
 Tmr.OnTimer := _CountDown;
 Go := False;
 Interv := 1000;
 Caption := '100';
 Value := 100;
 repaint;
end;

Destructor TCD_Button.destroy;
begin
 Tmr.Destroy;
 Inherited Destroy;
end;

Procedure TCD_Button.Set_Interv(Value : Integer);
Begin
 Tmr.Interval := Value;
 Interv := Value;
end;

Procedure TCD_Button.Set_Go(Value : Boolean);
Begin
 Tmr.Enabled := Value;
 Go := Value;
end;

Procedure TCD_Button._CountDown(Sender : TObject);
begin
 Dec(_Caption);
 Caption := IntTostr(_Caption);
 Update;
end;

Procedure TCD_Button.Set_Caption(Value : Integer);
Begin
 _Caption := Value;
 Caption := IntTostr(_Caption);
 Update;
end;
{
procedure Register;
begin
 RegisterComponents('Perso', [TCD_Button]);
end;
}
end.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.