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

C++Builder Discussion :

message box avec delay


Sujet :

C++Builder

  1. #1
    Membre confirm� Avatar de supersoft5
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Alg�rie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par d�faut message box avec delay
    salut a tous les developpeurs,
    moi je veux developper un syst�me qui ne s'arrete pas dans le temps, c'est a dire qu'un certain moment j'affiche a l'utilisateur pour effectuer un choix (oui ou non) mais je dois faire un delay dans le non comment faire? histoire que si l'utlisateur n'est pas devant son PC pour que le systeme ne s'arrete pas
    merci d'avance

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par d�faut
    Bonjour,

    je pense qu'� l'ouverture de la boite de dialogue, j'enclencherai un TTimer.
    Celui-ci enverrai apr�s �coulement du temps imparti, un message WM_KEYDOWN avec le code du bouton "Annuler".
    L'utilisation de la proc�dure Perform() est bien expliqu�e dans l'aide.

  3. #3
    Membre confirm� Avatar de supersoft5
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    57
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : Alg�rie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 57
    Par d�faut affichage du temps a l'utilisateur
    merci pour la reponse,
    mais est ce que sur le boutton "non" par exemple il sera affich� le temps en decrementation pour que l'utilisateur le voit?
    c'est ce que je veux faire
    encore merci

  4. #4
    Membre �prouv�
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifi�)
    Inscrit en
    D�cembre 2004
    Messages
    2 059
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : OPNI (Objet Programmant Non Identifi�)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 2 059
    Par d�faut
    Bonjour,
    Avec une boite de dialogue classique, cela me semble peu probable (mais je peut me tromper).
    Il te faudrait g�rer toi m�me soit une TForm, soit un objet d�riv� qui corresponde a tes besoins.

    Bon courage,
    @ +

  5. #5
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut supersoft5:
    on peut afficher un nombre sur le Caption du boutton, mais je n'ai pas reussi a afficher une chaine et un nombre.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    int a = 10;
    Button1->Caption = a;
    C'est a adapter bien sur suivant ses besoins.

  6. #6
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par d�faut
    Bonjour,

    effectivement, je crois qu'il faut utiliser une boite TForm personnelle pour pouvoir y mettre un bouton "NON" g�rable enti�rement.
    Dans ce cas, il est possible d'y mettre le texte que l'on veut.

    Dans la boucle d'attente, il ne faudra pas oublier de mettre un Application->ProcessMessage de fa�on � permettre � Windows de raffraichir graphiquement le texte du bouton.

  7. #7
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par d�faut
    Voici un exemple pour g�rer une MessageBox avec d�lai.
    Dans cet exemple, on affiche une MessageBox quand on clique sur un bouton.
    On laisse 10 secondes � l'utilisateur pour intervenir en affichant le temps restant:

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    // STATIC window control ID pour une message box
    #define ID_MSGBOX_STATIC_TEXT    0x0000ffff
    //////////////////////////////////////////////////////////////////////////////
     
     
    VOID WINAPI MsgBoxTimeout(PVOID pvContext, BOOLEAN fTimeout) {
     
       HWND hwnd = FindWindow(NULL, Form1->szCaption.c_str());
     
       if (hwnd != NULL)
       {
          // La fenêtre existe; met à jour le temps restant
          TCHAR sz[100];
          wsprintf(sz, TEXT("Vous avez %d secondes pour répondre"), Form1->nSecLeft--);
          SetDlgItemText(hwnd, ID_MSGBOX_STATIC_TEXT, sz);
     
          if (Form1->nSecLeft == 0)
          {
             // Le temps est expiré. Ferme la boite de dialogue
             EndDialog(hwnd, IDOK);
          }
       } else 
       {
     
          // La fenêtre n'existe pas encore
          // On re-essaiera dans une seconde
       }
    }
     
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       nSecLeft = 10;  // délai max
       szCaption = "MessageBox avec time_out";  // titre de la fenêtre
     
       // crée un timer de 1 seconde
       HANDLE hTimerQTimer;
       CreateTimerQueueTimer(&hTimerQTimer, NULL, MsgBoxTimeout, NULL,
          1000, 1000, 0);
     
       // Affiche la MessageBox
       MessageBox(NULL, "Vous avez 10 secondes pour répondre",
          szCaption.c_str(), MB_OK);
     
       // Annule le Timer et supprime la queue correspondante
       DeleteTimerQueueTimer(NULL, hTimerQTimer, NULL);
     
       // Affiche un message pour indiquer si le timer a expiré ou non
       MessageBox(NULL,
          (nSecLeft == 0) ? "Temps expiré" : "L'utilisateur a répondu",
             "Résultat", MB_OK);
     
    }
    //---------------------------------------------------------------------------
    Dans le Unit1.h:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    int nSecLeft;
    AnsiString szCaption;

Discussions similaires

  1. Propri�t� d'une Message Box avec boutons YesNoCancel
    Par eric4459 dans le forum Macros et VBA Excel
    R�ponses: 3
    Dernier message: 18/11/2014, 19h52
  2. [D�butant] Afficher message box avec nom du repertoire.
    Par kazuzu dans le forum C#
    R�ponses: 1
    Dernier message: 08/10/2013, 10h16
  3. R�ponses: 3
    Dernier message: 25/02/2012, 17h57
  4. [XL-2000] message box avec un crit�re
    Par kaboche dans le forum Macros et VBA Excel
    R�ponses: 12
    Dernier message: 20/10/2011, 12h18
  5. [C#] Message box avec des boutons diff.
    Par BoOom dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 21/04/2006, 11h47

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