Bug qui disparait en execution pas a pas

Résolu
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012 - 7 nov. 2007 à 17:17
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012 - 8 nov. 2007 à 14:43
bonjour
Je viens de passer la journée sur ce qui est pour moi un mystère et je dois me resoudre à ce constat, une journée de gachée! Je vais essayer de vous presenter mon appli brievement. Il s'agit d'une application SIG fonctionnant avec une base access (connection ADO) et un ocx opensource SIG mapwingis (module cartographique)
Ma fenetre principale se divise en deux parties :
 a gauche les données cartographiques, quatres couches sont representée, des elements ponctuels, lineaires et deux couches polygones
a droite quatre onglets concernant chacune des quatres couches visibles sur la carte. dans chaque onglet, un datagrid presentant les données relatives a chaque élément.
J'ai fais en sorte que les selections soit interactives entre les datagrids et la carte, si je selectionne des lignes dans un datagrid, elles s'affichent en surbrillance et dans le même temps une symbologie de selections des elements concernées apparai sur la carte.
Mon probleme se situe entre les deux couches d'information polygonales.
   Pour suimplifier on va dire que j'ai une couche de grands polygones et une couches de petits polygones.
Quand je selectionne un ou plusieurs grand polygones et que je clique sur l'onglet des petit polygones, je fais en sorte que les petits polygones compris dans les grand polygones selectionnées deviennent à leur tour selectionnée à la fois dans le datagrid et la carte.

Je ne rentre pas plus dans le detail, je ne suis pas sur que ca interesse grand monde.

Donc voila mon souci, les selection des polygones ne s'effectue pas sur la carte mais seulement sur le datagrid, je passe pourtant par les meme procedures deja codées depruis longtemps et qui fonctionnais bien jusqu'a maintenant. La ou je trouve ca etrange c'est que si je met ne serais ce qu'un point d'arret ou que j'insere un messagebox pour verifier la valeur d'une variable pendant l'execution, et bien le problème disparait et tout fonctionne correctement.
Du coup ca sert pas a grand chose que je verifie mes algoritmes comme je viens de passer ma journée à le faire ,puisque en suivant l'execution pas a pas, ca marche parfaitement. Comment trouver des erreurs la ou il  n'y en a pas (du moins en apparence)
Il y a peut etre des choses qui ne se font pas en prog mais la ca me depasse...

Je ne ne suis pas sur de pouvoir etre aidé en restant général mais je me vois mal mettre ems tartines de code pour déceller un problème, ca serai un peu laborieu. Alors des fois que je tente le coup comme ca. J'espere tout de même que je ne suis pas le seul à avoir rencontré ce genre de souci!

4 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 nov. 2007 à 17:33
Quelques bons Doevents, peut-être ...
3
mstarsup5 Messages postés 527 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 10 octobre 2013 1
7 nov. 2007 à 17:38
oui... doEvents sert à empêcher ce genre de désagrément: il sert à laisser le temps à ton ordi de faire les applications que tu as demandées avant de passer à la suite.
Ps: j'ai eu le même problème avec mon premier programme, et depuis, je me fais plus avoir ;-P
3
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
7 nov. 2007 à 19:56
Merci pour le tuyau jene connaissais pas, j'avias deja vu  cette syntaxe sur des applis sans savoir à quoi ca servait. Sinon j'ai a peu pres fini par comprendre pourquoi ca ne marchais pas. Je me suis rendu compte que mes procedure me faisais passer par l'evenement lostfocus du datagrid et ca a un moment il aura pas fallu. J'ai pas forcement tout compris mais j'ai mis une variable booelenne qui empeche l'execution du code dans cet evenement quand je change d'onglet et le probleme est resolu.
ceci dis demain matin a la premiere heure j'essaye doevents (si je peux eviter de rajouter une variable ca sera pas plus mal)
0
andalo Messages postés 102 Date d'inscription lundi 23 avril 2007 Statut Membre Dernière intervention 20 octobre 2012
8 nov. 2007 à 14:43
merci encore j'ai pigé l'utilité de doevents. Un detail Mstarsup, c'est que doevents ne laisse pas le temps a l'appli de faire ce qu'elle a à faire , c'est plutot que la gestion des évenement se fait sans attendre que la procedure en cours soit fini.Ya pas de file d'attente quoi!
0
Rejoignez-nous