Je souhaite afficher une boite de message 15 minutes après l'appui sur un bouton. Il faut employer Gettickcount mais quelle est la formule ?
Me faut-il un Timer également ?
D'avance Merci,
Denis
Version imprimable
Je souhaite afficher une boite de message 15 minutes après l'appui sur un bouton. Il faut employer Gettickcount mais quelle est la formule ?
Me faut-il un Timer également ?
D'avance Merci,
Denis
Salut :)
Tu as le choix:
Soit tu utilises un Timer qui se déclenche au bout de 15 minutes (ou bien toutes les n secondes jusqu'à ce que les 15 minutes soient passées)
Soit tu fais une boucle avec un GetTickCount et tu déclenches lorsque les 15 minutes sont passées.
Par contre, l'utilisation d'une boucle avec GetTickCount va pas mal te bouffer des ressources ;) Il faudrait que tu nous dises dans quel cadre tu voudrais faire ça.
Salut
Un simple Timer fera l'affaire.
Tu définis ton timer sur 15 minutes que tu actives (Enabled := True) lors de l'appui sur ton bouton.
Ne pas oublier de désactiver le timer, si tu ne veux pas répéter l'évènement toutes les 15 mn.
[Edit]
Ouais, c'est pas bête ça ! ;)Citation:
Envoyé par Pedro
@+ Claudius
Merci pour la réponse
ok pour le timer. mais je met quoi comme code dans le Timer ?
il faut que je détermine si les 15 minutes sont passées ou non
il faut alors peut être comparer avec gettickCount non ?
Denis
Salut,
Voici ce qu'il faut mettre dans ton Timer :
Et voici comment on le déclenche :Code:
1
2
3
4
5 procedure TForm1.Timer1Timer(Sender: TObject); begin ShowMessage('Coucou'); Timer1.Enabled:=false; // On arrête le Timer end;
Il faut vérifier, en mode Design Time que le Timer à la propriété Enable à false pour éviter que l'événément se déclenche au lancement de l'application.Code:
1
2
3
4
5 procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled:=true; end;
Sinon, tu mets dans le OnCreate de ta forme :
Ensuite, il faut s'assurer de bien avoir défini l'intervalle soit en Design Time en mettant la valeur 900000 à la propriété Interval du Timer, soit par code (que tu peux mettre dans le OnCreate) :Code:
1
2
3
4 procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Enabled:=false; end;
J'espère que celà répond à tes questions ;)Code:Timer1.Interval:=900000; //15 minutes
Re,
OK grillé par ero-sennin ! :mrgreen:
A part que j'inverserais les 2 instructions, comme cela si l'utilisateur est parti prendre un café le timer ne se redéclenche pas avant qu'il ne referme le dialogue.
@+ ClaudiusCode:
1
2
3
4
5
6 procedure TForm1.Timer1Timer(Sender: TObject); begin Timer1.Enabled:=false; // On arrête le Timer ShowMessage('Coucou'); end;