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 :

[C++/CLI] Acc�s aux objets en global


Sujet :

C++/CLI

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par d�faut [C++/CLI] Acc�s aux objets en global
    Bonjour,
    je d�bute en C++ .NET et je souhaite me faire les dents sur les threads.

    Mon but est le suivant:
    j'ai une classe Form1, j'y cr�e un label1
    je cr�e une 2eme classe, dans laquelle j'ai la m�thode Chgt_Label (change le texte de mon label1)

    Dans la classe Form1, je lance mon thread

    1er cas: je passe en argument label1 (Form1->2eme classe), mais �a ne change pas pour autant le texte de mon label1, car j'ai en fait cr�er un clone de label1)

    2eme cas: pensant que label1 est accessible en variable globale, lorsque je tape label1-> dans ma 2eme classe, je n'ai pas acc�s � ses m�thodes et ses param�tres.

    En r�sumer, comment faire pour que des objets de ma Form1 soient accessibles quelque soit la classe, un peu comme des variables globales

    Merci

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par d�faut
    Bonjour, merci de consulter les tutoriel et la FAQ ce sujet est traiter au moins une fois par semaine sur le forum alors qu'il suffit de chercher :
    LIEN vers le tutoriel

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par d�faut [C++ .NET] Acc�s aux objets en global
    Bonjour, voici le code que je viens de faire. Le but premier est d'activer une connection UDP, et lancer un Thread qui se met en attente d'une r�ception UDP.
    Le probl�me, c'est que la m�thode UDP->Receive ne fonctionne pas, car j'ai d�clar� l'objet UDP dans une autre fonction, celle qui lance le thread. Est-il possible d'avoir des objets accessibles partout (global) ?

    Merci de votre aide


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    #pragma once
     
     
    namespace Simulateur_GPS_M2000D {
     
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
     
    	/// <summary>
    	/// Description résumée de Form1
    	///
    	/// AVERTISSEMENT*: si vous modifiez le nom de cette classe, vous devrez modifier la
    	///          propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
    	///          pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
    	///          les concepteurs ne pourront pas interagir correctement avec les ressources
    	///          localisées associées à ce formulaire.
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    		public: UdpClient^ UDP;
    	public: ThreadStart^ Start_Reception_UDP;
    	public: Thread^ Thread_Reception_UDP;
    	public: Form1^ w;
    	public:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO*: ajoutez ici le code du constructeur
    			//
     
     
    		}
     
    	protected:
    		/// <summary>
    		/// Nettoyage des ressources utilisées.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Label^  label1;
    	private: System::Windows::Forms::Label^  label2;
     
    	protected: 
     
    	private:
    		/// <summary>
    		/// Variable nécessaire au concepteur.
    		/// </summary>
    		System::ComponentModel::Container ^components;
     
    #pragma region Windows Form Designer generated code
    		/// <summary>
    		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
    		/// le contenu de cette méthode avec l'éditeur de code.
    		/// </summary>
    		void InitializeComponent(void)
    		{   
    			this->label1 = (gcnew System::Windows::Forms::Label());
    			this->label2 = (gcnew System::Windows::Forms::Label());
    			this->SuspendLayout();
    			// 
    			// label1
    			// 
    			this->label1->AutoSize = true;
    			this->label1->Location = System::Drawing::Point(204, 100);
    			this->label1->Name = L"label1";
    			this->label1->Size = System::Drawing::Size(35, 13);
    			this->label1->TabIndex = 0;
    			this->label1->Text = L"label1";
    			// 
    			// label2
    			// 
    			this->label2->AutoSize = true;
    			this->label2->Location = System::Drawing::Point(178, 190);
    			this->label2->Name = L"label2";
    			this->label2->Size = System::Drawing::Size(35, 13);
    			this->label2->TabIndex = 1;
    			this->label2->Text = L"label2";
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(292, 266);
    			this->Controls->Add(this->label2);
    			this->Controls->Add(this->label1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
    			this->ResumeLayout(false);
    			this->PerformLayout();
     
    		}
    #pragma endregion
     
     
     
    	public: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    				 w=gcnew Form1;
    				 UDP=gcnew UdpClient(5500);
    				 Start_Reception_UDP=gcnew ThreadStart(w,&Form1::Reception_UDP);
    				 Thread_Reception_UDP=gcnew Thread(Start_Reception_UDP);
    				 Thread_Reception_UDP->Start();
    				 for(int i=0;i<100;i++)
    					 label1->Text=Convert::ToString(i);
     
     
    			 }
     
    	public: void Reception_UDP()
    			 {
    				 IPEndPoint^ RemoteIpEndPoint=gcnew IPEndPoint(IPAddress::Any,0);
    				 array<Byte>^ receiveBytes=	UDP->Receive(RemoteIpEndPoint);
    				 String^ returnData=Encoding::ASCII->GetString(receiveBytes);
    			 }
    	};
    }
    pense � la balise code � l'avenir / nico-pyright(c)

  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
    tu ne peux pas faire ta fonction de thread comme membre de la classe ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    22
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 22
    Par d�faut
    C'est � dire ?

    Sinon, j'ai essay� aussi de mettre la fonction Thread dans une autre classe, mais depuis cette classe, je n'arrive toujours pas acc�der aux variables et objets de la premi�re classe (Form1)

  6. #6
    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
    nan mais, si tu mets la fonction dans la classe et que ta variable est membre de la classe, tu la verras

Discussions similaires

  1. Acces aux objets dans un sous-formulaire
    Par Destiny dans le forum Access
    R�ponses: 3
    Dernier message: 13/02/2007, 08h28
  2. Acc�s aux objets d'un autre utilisateur
    Par ariesnojf dans le forum Oracle
    R�ponses: 2
    Dernier message: 02/02/2007, 18h30
  3. [Corba/Java] Acc�s aux objets
    Par soa dans le forum CORBA
    R�ponses: 4
    Dernier message: 16/01/2007, 18h14
  4. [c#] M�thode d'acc�s aux objets de ma form1
    Par SDuh dans le forum Windows Forms
    R�ponses: 5
    Dernier message: 21/03/2006, 11h21
  5. [TGroupBox] Acc�s aux objets
    Par JediKerian dans le forum Composants VCL
    R�ponses: 3
    Dernier message: 04/04/2003, 14h34

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