Insérer plusieurs sleep dans une même procédure...

Résolu
cs_nark0
Messages postés
5
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
28 novembre 2004
- 28 nov. 2004 à 14:16
delphi_zed_abd
Messages postés
1
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
18 avril 2006
- 18 avril 2006 à 10:42
Salut,
Je rencontre un problème lorsque j'essaye d'insérer plusieurs sleep dans une même procédure...
En fait j'aimerais que des panel changent de couleur l'un après l'autre avec à chaque fois un intervalle d'une seconde...
Mon code ressemble à ceci :

sleep(1000);
pn_2.Color := clyellow;
sleep(1000);
pn_6.Color := clyellow;
sleep(1000);
pn_3.Color := clyellow;
sleep(1000);

et ainsi de suite....

Le problème est que l'application attend une seconde avant de changer la couleur du premier panel mais n'attend pas pour la suite==>tous les panel deviennent jaunes en même temps...

J'espere avoir ete assez claire dans ma question...
Merci d'avance pour votre aide!

Ps : je suis debutant==>si ma question vous semble un peu debile soyez indulgents svp...

6 réponses

cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
28 nov. 2004 à 14:40
Le problème vient de ce que tu ne laisse pas à Windows la possibilité d'envoyer un message à l'application pour lui de mander de redessiner les contrôles.
Insére des appels à update pour forcer une réactualisation des affichages comme ceci :
  sleep(1000);
  panel1.Color := clyellow;
  update;
  sleep(1000);
  panel2.Color := clRed;
  update;
  sleep(1000);
  panel3.Color := clGreen;
  update;
  sleep(1000);

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
3
Debiars
Messages postés
285
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
11 février 2018

28 nov. 2004 à 14:40
Salut,

C'est simple...
Après chaque "pn_x.Color := clyellow;"
il suffit d'ajouter "pn_x.Repaint;"

C'est tout!
0
Debiars
Messages postés
285
Date d'inscription
lundi 16 juin 2003
Statut
Membre
Dernière intervention
11 février 2018

28 nov. 2004 à 14:43
Damned!
j'arrive trop tard...
et en plus je ne connaissais pas cet update là.

merci!
0
cs_nark0
Messages postés
5
Date d'inscription
samedi 6 novembre 2004
Statut
Membre
Dernière intervention
28 novembre 2004

28 nov. 2004 à 14:48
Merci pour vos réponses rapides...le probleme est resolu!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
28 nov. 2004 à 14:50
Moi même je m'y perds entre les Repaint, les Invalidate, les Refresh et les Update ! Alors reprécisons un peu tout ça :

Update : Traite immédiatement tous les messages de réaffichage en attente

Invalidate : Redessine entièrement le contrôle.

Refresh : Redessine le contrôle àl'écran.

Repaint : Oblige le contrôle à redessiner son image àl'écran.

Comme on peut le voir, les nuances sont subtiles et l'aide en ligne ne nous aide pas beaucoup à ce niveau. Mais chaque méthode aboutit à un redessin du contrôle à l'écran et c'est l'essentiel.

Faites votre choix... :)
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
May Delphi be with you
0
delphi_zed_abd
Messages postés
1
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
18 avril 2006

18 avril 2006 à 10:42
comment utiliser l'assistant Rave pour générer des états maitre/detail ....
toujours il me dit il faut ajouter 2 vues de données ....malgré qu'il y a déja 2 vues de données
Merci d'avance

zed_abd
0