Zachs
Messages postés202Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention10 février 2009
-
12 juil. 2007 à 11:02
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011
-
12 juil. 2007 à 18:54
Bonjour, je cherche a fair dans mon programme une fonction qui se toruve d'un modul mais qui interagi avec un form le probleme c'est qu'il me dit a chaque fois qu'il n'y a pas de reference a l'objet. Voici le code:
Module
VarGlob
Public CL
As
Integer
Public
Sub UnitsVB()
Dim units
As Units
units.LanguageTableAdapter.Fill(units.Egs_CateringDataSet.Language)
Zachs
Messages postés202Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention10 février 2009 12 juil. 2007 à 13:08
Ca rentre dans la fonction (comme avant) mais ca me change toujours pas le texte. Dans "Units_Load" j'ai mis UnitsVB(Me) pour le parrametre mais ca change rien et dans la fonction j'ai mis "PublicSub UnitsVB(ByVal Units As Form)".
Mais ca marche paaaaaaaaaas!
--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 12 juil. 2007 à 13:16
il faut savoir que tu ne peux pas modifier un controle qui n'existe pas j'ai comme l'impression que tu essaye de modifié un controle graphique avant sa création.
qu'est ce qui me fait dire ca ?
tu dit que tu lance la fonction depuis "Units_Load", et tu dit aussi "pas de reference a l'objet" en gros il tente d'acceder a un objet non instancié alors 2 solutions, soit tu t'addresse a une varaible que t'as oublié d'instancié (j'ai penser au formulaire au debut) sois au controle sur le formulaire ou a une variable que tu manipule, donc cherche de ton coté si t'as pas oublié un "new" et apres met le meme code derriere un bouton plutot que dans le load, si effectivement cela marche derreire un bouton cela veux dire que tu lance le code trop tot je te suggere d'attendre que tout le formulaire ai fini d'etre créé.
Vu que les appli .net sont MTA (multi thread) il y a de forte chance que le load soit chargé en parallèle de l'init des controle.
alors 2 solutions possible quoi que actuellement pas testés
sois tu mets ton appel a la fin de la procédure d'init des controle (le code generé automatiquement) (ou juste apres le retour de l'appel)
sois dans le form load tu fait une tite boucle qui ressemble a ca :
do until Me.Created
application.DoEvents()
threading.thread.sleep(100)
loop
(3ieme sois tu le met pas au chargement :p)
TeBeCo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Zachs
Messages postés202Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention10 février 2009 12 juil. 2007 à 13:28
Ca fout le bordel avec byRef il m'ouvre plein de fois ma fenetre j'ai même pas essayer de compté >.<
Et c'est pas un probleme de variable ou de déclaration. C'est ni le fait de le lancer trop tôt parcke le code comme il est la je remplace les units par des Me et je le met dans le load ca marche mais je voulais mettre dans un module parcque ca sert a traduire ma fenetre et j'en ai dans toute mes form alors je voulais les rassembler dans un module pour ordonné un peu tout ca.
--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
Zachs
Messages postés202Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention10 février 2009 12 juil. 2007 à 14:05
ca marche a moitié mais j'avai oublier de mettre "Call VarGlob." devant mais le probleme c'est qu'il me change toujour pas le texte donc je suis revenu au point de départ...
--------------------->>
Ordi, frigo, dodo...
Quelle dur journée!
TeBeCo
Messages postés467Date d'inscriptionlundi 24 juin 2002StatutMembreDernière intervention 9 mars 2011 12 juil. 2007 à 18:54
c'est quoi cette blague avec les "call" ya plus besoin de ca en .net c'est comme les "set" ...
si le pb se résoud en employant le "Call" c'est que ya un truc mal codé qq part