Problme d'appel de Class

Salut tous.

Je suis fasse un soucis avec mon projet Webapp et Xojo 2015r3.1
J’ai mon appli avec une Class test et tte de code je lui met:

Dim AMI as New Class_AMI

Dans ma Class AMI j’ai ceci:

Test(family as String, key as String, value as String) MsgBox (family + "-" + key + "-" +value) Return

Dans mon code j’ai
AMI.test(“1”, “2”, “3”)

A la compilation je n’ai pas d’erreur.

Lorsque arrive l’excution du code, j’ai un simple retour d’erreur

[code]Unhandled NilObjectException
Message:

Stack:[/code]

Il y a un soucis lors de l’appel de cette Class mme si j’en commente le contenu.
Je ne comprend pas d’o vient cette erreur, d’autant plus qu’il n’y a pas de dbugger dans la version 64bits!

l je ne sais pas vraiment o coince.

Sachant que j’ai dj utilis une class plus haut en y faisant appel et a fonctionne bien.

Merci de votre aide.

passes en 32bits et debug ?

Mon serveur est en 64bit et la webapp en 32bit ne passe pas.
Je fais appel diffrentes BDD locales comme SQLITE et MySQL.
Tout , a complique les choses.

Mais j’y ai bien pens.

Un Nil peut affecter cette classe, ou un autre objet.

Je commencerais par commenter la ou les rfrences cette classe. Si l’erreur disparait, cela confirme qu’elle est bien en cause.

Sinon, il faudra chercher ailleurs.

Si c’est bien cette classe, je souponnerais une initialisation fautive. Un manque de New. Ou alors, la classes est simplement DIMe et n’a pas le scope requis, ce qui la rend nulle avant l’appel. Dans une app web, je recommenderais de placer cette classe comme proprit de Session.

Salut Michel

En fait j’ai dplac ma mthode qui tait dans la classe, vers les autres dj prsentes dans la racine de mon projet (donc pas de classe) et elle passe parfaitement.

J’aurai bien aim mettre ce qui tait li ce groupe de fonctions dans une classe pour une meilleur lecture du projet mais bon…

J’avais pourtant bien fait un DIM AMI As New Class_AMI avant.
Lorsque je tapais AMI. puis TAB a me proposait bien la liste des mthodes lies cette classe. :confused:

Une autre classe est dj utilise pour lire les fichiers .ini et je n’ai pas de soucis l dessus.
J’ai compar avec elle comment elle tait appel. R.A.S priori.

D’un autre ct, si ma mthode fonctionne sur la racine de mon projet avec les autres mhodes que j’ai cres, me va bien :slight_smile:

J’essayerai de me faire un projet rien qu’en reprenant l’exemple de cette classe AMI en desktop juste pour vrifier si a fonctionne ou vrifier ce qui cloche l dedans.

Merci en tout cas de votre aide.

[quote=233987:@Franck Danard]Salut Michel
J’avais pourtant bien fait un DIM AMI As New Class_AMI avant.
Lorsque je tapais AMI. puis TAB ça me proposait bien la liste des méthodes liées à cette classe. :/[/quote]

Il ne faut pas DIMer la classe, mais plutôt ajouter une propriété AMI as Class_AMI à Session, et faire :

Session.AMI = New Class_AMI

Evidemment, il faut faire référence à Session pour utiliser la classe.

Ne pas utiliser une variable globale dans un module, qui provoquerait des collisions entre sessions utilisateurs.

Ok.
Je vais essayer cette piste.

Merci pour tes explications :wink:

La classe m’est utile par le fait que j’ai cr un Template.
J’ai un projet avec un menu et pour chaque menu, j’ai une Webapp.
Donc au lieu de tout me retaper le code de base, le template est bienvenue.
Faire plusieurs petites webapp la place d’un seul gros projet est je pense, une bonne solution.