Chronoblitz : chrono pour partie d'échecs type blitz

Description

Le but de ce petit bout de logiciel est de chronométrer une partie d'échecs en mode blitz. Pour ceux qui ne connaissent pas ce que celà veut, se reporter à la documentation fournie dans le fichier zip joint.

Le code fait appel à l'utilisation :
- des messages personnalisés
- utilisation des types procéduraux
- de la notion de réutilisabilité du code (voir classe TChrono)
Voilà, ça fait un moment que le code est écrit et j'ai décidé de vous en faire profiter.

Vous pouvez vous en servir pour surveiller la cuisson d'un oeuf à la coq si ça vous chante (non, pas le coq mais vous-même :p).

Source / Exemple :


//Voici un extrait de l'unité UChrono
type
   { Déclaration d'un type procédural dont la signature est identique
   à celle de la procédure qui sera appelée. Cette méthode rend possible
   la totale indépendance de l'unité UChrono, la rendant utilisable dans
   d'autres applications.}
   TStopProc = procedure;

  {L'objet TChrono sert a comptabiliser le temps écoulé
   depuis son lancement par la méthode Start}
  TChrono = class
  private
    //Durée initiale de la partie
    FInitialTime: TDateTime;
    //Temps restant
    FRemainingTime: TDateTime;
    //Référence du contrôle chargé d'afficher
    FDisplayControl: TLabel;
    //Chrono en attente ?
    FSuspended: Boolean;
    //Chrono arrêté ?
    FStopped: boolean;
    FElapsedTime: TDateTime;
    //enregistre la durée écoulée depuis le lancement
    //de la méthode Start
    FDuree : TDateTime;
    //Champ destiné à stocker l'adresse de la procédure arrêtant
    //les décomptes
    PStopProc : TStopProc;
  public
    //Constructeur personnalisé avec un paramètre :
    //le contrôle destinataire de l'affichage et
    //l'adresse de la routine à appeler quand un des chronos
    //a atteint zéro.
    constructor Create(ALabel: TLabel; StopProc : TStopProc);
    //Utilisé pour indiquer la durée d'une partie de jeu
    //par défaut, la durée est de 5 minutes
    procedure Init(ADuree: Integer = 5);
    //Démarre le chrono
    procedure Start;
    //Met le chrono en attente
    procedure Suspend;
    //Arrête le décompte du chrono
    procedure Stop;
    //Propriété indiquant le temps utilisé depuis le top départ
    property ElapsedTime: TDateTime read FElapsedTime;
  end;

Conclusion :


Comme ce programme utilise les composants TAction, il ne sera compilable qu'à partir de Delphi 4 et +.

Il est abondamment commenté et ne devrait pas poser de problèmes de compréhension.
Le côté esthétique de l'interface n'était pas une priorité ni même au cahier des charges.

Bonus :
- aide en ligne
- documentation : expression des besoins du demandeur.

Codes Sources

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.