Timer non visuel?

Résolu
cs_Gerard
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- 1 avril 2014 à 16:58
cs_Gerard
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- 7 avril 2014 à 04:18
Bonjour,

Est-il possible d'ajouter un timer à un objet qui n'a pas de partie visuelle? (pas de fiche...)

merci...
--

14 réponses

solilog
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
10
1 avril 2014 à 19:16
Salut,
Oui, bien sûr, tu peux créer un timer, avec qq' règles simples:
- à condition de ne pas oublier de le supprimer (free)
- créer la proc (evenement) OnTimer dans une form (car elle recoit des messages), initialiser les champs interval et Ontimer à la création. Exemple: Form1, Bouton1 crée le timer, bouton2 le delete:


implementation
var LeTimer : tTimer = nil; // global à l'unité

procedure TForm1.Timer1Timer(Sender: TObject);
// evidem, déclarée dans Form1
beep; // exemple
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if LeTimer=nil then
LeTimer := tTimer.create(self);
with LeTimer do
begin
OnTimer := Timer1Timer; // l'action
interval:=1000; // la durée
enabled:=true; // lancer
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
LeTimer.free;
LeTimer := nil;
end;

Cordialement.

solilog
0
cs_Gerard
Messages postés
121
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018

2 avril 2014 à 09:38
Merci de la réponse, mais elle semble bien indiquer ce que je redoutais: un objet qui n'a pas de fiche - pas de partie visuelle - ne peut pas avoir de timer. De plus j'ai lu ailleurs que le nombre possible de timers était limité et défini par le système. Comme je peux avoir un très grand nombre d'objets je ne pense pas prendre le risque de développer avec le concept d'un timer par objet.
0