IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Pascal Discussion :

[LG]Pause de programme ou Break time


Sujet :

Langage Pascal

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 35
    Points
    35
    Par défaut [LG]Pause de programme ou Break time
    Coucou ,

    Je crois qu'il est possible de créer des pauses dans un programme.

    Exemple à la fin de cette procédure, il attend 80 sec avant de repartir au PROGRAMME PRICIPAL ( BEGIN END. )

    Est ce possible????

    Au pire j'avais penser à mettre du son à 0 hertz pendant x seconde !

    Si vous savez comment faire prière de m'indiquer la syntaxe..

    En vous attendant

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Si tu veux une pause de 80 millisecondes:
    Si tu veux une pause jusqu'à ce qu'une touche soit pressée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var car:char;
     
    // on vide le buffer
    while keypressed do car := reakKey;  
    // on attend qu'une touche soit pressée
    repeat until keyPressed;
    De mémoire, s'il y a un soucis, dis-le je testerai.

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    107
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 107
    Points : 279
    Points
    279
    Par défaut
    Citation Envoyé par siocnarf
    Si tu veux une pause de 80 millisecondes:
    Si j'ai bien compris, c'est cela que veux faire lavaud.
    mais ce n'est pas 80 sm c'est 80 s ! Ce qui fait attendre le pc 80 000 ms ( on va encore dire que je ne sais pas convertir ... )

    D'autre part, la réponse à lavaud étais dans sa question :-D
    Quand tu parles de faire un son de 0Hz pendant 80 secondes, c'est que tu compte utiliser Delay !
    Car sache que Delay et sound sont des instructions totalement indépendantes. Delay sert juste a stopper le programme alors qu'il ne fait rien du tout, une sorte de sciéste ( executer une action toutes les X secondes alors que le programme fait autre chose est possible, grace a l'unité timer de ... hdd34 .)

    Bon, en espérant que tu aies compris ...

    ++mathieu

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Jusqu'à preuve du contraire, Delay attend un laps de temps en milliseconde, donc Delay(1000) fera patienter la bête pendant une toute petite seconde...

    C'est pas mal le coup du son à 0 Hz... En fait, tu utilises des procédures alors que tu ne sais pas à quoi elles servent. Place donc ton curseur sur Delay, et appuie sur Ctrl+F1...

    A+

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    N'empêche que pour le son à zéro hertz je savais bien que c'était pas comme ça mais ça peux marcher aussi.

    Dans ma vielle doc de cyberzoide il y a écrit qu'il fallait convertir le son en minute !!!

    Alors quelle unite ( non -informatique choisir ) ms ou min !!!!

    Je suis impatient ;

    A +

  6. #6
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Convertir un son en minute, je trouve ça intéressant... Tu me mettras aussi un convertisseur de patates en ornythorynx, d'accord ?

    Bon, te payerais-tu notre tête ? Je t'ai dit ce qu'il fallait faire, alors soit tu ne sais pas lire, soit tu es manchot, soit tu n'as pas de clavier...

    Parce qu'en regardant l'AIDE (tu sais, le truc qui sert accessoirement...), on peut y lire nettement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       Delay             Procédure      (Unité  Crt )
     
     Attente d'un certain nombre de millisecondes.
     
     DECLARATION:
      procedure Delay(Ms: Word);
     
     CIBLE:
      Réel, Protégé
     
     DESCRIPTION: Ms spécifie le nombre de millisecondes à attendre.
    Là, tu as vu m.i.l.l.i.s.e.c.o.n.d.e.s ???

    Donc, on va se la faire autrement : Toi devoir utiliser Delay, et toi devoir indiquer entre parenthèses l'attente en millièmes de secondes, appelées aussi millisecondes.

    C'est mieux comme ça ?

    PS: Sans rancune, mais si toi tu es impatient, nous, on est un peu exaspérés...

    PS': Pour une attente de 80s, comme tu veux le faire, ça donne ça :

    Au fait : pour convertir des secondes en milisecondes, on multiplie par 1000. Je vais devenir taré, c'est pas possible...

    A+

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 313
    Points
    4 313
    Par défaut
    Du calme HDD34 !!
    Lavaud, la prochaine fois, regarde l'aide on y trouve plein de choses intéressantes
    a+

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 35
    Points
    35
    Par défaut
    C'est bon ...

    Oh j'avais une doc ou c'était écrit en minute

    BON C'EST TOUT... MERCI hdd 34 j'ai compris c'est en milisecondes

    Et Je n'aprécie pas trop que l'on me prenne pour un CCCCOOO...

    Mais enfin il y a eu incompréhension et je vous jure de ne plus recommencer !!! quoi que :

    Allez A + et merci encore

  9. #9
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Généralement, les personnes que l'on prend pour des c... ont réussi avec succès à se faire passer pour des c...

    Quand 2 personnes différentes parlent de millisecondes, et que l'aide de Turbo Pascal, seule vraie référence avec le test manuel, dit la même chose, y'a pas trop de questions à se poser.

    Il suffisait en plus d'essayer Delay(80). Tu te serais vite rendu compte que le prog ne se refermait pas au bout de 80 min, mais quasi instantannément.

    Alors sans rancune, mais bon, de temps en temps...

    A+

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2003
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par siocnarf
    Si tu veux une pause jusqu'à ce qu'une touche soit pressée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var car:char;
     
    // on vide le buffer
    while keypressed do car := readKey;  
    // on attend qu'une touche soit pressée
    repeat until keyPressed;
    De mémoire, s'il y a un soucis, dis-le je testerai.

    euh scuzez moi de remonter un vieux topic, mais tant qu'a faire autant pauser la question ici plutôt que d'en recréer un...

    a quoi sert ta première ligne de code ? La deuxième suffit nan ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 52
    Points : 75
    Points
    75
    Par défaut
    Pourquoi la ligne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while keypressed do car := readKey;
    KeyPressed teste simplement si le buffer clavier contient quelque chose mais ne touche pas au contenu. Ainsi pour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    writeLn('1');
    repeat until keyPressed;
    writeLn('2');
    repeat until keyPressed;
    writeLn('3');
    Le programme ne s'arrête pas entre les étapes 2 et 3 puisque le buffer n'a pas été vidé après le premier appui sur le clavier.

    Enfin, cela c'était pour TP5 sous DOS... sans Windows. Si ce n'est plus le cas, merci de me le faire savoir que je mette mes connaissances à jour !

  12. #12
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Non non, un PC reste un PC, et il faut garder une certaine compatibilité ascendante, sinon, on n'est pas dans la m.....

    Le buffer clavier est "équipé" de deux pointeurs : un sur le dernier caractère entré, et un sur le premier emplacement de libre dans le buffer.

    KeyPressed ne fait que tester si les deux pointeurs sont égaux, à savoir s'il y a eu on non introduction d'un nouveau caractère dans le buffer.

    readKey, pour sa part, teste bien si les deux pointeurs sont égaux ou non, et si ce n'est pas le cas, renvoie le caractère introduit et avance le pointeur en conséquence.

    La première ligne va donc s'assurer que les pointeurs soient à la même position, pour être sûr et certain que les prochains KeyPressed (la 2ème ligne) vérifieront les touches nouvellement pressées, et non des "vieilles" touches qui traineraient dans le coin...

    A+

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/07/2009, 17h51
  2. Réponses: 4
    Dernier message: 26/04/2008, 01h29
  3. Effectuer une pause du programme
    Par Ph.denis dans le forum C
    Réponses: 2
    Dernier message: 04/04/2008, 14h59
  4. Pause du programme au niveau du GUI
    Par Emilie[2009] dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 16/03/2008, 18h12
  5. Pause du programme
    Par pedro85 dans le forum VB.NET
    Réponses: 12
    Dernier message: 02/10/2007, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo