Accueil > Forum > > > > Utilisation de delegate entre 2 namespace
Utilisation de delegate entre 2 namespace
dimanche 16 septembre 2007 à 16:26:03 |
Utilisation de delegate entre 2 namespace

philippe54250
|
Bonjour; Voici mon probléme: Dans un fichier ce trouve la gestion d'un GPS ( namespace classGPS , class GPS). Dans un second fichier ce trouve l'affichage des données dans une Form. Pour l'instant j'utilise un timer dans la Form pour lire les données. Je préfèrerais que la class GPS fournisse un "delegate"ou un "event" lorsque les données sont prètes. J'ai essayé plus possibilités sans succés. Class GPS public delegatevoid_DonneesOK();publicstatic_DonneesOK DonneesOK ;
puis// Données a lire if ((DonneesOK != null)&(wItems[0]=="GPGGA")){ DonneesOK(); }
dans class Form
GPS .DonneesOK = newGPS._DonneesOK(miseAJourDonnees);puis
privatevoid miseAJourDonnees(){ if (tabControl1.SelectedIndex == 0)// Page Gps{ switch (tabControlGPS.SelectedIndex){ case 0: AffichePageGps(); break;case 1: AffichePageSatellite(); break;case 2: AffichePageTrames(); break;} } // Page Gpsif (tabControl1.SelectedIndex == 1)// Page Navigation{ }// Page Navigation} A l'exécution j'ai une erreur "Control.Invoke doit être utilisé pour permettre l'interaction avec des contrôles créés dans un autre thread."
Je n'ai trouvé que des examples de "delegate" dans un même fichier ou avec "invoke" avec un objet. Une aide me serai très utile . Merci .
|
|
dimanche 16 septembre 2007 à 22:15:21 |
Re : Utilisation de delegate entre 2 namespace

ShareVB
|
Réponse acceptée !
salut,
il faut que tu mettes toute la mise à jour de l'UI dans une méthode à part void miseAJourUI();, tu crées un délégué miseAJourUIdelegate dans ton thread qui appelle miseAJourDonnees, il faut que dans cette méthode : miseAJourUIdelegate deleg = new miseAJourUIdelegate(miseAJourUI); if (this.InvokeRequired) deleg.Invoke(); else miseAJourUI();
ShareVB
|
|
mercredi 19 septembre 2007 à 19:35:58 |
Re : Utilisation de delegate entre 2 namespace

philippe54250
|
Réponse acceptée !
Bonjour, désolé mais je n'ai pas tout saisi dans tes explications (sans doute l'age). 1:la signification de UI. 2:Comment appeler miseAJourUI qui je suppose ce trouve dans Form a partir de la classGps.
Merci.
|
|
mercredi 19 septembre 2007 à 22:56:05 |
Re : Utilisation de delegate entre 2 namespace

ShareVB
|
Réponse acceptée !
salut,
euh, en faite UI c'est User Interface : dans la classe GPS tu as un délégué de type _DonneesOK statique auquel tu affectes la méthode miseAJourDonnees tu n'as donc rien à changer dans la classe GPS
par contre, dans la méthode miseAJourDonnees il faut que tu mettes le code suivant à la place du code existant : miseAJourUIdelegate deleg = new miseAJourUIdelegate(miseAJourUI); if (this.InvokeRequired) deleg.Invoke(); else miseAJourUI();
le code existant tu le mets dans une méthode miseAJourUI qui sera appelée dans le contexte du bon thread de ta form
et dans ta form, tu mets un delegate void miseAJourUIdelegate(); juste pour pouvoir faire le Invoke de ta méthode miseAJourUI
comme ca, ta classe GPS appelle ta méthode miseAJourDonnees qui appelle à son tour la méthode MiseAJourUI mais dans le bon thread pour ne pas avoir l'exception InvalidOperation
ceci est nécessaire car tu ne peux accéder aux éléments de ta form que dans le contexte du thread qui les a créés, InvokeRequired appelé sur ta form t'indique si un changement de contexte est nécessaire pour accéder à ta form, autrement dit si tu es dans le bon thread ou pas...
il existe aussi le backgroundworker qui te permet de faire des traitements asynchrones : il y a un thread DoWork qui appelle le thread de ta form pour se mettre à jour...
ShareVB
|
|
jeudi 20 septembre 2007 à 18:13:37 |
Re : Utilisation de delegate entre 2 namespace

philippe54250
|
Salut ,merci à toi ShareVB pour ces explications . Je vais pouvoir mettre à jour mon code. Philippe.
|
|
Cette discussion est classée dans : données, class, gps, delegate, donneesok
Répondre à ce message
Sujets en rapport avec ce message
Récupération des données GPS Port série sur PC [ par simo5266 ]
salut tous le monde,est ce qu'il ya qq'1 qui peut me donné une idée sur comment récupérer des données d'un GPS port série.Merci d'avance
Récupération de données GPS (HELP) [ par rvns ]
Bonjour, Je suis en train de développer actuellement une appli permettant de récupérer différentes données GPS tels que la vitesse, latitude, long
Reception de données interrompues avec Serialport Class [ par dufour ]
Bonjour, J'ai un logiciel qui tourne en service. Le logiciel se connecte au démarrage sur le port com et lit ce qui arrive jusqu'à ce qu'on l'arrete.
Crée une base de données [ par woot6768 ]
Bonjour,Je souhaiterais crée une nouvelle base de données access (.mdb) dans mon code, puis la remplir avec une table déjà existante avec laquelle je
[C#] Données et représentations graphiques [ par scoubidou944 ]
glop glop les copains ;pExcel c'est bien beau mais me coltiner du VB pour remplir des combobox ca devient lourd.Le but : convertir mon appli Excel sou
La Class Enum... [ par Bubuss ]
Voilà je travail sous ASP .Net en utilisant le C# et pour créer une propriété avec une liste d'option à un WebControl j'utilise une classe enum (je n'
Problème avec un DataGrid [ par ZeBFroG ]
Bonjour à tous, J'ai un DataGrid que j'alimente avec une sourece de données.Cette source de données est un certains nombres de ProcStorLes ProcStor
Problème avec XML (Faire comme fopen(file, "a+") en C) [ par MasterShadows ]
Bonjour à tous et à toutes,alors je suis en train de faire une appli où j'utilise le XML, en fait j'ai fait une boite de dialogue où on entre nos don
perte de données avec le designer VS 2003 [ par fregolo52 ]
Bonjour, Ce n'est pas la 1ere fois que ça m'arrive et ça me gave. J'ai créé ma propre TreeView dérivée de l'objet TreeView Winform. Je la place sur ma
BAse de données et datagridview [ par cudenetf ]
Bonjour,j'aimerais savoifr comment remplir un datagridview le plus rapidement possible est-il plus rapide de remplir a partir d'un execute reader ou d
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|