Boucle infinie dans la création d'objet en C#

Résolu
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 - 20 avril 2014 à 20:27
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 - 21 avril 2014 à 16:52
Bonsoir,

Pour mon projet de fin de deuxième année de BTS IRIS je (avec un autre mec mais il fou rien) suis chargé de développer des applications de contrôle d'accès fonctionnant avec un décodage de code barre et/ou qr code.
Tout fonctionne comme il faut (en tout cas pour ma partie) mais je me retrouve avec une application de gestion de la base de données et de consultation de l'historique qui fait plus de 1700 lignes.

J'ai donc commencé à créer d'autres fichiers dans lesquels je met des bouts de codes (surtout des fonctions). (Je cliques sur Projet puis sur Ajouter une classe.

Par exemple si j'ai une fonction de décodage, je créé une nouvelle classe nommée Decodage et le fichier créé a le même nom. Supposons que la fonction de décodage s'appelle fDecodage. Ensuite pour la lancer, logiquement je devrais écrire

Decodage.fDecodage();


mais le soucis c'est que ça me met une erreur en disant que je dois créer un objet. J'écris alors

Decodage decodage = new Decodage();


et pour lancer j'écris

decodage.fDecodage();


L'erreur s'enlève alors et cela fonctionne pour 50 % des fonctions.

Petit aperçus :

http://cjoint.com/14av/DDurNF6ZNK3_projet_form_principale.jpg

Lorsque je lance la compilation, ça lag et l'application se ferme. Je test avec des points d'arrêt et je constate que ça passe du point 1 puis les lignes après jusqu'au point 2 et ça recommence sans arrêt.

Voici la classe à laquelle ça correspond :

http://cjoint.com/14av/DDurNoOynfb_projet_class_recuplclasse.jpg

J'ai remarqué que lorsque ça arrive au point 2 visible sur la première image, ça rentre dans la classe (qui se trouve dans un autre fichier comme on le voit dans la liste des fichiers à droite), ça va au point 1 qu'on voit sur la deuxième image image, passe par les lignes après et dès que ça arrive au point 2 de la seconde image ça repasse au point 1 de la première, va jusqu'au 2 de la première, repasse au 1 de la seconde et va jusqu'au 2 de la seconde, repasse au 1 de la première et ainsi de suite, sans s'arrêter.

Dans ma partie principale, je lance la fonction avec :

http://cjoint.com/14av/DDurNPZIbSG_projet_form_principale_load.jpg

J'ai énormément expliqué la chose mais je pense qu'il le faut afin d'avoir le plus de chances possibles que quelqu'un trouve une solution à mon problème.

Merci à tous ceux qui prendront le temps de voir où se situe mon problème.

2 réponses

cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 1
21 avril 2014 à 16:52
J'ai trouvé la solution.

Voici l'explication :

1: Je regarde quel est le nom de ma form

http://cjoint.com/14av/DDvqSBlC5iU_projet_voir_nom_form.jpg

2: Je fais tout cela

http://cjoint.com/14av/DDvqSZTNwM7_projet_form1_cs.jpg

3: Dans le fichier contenant la classe je fais ça

http://cjoint.com/14av/DDvqSS5yuLT_projet_creation_objet_dans_recuplclasse.jpg

4: Pour information, comment créer un fichier pour y mettre une classe

http://cjoint.com/14av/DDvqTjVHj68_projet_creer_fichier_class.jpg

Merci d'avoir essayé de m'aider. En faite avec ce que vous avez dit j'ai pensé que j'utilise la mauvaise méthode, j'ai alors encore cherché plus d'une heure et j'ai enfin trouvé.

J'ai utilisé http://codes-sources.commentcamarche.net/forum/affich-110345-acceder-a-une-textbox-depuis-une-autre-classe#3 afin de comprendre comment faire.
1
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 avril 2014 à 20:43
Bonsoir,

Je pense qu'un tour vers le mot clé "static" ou encore, un regard vers le design patern "Singleton" peuvent t'aider.
0
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 1
20 avril 2014 à 21:14
Bonsoir

Le static, je devrais le mettre où ?

Pour singleton ça a l'air super compliqué mais vous avez raison, ça vient certainement du fait que je créé plusieurs objets du type FormAdminEleve
http://jlambert.developpez.com/tutoriels/dotnet/implementation-pattern-singleton-csharp/
Je vais lire ça à tête reposée demain.

Merci^^
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
20 avril 2014 à 21:32
(je n'ai pas regardé en détail ton code, donc c'est peut être une fausse piste)
Le static serait à appliquer à la fonction.

Mais je pense que tu as un petit problème de conception.
Penses à toujours séparer les données de leur affichage.
0
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 1
20 avril 2014 à 21:35
C'est au niveau du 2 de la seconde image que ça retourne au début, c'est à dire au 1 de la première image donc forcément il y a un soucis. Il n'y a pas beaucoup de lignes par où ça passe avant de retourner en arrière donc je pense trouver avec ce que vous avez dit.
0
Rejoignez-nous