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.
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.