Page 1 sur 1
Crash d'un prog sur EndProcedure ?
Publié : mer. 02/mars/2005 19:52
par Le Soldat Inconnu
Salut,
j'ai mon prog qui plante sur un EndProcedure
j'ai mis un débug avant, il s'affiche bien, mais le debug après la procedure ne s'affiche pas
entre temps le programme à carrément planté.
Le projet est très gros et je veux pas le diffuser donc je ne mets pas de lien.
Fred, si tu le veux, je te l'envoie par mail.
j'ai testé tous mes programmes avec la 3.93. aucun problème donc je ne pense pas que ça vienne d'une de mes lib externe.
j'ai d'ailleurs commenté le contenu de la procedure (la partie exécutée de la procedure, elle contient des choix multiples dans un if elseif endif) et ça change rien. ça plante toujours
voilà, si vous avez une idée.
Publié : mer. 02/mars/2005 20:10
par Anonyme2
Ca me rappelle un plantage du à une structure non correcte (surtout en fin de procedure).
Regardes bien toutes les structures de ta procedure et vérifie
Fait un essai en ajoutant une dizaine de variables de type long ou plus (comme dernière variables) ou mets un debug à la fin juste avant le endprocedure et regarde si ça plante et dis-nous tout
Publié : mer. 02/mars/2005 20:39
par Le Soldat Inconnu
je cherche à réduire mon champ d'investigation, c'est déjà pas un prob de lib externe, je les ai toutes retirées.
ça plante à la fin de la procedure quand j'ai le test de ce type
et si je mets ça, ça marche
Publié : mer. 02/mars/2005 21:39
par Le Soldat Inconnu
bon, j'ai isolé le code qui plante
vous essayez de changer le contenu du combobox et normalement ça plante (du moins chez moi, ça plante sur 2 PC, XP pro PB3.93)
Code : Tout sélectionner
Global nbmenu.l, Ancien_Choix.s
Dim Liste_Menu.s(100)
Enumeration
#Window
#choixmenu
EndEnumeration
;- Procedure
Procedure Fenetre_Principale()
If OpenWindow(#Window, 318, 222, 423, 50, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "PopupMenu Editeur")
If CreateGadgetList(WindowID())
ComboBoxGadget(#choixmenu, 1, 0, 200, 150)
EndIf
EndIf
EndProcedure
Procedure Charger_Menu()
For n = 0 To 10
AddGadgetItem(#choixmenu, -1, Str(n))
Next
EndProcedure
Procedure ChoixMenu()
choix = GetGadgetState(#choixmenu)
If choix >= 0
; Txt.s = "PopupMenu\" + Liste_Menu(choix) + ".ini"
; If Txt <> Ancien_Choix
If "PopupMenu\" + Liste_Menu(choix) + ".ini" <> Ancien_Choix
Debug "menu"
EndIf
EndIf
EndProcedure
;- Debut du prog
Fenetre_Principale()
Charger_Menu()
ChoixMenu()
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
Select EventGadgetID()
Case #choixmenu
ChoixMenu()
EndSelect
EndIf
Until Event = #PB_EventCloseWindow
Publié : mer. 02/mars/2005 22:13
par Oliv
XP, ne plante pas sous 3.92 mais pla,nte sous 3.93
Publié : mer. 02/mars/2005 22:26
par cederavic
avec un CallDebugger apres Debug "menu" dans la proc, et en continuant en step by step, on s'aperçois que ça plante au niveau du Endif de If choix >= 0 ...
Publié : jeu. 03/mars/2005 0:44
par Flype
Code : Tout sélectionner
Global Memo.s
Memo = "test"
Dim Tableau.s(100)
For i=0 To 99
Tableau(i)=Str(i)
Next
Procedure Proc()
If "a" + Tableau(1) + "c" <> Memo
Debug "vrai"
Else
Debug "faux"
EndIf
EndProcedure
Debug "debut"
Proc()
Debug "fin"
c'est un vrai gros bug çà...
même en initialisant les variables en haut du source.
le problème il est là parce que comme çà çà passe
Publié : jeu. 03/mars/2005 13:04
par Fred
Effectivement, il a l'air plutot serieux. Je vais regarder ca rapidement.
Publié : jeu. 03/mars/2005 18:52
par Le Soldat Inconnu
Merci
