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++/CLI Discussion :

Chaine en Entier


Sujet :

C++/CLI

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 22
    Par défaut Chaine en Entier
    Bonjour

    Je recherche comment convertir ,

    par exemple le contenu d'un texbox en int , j'ai par ailleur essayer de forcer le transtypage mais yarrive pô

    Merci par avance

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int test = 0;
    if( (int) mon_edit->text::get() == test ) //...
    je souhaite aussi modifier la propriété Text d'un composant quelqun mais a l'aide d'une variable

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CString test;
    this->mon_edit->text = L"" += test;

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Convert::ToInt32() <---> Convert::ToString()
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 22
    Par défaut
    Ok merci
    et donc pour modifier la propriété Text comme dit plus haut, t'aurais une solution ?

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il est en général plus judicieux Int32::TryParse : http://msdn.microsoft.com/en-us/library/f02979c7.aspx

    et pour ta propriété

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monEdit->Text = "ma chaine";

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    non tu n'as pas compris , il veux modifier la prop' d'un textbox , mais avec une variable de type CString , mais ca je sais pas faire cest pourquoi je suis là ausssi

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    En C++/CLI, on utilise plutôt une String^ qu'une CString...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    Pour mimer ce comportement avec les Winforms, on utilise le databinding

    Premierement, ta classe doit implémenter l'interface INotifyPropertyChanged :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public ref class Form1 : public System::Windows::Forms::Form, INotifyPropertyChanged
    ce qui implique de définir cet événement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual event PropertyChangedEventHandler ^PropertyChanged;
    Ensuite, tu déclares une propriété, celle qui sera associée à ton controle :

    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
    private:
    	String ^_chaine;
    public:
    	property String ^Chaine
    	{
    		String ^ get() { return _chaine; }
    		void set(String ^value) 
    		{ 
    			if (value != _chaine)
    			{
    				_chaine = value;
    				NotifyPropertyChanged("Chaine");
    			}
    		}
    	}
    On note la présence de la méthode NotifyPropertyChanged pour indiquer que la propriété a changé de valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    private:
    	void NotifyPropertyChanged(String ^info)
    	{
    		PropertyChanged(this, gcnew PropertyChangedEventArgs(info));
    	}
    C'est grâce à PropertyChanged qu'on va déclencher l'événement de mise à jour de la valeur de binding.

    Ne pas oublier de définir explicitement le binding, pour un textbox par exemple, il faudra faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textBox1->DataBindings->Add("Text", this, "Chaine");
    Ainsi, si par code, tu modifies ta propriété "Chaine", le textbox sera mis à jour automatiquement

    De meme, si tu modifies le textbox, la propriété Chaine sera informée.

    On appelle ca un binding bidirectionnel

Discussions similaires

  1. conversion chaine en entier
    Par franfr57 dans le forum Général Java
    Réponses: 5
    Dernier message: 06/12/2008, 12h44
  2. Conversion en ASP d'une chaine en entier
    Par jamesleouf dans le forum ASP
    Réponses: 7
    Dernier message: 30/04/2008, 09h14
  3. Convertir chaine en entier unique
    Par bolandfranck dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2007, 12h23
  4. convertir une chaine en entier long
    Par boulhous dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/08/2007, 22h22
  5. [debutant]transform chaine en entier
    Par loutente dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2005, 10h53

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