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 :

Utilisation pavet numerique


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut Utilisation pavet numerique
    Bonjour,

    J'ai fait une calculatrice sur c++ builder 6 puis j'aimerais que l'utilisateur puisse aussi faire ses calculs avec le clavier.. Pour les chiffre de 0 à 9 sa fonctionne puisque c'est un TEdit mais pour les symboles d'opérations (+,-,*,/) je sais pas du tout comment faire.. Je sais qu'on peut faire avec un test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if(KEY==??) { 
    mon code 
    }
    Comment puis-je trouver le numero de touche pour ses symboles ?

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Bonjour,

    un extrait de l'aide (code des touches virtuelles) :
    VK_MULTIPLY Touche Multiplication (pavé numérique)
    VK_ADD Touche Plus (pavé numérique)
    VK_SEPARATOR Touche Séparateur (pavé numérique)
    VK_SUBTRACT Touche Moins (pavé numérique)

    VK_DECIMAL Touche décimale (pavé numérique)
    VK_DIVIDE Touche Division (pavé numérique)
    Nicolas

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    Merci... Maintenant j'ai une autre problème..

    Quand je vais dans mon TEdit et que je tappe avec le pavet "5*" je voudrais qu'il m'efface le caractère "*"..

    Voila mon code ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //---------------------------------------------------------------------------
    void __fastcall TfmMain::edAffichageKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
       if (Key == VK_MULTIPLY ) {
          operation = 3 ;
          val1 = edAffichage->Text.ToInt() ;
          edAffichage->Text = "" ;
       }
    }
    //---------------------------------------------------------------------------
    Il efface le chiffre "5" mais pas le "*"..

    Merci

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    Bonjour,

    1. Je pense que tu aurais dû ouvrir une nouvelle discussion (principalement pour que le titre soit bien en rapport avec le contenu --> meilleure gestion de la base de données)

    2. Il est préférable de faire ton traitement sur le OnKeyUp plutot que sur le OnKeyDown car le Tedit n'est pas encore mis à jour sur le OnKeyDown. Ceci explique pourquoi le 5 est effacé mais pas le *.

    3. Pour supprimer seulement le dernier caractère du TEdit, on peut par exemple utiliser la méthode "Delete" de la classe AnsiString (sur edAffichage->Text)

    Voilà, j'espère que cela répond à la question...

    Nicolas

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 163
    Par défaut
    3. Pour supprimer seulement le dernier caractère du TEdit, on peut par exemple utiliser la méthode "Delete" de la classe AnsiString (sur edAffichage->Text)
    Comment je fais pour faire ca ?

    Merci

  6. #6
    Membre éprouvé
    Inscrit en
    Mars 2002
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 105
    Par défaut
    1. Tu regardes dans l'aide
    Supprime un nombre donné de caractères de la chaîne.

    AnsiString& __fastcall Delete(int index, int count);

    Description

    Delete modifie l'AnsiString pour supprimer count caractères de la chaîne en commençant par le caractère situé à la position index, où l'indice du premier caractère est 1. Elle renvoie la chaîne résultante modifiée (*this).

    Si index est plus grand que la longueur de l'AnsiString ou inférieur à 1, aucun caractère n'est supprimé.

    Si count indique plus de caractères qu'il n'en reste en partant de l'indice, Delete supprime le reste de la chaîne. Si count est inférieur à 0, aucun caractère n'est supprimé.
    2. Tu essayes de l'utiliser (par exemple avec la méthode Length() de AnsiString).

    3. Si tu n'y arrives pas, poste ton code.

    Désolé de ne pas te fournir le code tout fait, mais on apprend toujours mieux en découvrant par soi même...

    Nicolas

Discussions similaires

  1. Réponses: 40
    Dernier message: 04/11/2016, 17h28
  2. [XAML] RessourceDictionary utiliser une constante numerique
    Par igorzup dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 07/06/2012, 09h44
  3. Réponses: 3
    Dernier message: 29/05/2006, 17h04
  4. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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