uQuartz.pas5

UNIT Uquartz;
{-----------------------------------------------------------------------------
  NOM DE L'UNITE : UQUARTZ.PAS
  BUT            : Sélection du la fréquence du quartz utilisé sur la carte
  AUTEUR         : Michael Amarantidis / Stéphane Claus
  DATE           : Mars 1997
 
  MODIFIE LE     :
  RAISON         :
 
  REMARQUES      : - Cette fréquence est sauvegardée dans le fichier INI
 -----------------------------------------------------------------------------}
 
 
{=============================================================================}
INTERFACE   {============================================== I N T E R F A C E }
{=============================================================================}
 
 
 
USES
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, DigDisp, StdCtrls, Buttons, UAlnEdit;
 
 
TYPE
  TfrmQuartz = CLASS(TForm)
    digdspTitre: TDigitalDisplay;
    bitbtnOK: TBitBtn;
    bitbtnAide: TBitBtn;
    grpbxFrequence: TGroupBox;
    lblHertz: TLabel;
    aedtFrequence: TAlignEdit;
    PROCEDURE FormActivate(Sender: TObject);
    PROCEDURE aedtFrequenceChange(Sender: TObject);
    PROCEDURE bitbtnOKClick(Sender: TObject);
  PRIVATE
    { Private-déclarations }
  PUBLIC
    { Public-déclarations }
  END; {CLASS}
 
 
VAR
  frmQuartz: TfrmQuartz;
 
 
 
{=============================================================================}
IMPLEMENTATION   {================================= I M P L E M E N A T I O N }
{=============================================================================}
 
 
 
{$R *.DFM}
 
 
USES
  UPrincpl;
 
 
PROCEDURE TfrmQuartz.FormActivate(Sender: TObject);
{-----------------------------------------------------------------------------
  BUT ........... : Initialisation de la fiche en fonction des paramètres
                    actuels du programme
  ENTREE ........ : --
  SORTIE ........ : --
  EFFETS DE BORDS : --
  REMARQUE(S) ... : --
 -----------------------------------------------------------------------------}
BEGIN
  Caption := Application.Title;                         { Titre de la fenêtre }
  aedtFrequence.ShowHint := affichehint;                 { Affichage des Hint }
  { Lit la fréquence actuellement utilisée }
  aedtFrequence.Text := FloatToStr(frmMain.PIT8254.Quartz);
END; {PROCEDURE FormActivate}
 
 
PROCEDURE TfrmQuartz.aedtFrequenceChange(Sender: TObject);
{-----------------------------------------------------------------------------
  BUT ........... : Test si la fréquence saisie par l'utilisateur est correcte.
  ENTREE ........ : --
  SORTIE ........ : --
  EFFETS DE BORDS : Si la fréquence est incorrecte, la zone de saisie devient
                    toute rouge
  REMARQUE(S) ... : --
 -----------------------------------------------------------------------------}
VAR
  Frequence  : EXTENDED;
BEGIN
  TRY
    {-- Lit la fréquence saisie + conversion en un EXTENDED }
    Frequence := StrToFloat(aedtFrequence.Text);
    {-- Valeur utilisable ? (enfin, qui ne va pas causer d'erreur lors des
        divisions futures...) }
    IF Frequence >= 1 THEN aedtFrequence.Color := clWindow;
  EXCEPT
    aedtFrequence.Color := clRed;        { Valeur incorrecte: On voit rouge ! }
  END; {TRY}
END; {PROCEDURE aedtFrequenceChange}
 
 
PROCEDURE TfrmQuartz.bitbtnOKClick(Sender: TObject);
{-----------------------------------------------------------------------------
  BUT ........... : Sauvegarde de la fréquence lors de la fermeture de la
                    fiche (enfin, seulement si on a cliqué sur le bouton OK,
                    mais pas si on a utilisé le menu système)
  ENTREE ........ : --
  SORTIE ........ : --
  EFFETS DE BORDS : --
  REMARQUE(S) ... : --
 -----------------------------------------------------------------------------}
VAR
  Frequence  : EXTENDED;
BEGIN
  TRY
    Frequence := StrToFloat(aedtFrequence.Text);    { Lit la fréquence saisie }
    IF Frequence < 1 THEN Frequence := 1;        { Au minimun 1 [Hz] please ! }
    frmMain.PIT8254.Quartz := Frequence;
  EXCEPT
    { Valeur incorrecte, alors on ne la garde pas }
  END; {TRY}
END; {PROCEDURE bitbtnOKClick}
 
 
 
{=============================================================================}
{ INITIALISATIONS ------------------------------------------- Initialisations }
{=============================================================================}
 
 
 
INITIALIZATION
END. {UNIT Uquartz}