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

 Delphi Discussion :

console keypress non bloquant


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 992
    Par défaut console keypress non bloquant
    bonjour, je developpe un programme console qui effectue une boucle infinie avec un sleep

    je cherche un moyen après chaque sleep de savoir si l'utilisateur a appuyé sur une touche.

    ceci sans attendre, contrairement à read et readln

    la je passe par un txt qui est lu après chaque sleep et qui execute son contenu si pas vide ce qui n'est pas pratique du tout

    merci pour votre aide

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Quelque chose du genre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    //Variable global
    var
    InputHan: THandle;
     
     
    //==============================================================================
    //== Récupération des handles StdIn 
    //== Cette fonction est appelé par la section Initialization
    Procedure InitStdInOut();
    Begin
      InputHan := GetStdHandle(STD_INPUT_HANDLE);
    End;
     
     
     
    Var
      dw: DWord;
      buf: TInputRecord;
    begin
    if WaitForSingleObject(InputHan,100)=WAIT_OBJECT_0 then
    begin
        ReadConsoleInput(InputHan, buf, 1, dw);
        // Même + (Mouse, _MOUSE_EVENT,
        //WINDOW_BUFFER_SIZE_EVENT,MENU_EVENT et FOCUS_EVENT
        //voir Help sur ReadConsoleInput
        If (buf.EventType = KEY_EVENT) And (buf.Event.KeyEvent.bKeyDown) Then
        Begin
          //des lettres=> buf.Event.KeyEvent.AsciiChar
          //touche special=>buf.Event.KeyEvent.wVirtualKeyCode      
        End;
    end;
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  3. #3
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 992
    Par défaut
    merci beaucoup, j'était partis sur un thread pour ma boucle et un read dans mon programm mais pas pratique.

    c'est de vous ou vous y avez trouvé?

    merci

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    + ou - des extraits de mon code pour le defi des serpents....
    tu devrais y jeter un coup d'oeil....

    http://delphi.developpez.com/defi/serpent/
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  5. #5
    Membre émérite
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    992
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 992
    Par défaut
    merci je vais voir sa

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/10/2005, 12h29
  2. Réponses: 5
    Dernier message: 02/09/2005, 12h47
  3. Rendre la lecture non bloquante
    Par Charlinecha dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 05/07/2005, 15h46
  4. Réponses: 3
    Dernier message: 16/03/2004, 16h42
  5. [API] Communication série NON-bloquante : OVERLAPPED/Thread
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/11/2003, 13h43

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