begin process at 2012 02 11 08:35:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > FAIRE UNE PAUSE DE ** SECONDES OU MILLISECONDES SANS "PERDRE LA MAIN"

FAIRE UNE PAUSE DE ** SECONDES OU MILLISECONDES SANS "PERDRE LA MAIN"


 Information sur la source

Note :
9,5 / 10 - par 6 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :02/11/2002 Date de mise à jour :02/11/2002 13:40:38 Vu :7 686

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (7)
Ajouter un commentaire et/ou une note


 Description

Bon bah j'ai aussi mis ce code sur vbfrance (en vb quand meme lol...) parcque moi ca me sert assez souvent.
Et vous me direz surement "oui il y a sleep() pour faire une pause", mais sleep perd la main, vous ne pouvez pas quitter ni deplacer la feuille, contrairement à ces fonctions.

Source

  • function hbwait_ms(ms : integer) : integer;
  • var
  • hbms : integer;
  • begin
  • hbms := GetTickCount + ms;
  • repeat
  • Application.ProcessMessages;
  • until GetTickCount >= hbms
  • end;
  • function hbwait_sc(sc : integer) : integer;
  • var
  • hbsc : integer;
  • begin
  • hbsc := GetTickCount + (sc * 1000);
  • repeat
  • Application.ProcessMessages;
  • until GetTickCount >= hbsc
  • end;
  • {On appelera ensuite la fonction comme tel : }
  • hbwait_sc(5); {Fait une pause de 5 secondes}
  • hbwait_ms(2000); {Fait une pause de 2500 millisecondes}
function hbwait_ms(ms : integer) : integer;
var
hbms : integer;
begin
 hbms := GetTickCount + ms;
 repeat
 Application.ProcessMessages;
 until GetTickCount >= hbms
 end;

 function hbwait_sc(sc : integer) : integer;
var
hbsc : integer;
begin
 hbsc := GetTickCount + (sc * 1000);
repeat
 Application.ProcessMessages;
  until GetTickCount >= hbsc
 end;




{On appelera ensuite la fonction comme tel : }
hbwait_sc(5); {Fait une pause de 5 secondes}
hbwait_ms(2000); {Fait une pause de 2500 millisecondes}
 

 Conclusion

c'est simple, mais ca peut toujours servir...


 Sources du même auteur

Source avec Zip CONVERSIONS : BINAIRE - OCTALE - DECIMALE - HEXADECIMALE
AJOUTER UN OBJET (ICI LABEL POUR L'EXEMPLE) DYNAMIQUEMENT SU...
RENVOYER CE QU'IL Y A AVANT UNE STRING, APRES UNE STRING OU ...

 Sources de la même categorie

Source avec Zip Source avec une capture KINECT TEST V1 par FFCAST
Source avec Zip DÉCOUPER UNE FENÊTRE par gta126
Source avec Zip TRANSCRIRE UN FICHIER OPEN FINANCIAL EXCHANGE (OFX) EN FICHI... par jeffem
Source avec Zip Source avec une capture MSXML 4.0 VALIDATION XML / XSD par redtux
Source avec Zip FBRENOMMEADOBJET par fbalien

Commentaires et avis

Commentaire de fabiin le 02/11/2002 12:12:09

repeat... until n'a pas besoin de begin et end ;)

Commentaire de hvb le 02/11/2002 13:42:40

je sais pas trop quand il faut, et quand il ne faut pas les mettres (srutout que avec, et sans, ca passe), enfin en tout cas pour cet exemple, j'ai mis a jour, et je les ai enlevés. merci fabiin

Commentaire de Delphiprog le 02/11/2002 17:50:15 administrateur CS

Je ne saisis pas bien l'intérêt,  à part de déplacer une fiche pendant que l'application ne fait rien ! En fait, Application.ProcessMessages redonne la main au système pour qu'il puisse traiter les messages en attente. C'est un héritage du temps de Windows 3, quand le multitâche était coopératif. Autrement dit, c'était au bon vouloir de l'application de rendre la main à Windows pour ne pas bloquer les autres tâches en cours.
Je ne remets pas en cause l'utilité de cette méthode, mais elle doit utilisée en toute connaissance de cause (et surtout d'effets).
Il est bien plus utile que l'application puisse réagir pendant que des tâches parallèles s'effectuent (Threads).

Quant au couple Begin..End, il sert à délimiter un bloc d'instruction. Certaines instructions incorporent ces délimiteurs : case..end, repeat..until, try..finally..end, try..except..end

Commentaire de hvb le 03/11/2002 02:00:42

en fait ca m'a surtout servi quand je fesais des petites appli vb utilisant winsock ou encore qq jeux... et cela va aussi me servir en delphi je pense.

Commentaire de hvb le 03/11/2002 02:01:38

et merci pr la precision pr le begin..end, Delphiprog .

Commentaire de Smortex le 09/11/2002 22:01:13

- Quel est l'intéret de faire des fonctions quand on ne renvoie pas de résultat ?
Utiliser function au lieu de procédure ca fait plus bô ?
- Remplace les Integer par des Cardinal (Sauf si tu est fan des avertissements dans la fenêtre de résultat).

Sinon, l'application et quand même partiellement bloqué car on ne peut pas la fermer pendant qu'on attends... Le mieux selon moi est d'utiliser un thread...

Commentaire de murphy2712 le 28/06/2005 09:53:10

hbwait_ms(2000); {Fait une pause de 2500 millisecondes}

=> lol !

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales