Bonjour à tous !

J'ai un problème quand à l'utilisation d'un timer dans mon programme.
Je m'explique : J'ai un timer qui a pour but de "ping" toutes les 2 secondes un serveur. Le timer gère la connexion et la déconnexion (en cas de panne réseau...).

Lorsque je simule une panne réseau (déconnexion du câble réseau), le programme passe en mode déconnecté. Et 1 minutes après je rebranche le câble, et le programme repasse en mode connecté.

Cependant, je rencontre un problème : Pendant la minute de déconnexion, il se déconnecte 30 fois de la base de données... Et lorsque je suis connecté, il se connecte toutes les 2 secondes au serveur.

Comment je peux faire pour ne réaliser qu'une seule déconnexion ou une seule connexion tout en laissant le timer vérifier la connectivité ?

Voici mon timer pour illustrer mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TFenetrePrincipale.temps_pingTimer(Sender: TObject);
begin
  if (pingAd(hote_serveur)) then
  begin
    FenetrePrincipale.Caption := 'Prog - Mode Réseau';
    barre_statut.Panels[0].Text := 'Connecté ['+hote_serveur+']';
    FBDD.Connected := True;
  end
  else
  begin
    FenetrePrincipale.Caption := 'Prog - Mode Local';
    barre_statut.Panels[0].Text := 'Déconnecté';
    FBDD.Connected := False;
  end;
end;
Merci de m'apporter votre aide, je vous en serais fort reconnaissant