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 :

combobox->text [FAQ]


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Par défaut combobox->text
    Bonjour a tous
    j'aimerais transformer un string en float : StrToFloat (combobox->Text)
    mais ca ne marche pas. J'utilise ItemIndex pour retrouver le contenu de Text mais je pense qu'il existe une soluce plus simple ?!?
    merci de vos reponses
    Salut

  2. #2
    Membre habitué
    Inscrit en
    Avril 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 13
    Par défaut
    A prioris, le code que tu as envoyé est correct. Qu'est ce qui ne marche pas?

    Tu peux aussi faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    double dval = combobox->Text->ToDouble();

  3. #3
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    C'est pas plutot comme ça qu'on recupérerait la valeur string/float


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrToFloat (combobox->ItemIndex[numero_de_ligne]->Text)
    Flo

  4. #4
    Membre émérite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par défaut
    Pour une ComboBox, text est le texte actuellement dans la zone de saisie.

  5. #5
    Membre chevronné Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Par défaut
    oui mais est-ce

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrToFloat(combobox->IntemIndex[nb_ligne]->Text);
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StrToFloat(combobox->Text);
    ?

    Flo.

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Par défaut
    Merci a tous pour vos reponses

    Ce que je tente d'obtenir c'est :
    Diametre->Text = StrToFloat (FloatToStr (Combobox->Text) * Pi);
    Ca compile mais s'arrete avec :
    projet Circonference.exe raised exception class econvert error message "38.1" is not a valid floating point value.
    En un mot, la conversion de string vers float n'est pas correcte.
    Je vais essayer les soluces que j'ai recues.

    Salut.

  7. #7
    Membre émérite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par défaut
    Non, c'est pas ça. Le problème est que sur ton ordi, le séparateur des float doit être la virgule et non le point. J'ai eu un pb de portabilité à cause de ça. Donc il faut que dans ton combobox, tu aies 38,1 et non 38.1

  8. #8
    Ara
    Ara est déconnecté
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 3
    Par défaut
    Donc il faut que dans ton combobox, tu aies 38,1 et non 38.1
    ou bien tu peut definir le serapateur :

    DecimalSeparator = '.';

    DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.
    initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais.

  9. #9
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Par défaut
    autrement, tu peux aussi rechercher le '.' et le remplacer par une virgule avant de faire la conversion ce que ton utilisateur appréciera car il verra que ton logiciel a bien interprété ce qu'il voulait et l'a adapté à son fonctionnement. ça c'est de l'IHM !

  10. #10
    Ara
    Ara est déconnecté
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 3
    Par défaut
    clovis >
    Diametre->Text = StrToFloat (FloatToStr (Combobox->Text) * Pi);
    je pense plutôt que c'est comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Diametre->Text = FloatToStr ( StrToFloat(Combobox->Text) * Pi);
    ne pas confondre FloatToStr et StrToFloat

  11. #11
    Membre émérite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par défaut
    autrement, tu peux aussi rechercher le '.' et le remplacer par une virgule avant de faire la conversion ce que ton utilisateur appréciera car il verra que ton logiciel a bien interprété ce qu'il voulait et l'a adapté à son fonctionnement. ça c'est de l'IHM
    Ca c'est vraiment de la bidouille

    DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.
    initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais.
    Je ne connaissais pas. Merci.

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Par défaut
    C'etait bien cela. Une virgule au lieu d'un point.
    Ce qui m'etonne est que mon systeme est entierement US et donc le point devrait indiquer les decimales ?!?
    Il ne me reste plus qu'a trouver cette variable dans les settings et de la modifier.

    Merci de votre aide

  13. #13
    Membre émérite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par défaut
    Moi, j'ai un système théoriquement français, et pourtant c'est un point. Chez des amis (à 1km de chez moi, dc en France), c'est une virgule, et pourtant, le système est français. Allez comprendre !

  14. #14
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par défaut
    Salut,
    Panneau de configuration, paramètres régionaux, onglet nombres, champ symbole décimal.
    @+
    Frédéric

  15. #15
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Par défaut
    Merci pour le parametre virgule/point
    Est-il possible de controler la ponctuation utilisee par Windows pour les decimales
    Salut

  16. #16
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par défaut
    ???
    De quoi parles-tu ?
    Il me semble que je viens de te répondre : windows contrôle la ponctuation des décimales via les paramètres régionaux.
    @+

  17. #17
    Membre émérite
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Par défaut
    ou bien tu peut definir le serapateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DecimalSeparator = '.';
    DecimalSeparator is the character used to separate the integer part from the fractional part of a number. The initial value is fetched from LOCALE_SDECIMAL.


    initialiser cette variable permet d'utiliser le programme sur un systeme US et Francais

  18. #18
    Membre confirmé
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Par défaut
    Je me demandais s'il existait une fonction pour retrouver le setting du point/virgule pour les decimales, dans le registre de windows. Afin d'utiliser la ponctuation choisie par l'utilisateur.
    Bon weekend

  19. #19
    Membre averti

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Par défaut
    Salut,
    Ici, tu récupères dans lplcdata le séparateur décimal choisi par l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      char lplcdata[1];
      ::GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, lplcdata, 1);
    @+
    Frédéric

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

Discussions similaires

  1. combobox, lors du clique, le texte disparaît
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/07/2006, 14h06
  2. [C#] proprités text d'une Combobox
    Par kooljy dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/06/2006, 09h24
  3. [c#2.0]Récupérer le texte d'un combobox
    Par cmoiscrat dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/06/2006, 12h16
  4. addition champ texte et combobox
    Par energie13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/12/2005, 09h05
  5. [ComboBox] retourner le texte sélectionné
    Par Husqvarna dans le forum C++Builder
    Réponses: 2
    Dernier message: 08/11/2004, 17h09

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