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 habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    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 à l'essai
    Inscrit en
    Avril 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 13
    Points : 14
    Points
    14
    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();
    Ginnovy

  3. #3
    Membre averti 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
    Points : 404
    Points
    404
    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 chevronné
    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
    Points : 1 969
    Points
    1 969
    Par défaut
    Pour une ComboBox, text est le texte actuellement dans la zone de saisie.
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

  5. #5
    Membre averti 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
    Points : 404
    Points
    404
    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 habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    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 chevronné
    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
    Points : 1 969
    Points
    1 969
    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
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

  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
    Points : 4
    Points
    4
    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.
    Le premier être humain à jeter une insulte plutôt qu'une pierre, est le fondateur de la civilisation. (Freud)

  9. #9
    Membre confirmé

    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
    Points : 621
    Points
    621
    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
    Points : 4
    Points
    4
    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
    Le premier être humain à jeter une insulte plutôt qu'une pierre, est le fondateur de la civilisation. (Freud)

  11. #11
    Membre chevronné
    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
    Points : 1 969
    Points
    1 969
    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.
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

  12. #12
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    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 chevronné
    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
    Points : 1 969
    Points
    1 969
    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 !
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

  14. #14
    Membre régulier

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

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

  15. #15
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    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 régulier

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 81
    Points
    81
    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 chevronné
    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
    Points : 1 969
    Points
    1 969
    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
    Une question concernant C++Builder ? Voici la réponse
    Consultez aussi les tutoriels de qualité de la section C/C++

  18. #18
    Membre habitué
    Inscrit en
    Juin 2002
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 198
    Points : 139
    Points
    139
    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 régulier

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 81
    Points
    81
    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