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

VC++ .NET Discussion :

[D�butant] Initialisation d'attributs.


Sujet :

VC++ .NET

  1. #1
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut [D�butant] Initialisation d'attributs.
    Bonjour,

    J'aimerais pouvoir initialiser la couleur d'un de mes composants � sa cr�ation, j'ai donc mis ce code dans le constructeur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public ref class note : public System::Windows::Forms::Form
    	{
    	public:Color couleur;
     
    	public:
    		note(void)
    		{
     
    			InitializeComponent();
    			this->richTextBox1->BackColor::set(couleur);
    Sachant que j'initialise couleur lors de la cr�ation de ma fen�tre note :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    	note^ not = gcnew note();
    	 not->Show();
    	pref^ op = gcnew pref();
    	not->couleur = op->coul;
    Si vous avez des id�es, parce que j'ai essay� un grand nombre de combinaisons mais sans succ�s. Cette version compile mais ne produit rien.

    Merci d'avance.

  2. #2
    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
    y a un probl�me dans l'utilisation de la couleur.
    tu as tout interet � faire une m�thode publique pour mettre � jour la couleur.

    et ne pas oublier de redessiner le composant

  3. #3
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    OK, alors voil� ce que j'ai fait :
    la m�thode :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    	public:System::Void chgt_coul(System::Drawing::Color couleur)
    		{
    	   	this->richTextBox1->BackColor::set(couleur);
    	        }
    L'appel lorsque je cr�e ma fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    	note^ not = gcnew note();
    	   not->Show();
    	   pref^ op = gcnew pref();
    	   not->chgt_coul(op->coul);
    Bonne compilation mais toujours rien � l'�x�cution.

  4. #4
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    C'est bon en fait mon erreur ne vient pas de l�, si tu veux j'ai trois fenetre.
    La premi�re avec laquelle je cr�� ma fenetre note et une autre fenetre de configuration.

    Avec la fenetre de configuration je veux d�finir une couleur par d�faut pour ma fen�tre note mais lorsque je ferme la fenetre configuration apr�s avoir d�fini la couleur, cette derni�re se remet automatiquement � la valeur initiale.

    Il faut que je m�morise ma couleur dans la fenetre configuration mais je ne vois pas comment faire.

  5. #5
    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
    je comprends rien � ton probl�me
    mais d�j�, faudrait mieux faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    	public:System::Void chgt_coul(System::Drawing::Color couleur)
    		{
    	   	this->richTextBox1->BackColor = couleur;
    	        }

  6. #6
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    OK, j'ai fait la modif, alors j'explique mon probl�me un peu mieux :
    J'ai trois fenetre distinctes:
    Form1 : fen�tre m�re avec laquelle on acc�de � la fen�tre de config, et avec laquelle on cr�e une autre fen�tre.

    note : fen�tre cr�� a partir de Form1.

    configuration : fen�tre de configuration d'une note dans laquelle je choisi une couleur qui s'affiche dans une pictureBox.

    form1:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    	private: System::Void open(System::Object^  sender, System::EventArgs^  e) {
    				 note^ not = gcnew note();
    				 not->Show();
    				 pref^ op = gcnew pref();
    				 not->chgt_coul(op->coul);
    			 }
    note :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    		public:System::Void chgt_coul(System::Drawing::Color couleur)
    			   {
    	   			this->richTextBox1->BackColor = couleur;
    			   }
    config :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    	private: System::Void application(System::Object^  sender, System::EventArgs^  e) {
    				 //police = this->label5->Font;
    				 coul = pictureBox1->BackColor;
     
    				 this->Close();
    			 }
    Ce que je veux c'est que gr�ce � ma fen�tre de configuration je choissise une couleur qui s'applique � la note cr��e et qui s'enregistre comme couleur par d�faut pour chaque note que je cr�rai ensuite.

    D�sol� mais c'est difficile d'expliquer comme �a...

  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
    ben je sais pas, il existe cent mille facon de faire
    tu peux utiliser une variable membre de ta classe Form1 pour stocker la couleur et l'utiliser � chaque instanciation de ta note.

    Si tu as besoin que ce soit persistant, tu passes par les fichiers, etc ...

  8. #8
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    OK, j'ai peut-�tre une solution mais je ne sais pas comment faire :

    Je cr�� une variable couleurenreg dans Form1 qui contiendra la couleur de la note, mais le souci c'est que je ne sais pas comment mettre la couleur choisie (dans config) dans cette variable parceque je ne peux pas acc�der � une variable de form1 � partir de config.

    J'ai essay� d'inclure Form1.h dans config mais comme config.h est inclu dans form1 �a me fait une erreur.

    Donc je voudrais savoir si je peux acc�der � une variable de form1 � partir de config ?

  9. #9
    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
    oui tu peux, tu d�clares en public soit ta variable, soit un accesseur
    et pour r�soudre ton probl�me d'inclusion multiple, il faut que tu fasses une d�claration anticip�e et que tu d�portes le code des fonctions dans un .cpp

    va falloir que je r�dige un truc dans cette optique un jour pour la faq

  10. #10
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    J'ai essay� de d�clarer ma variable en public mais par exemple de la classe config je ne vois pas comment acc�der � une variable de form1 ?

    Si tu peux me donner la syntaxe...

    Merci

  11. #11
    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 faut que ton objet config connaisse l'objet form1
    ca peut se faire de plusieurs mani�res, tu peux par exemple le passer dans le constructeur, ou via une m�thode.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    ObjetConfig objConfig = gcnew ObjetConfig(monInstanceDeForm1);
    et puis apr�s, tu as dans ta classe config, une variable de type Form1 qui stocke la valeur pass�e par le constructeur

  12. #12
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    Il faut donc que config contienne un constructeur avec en param�tre une instance de Form1 ??

    Je ne comprend pas trop d�sol�.

    Ce que je veux c'est acc�der aux variables de Form1 � partir de config sans avoir � inclure form1.h dans config, tout en sachant que config.h est inclu dans form1.

  13. #13
    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
    Citation Envoy� par Baban29
    Ce que je veux c'est acc�der aux variables de Form1 � partir de config sans avoir � inclure form1.h dans config
    tu ne peux pas, d'une mani�re ou d'une autre, il faut que les objets se connaissent
    Il faut que tu d�clares les classes de mani�re anticip�es, comme expliqu� plus haut

  14. #14
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    OK, alors je dois d�clarer form1.h dans config.cpp et ensuite le code d'acc�s aux variables de form1 doit se faire dans le cpp ?

    Ce que je ne saisis pas c'est que dans le .cpp de config je n'est plus acc�s aux composant de la fen�tre config.

  15. #15
    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
    tu dois inclure les .h dans les .h
    et n'oublie pas de remettre le namespace dans le .h et d'utiliser l'op�rateur de r�solution de port�e

  16. #16
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    OK, mais mon souci c'est que conf.h est inclue dans form.h, donc comment je peux acc�der aux variables de form � partir de conf sachant que je ne peux pas inclure form.h dans conf.h (erreur de profondeur d'inclusions).

    Je ne sais pas si je me fais bien comprendre...

  17. #17
    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
    Citation Envoy� par Baban29
    OK, mais mon souci c'est que conf.h est inclue dans form.h, donc comment je peux acc�der aux variables de form � partir de conf sachant que je ne peux pas inclure form.h dans conf.h (erreur de profondeur d'inclusions).

    Je ne sais pas si je me fais bien comprendre...
    c'est cette "profondeur d'inclusions" que tu dois r�soudre
    en incluant une unique fois chaque fichier (pragma once)
    et en faisant des d�clarations anticip�es

    voir dans ce post, il y a un exemple http://www.developpez.net/forums/sho...d.php?t=247681

  18. #18
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    Bon j'ai essay� ce que tu m'as indiqu� mais je n'arrive toujours pas.

    J'ai fait une petite application de test reprenant les grandes lignes de mon projet, pourrait-tu si tu as le temps r�gler mon probl�me, c'est � dire dans cette application appliquer la couleur choisie dans conf a note. Je te joint donc les .cpp et les .h.

    Merci beaucoup de m'aider.
    Fichiers attach�s Fichiers attach�s

  19. #19
    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
    t'y es presque

    tu as juste � rajouter dans ton conf.h un truc du genre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    private: System::Drawing::Color ^couleur;
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    	// Update the text box color if the user clicks OK 
    	if (colorDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
    	{
    		pictureBox1->BackColor =  colorDialog1->Color;
    		couleur = colorDialog1->Color;
    	}
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    			 public: Drawing::Color ^ getColor(){
    						 return couleur;
    					 }
    dans ta form1.h
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	private: System::Void open_conf(System::Object^  sender, System::EventArgs^  e) {
    				conf^ pref = gcnew conf();
    				pref->ShowDialog();
    				coul = pref->getColor();
     
    			 }
    	private: System::Void open(System::Object^  sender, System::EventArgs^  e) {
    				 note^ not = gcnew note(coul); /*coul est la couleur que l'on as choisi dans la fenetre conf*/
    				 not->Show();
    			 }
    et d'utiliser des handles � la place d'objet pour coul par exemple
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    private:Color ^coul;
    et ainsi, dans ton constructeur de note, tu peux faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    	private:Color ^couleurnote;
    		note(Color ^ col){
    			this->couleurnote = col;
    			InitializeComponent();
    		}
    et apr�s, tu construis ta note

  20. #20
    Membre averti
    Inscrit en
    D�cembre 2006
    Messages
    61
    D�tails du profil
    Informations forums :
    Inscription : D�cembre 2006
    Messages : 61
    Par d�faut
    Merci beaucoup j'ai enfin r�ussi.

    Heureusement que tu �tais l�...

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 13/12/2005, 09h52
  2. [d�butant][XSL][FOP] Attribut � partir d'un param�tre XML
    Par drinkmilk dans le forum XSL/XSLT/XPATH
    R�ponses: 4
    Dernier message: 03/03/2005, 09h41
  3. [D�butant] Initialiser zone de texte via un tableau
    Par Theseus dans le forum VB 6 et ant�rieur
    R�ponses: 9
    Dernier message: 27/01/2005, 10h19
  4. R�ponses: 3
    Dernier message: 17/12/2003, 11h26

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