Se connecter avec
S'enregistrer | Connectez-vous
Votre question
Résolu

Err "5" argument ou appel de procedure incorrecte

Dernière réponse : dans Programmation
Partagez
15 Août 2010 22:13:31

Re-bonsoir,
Je ne sais pas si mon message identique à calui çi à passé mais je n'ai pas vu.
Désolé si doublon
Joseph
Bonsoir,
Je suis au bout des nerfs à cause de ce problème sous Windows7: :fou:  :fou: 
Mon programme ecrite en vb6 marche impeccablement sous XP sp3.
En mode lancement en phase de developpement ET compilé donc .exe
Voici les codes qui poses problème:
'==================================================================================================
'rendre tout les affichages invisible
Private Function ALL_INVISIBLE()
MsgBox "allin"
On Error Resume Next
Command1.Visible = False 'start - stop
Command2.Visible = False '======> C'EST L'INSTRUCTION QUI FOIRE <====== :fou: 
Command3.Visible = False
MsgBox "allbibi"
Command4.Visible = False
Command5.Visible = False 'confirme creation new album-projet ??
Command6.Visible = False
Command7.Visible = False '
''' Command8.Visible = False 'start - stop
MsgBox "allmid1"
Command9.Visible = False
Command10.Visible = False 'diapo
Command11.Visible = False 'diapo
Command12.Visible = False 'continuer diapo
Check1.Visible = False 'diapo plein reduit
'
Label2.Visible = False
Text2.Visible = False
Label3.Visible = False
Label4.Visible = False
Label5.Visible = False
Label19.Visible = False
Label20.Visible = False
Er_Mess.Visible = False
'
Defi01_Image1.Visible = False
Defi02_Image4.Visible = False
Defi03_Image3.Visible = False
Defi04_Image5.Visible = False
Master_Image2.Visible = False
Full_Image1.Visible = False

Combo1.Visible = False
Label18.Visible = False
MsgBox "allend"
End Function
'FIN rendre tout les affichages invisible
'===================================================================
Les Msgbox's j'ai mise pour localisation exacte l'instruction fautif

Le vrais problème est quand je transfert sur ma machine WINDOWS 7 ,
en mode de developpement le programme fonction impeccablement,
mais une fois compilé (sur W7) l'erreur surgit.
J'ai essayé deplacer la fonction en block: idem
j'ai interverti la sequence des codes: idem
j'ai mis devant command2.enable=true / false /
command2.visible=true / false /
à chaque fois la même erreur se produit quand command2.????? est évoqué.
J'ai bougé l'objet sur la feuille, rédimensionné, :idem
En supprimant cet instruction to marche.
Si vous avez une idée vous remecie votre aide.
Joseph
16 Août 2010 11:46:19

Salut zsefgedih/Joseph,

Applique le règlement s'il te plaît. Présente correctement ton code, en utilisant la balise [code], merci.
m
0
l
16 Août 2010 12:11:23

Bonjour zeb.
Je suis désolé, mea culpa dois je reposter ?
Merci pour la lecture rapide
Joseph
m
0
l
16 Août 2010 12:27:25

Je cherche la solution aussi bien entendu. J'ai intercalé en plusieures endroit dans mon programme
  1. call all_invisible

et cela fonction sans cet erreur sauf dans un block.
Je suis entrain de "m'approcher" d'une manière (MsgBox's) empirique pour localiser au plus près les instructions éventuellement incriminés.
Je te tient au courant de toute manière car j'ai vu sur gougel que cet erreur cause pas mal de problème inexplicable en vista et w7. une fois ce problème resolu sur w7 je testerai avec Vista.

Joseph
m
0
l
16 Août 2010 13:49:38

Bon, t'as compris cf. ton dernier message.
:) 

Edite ton premier message, stp.


Je préfère filer le coup de main que de jouer les shérifs, mais c'est la dure loi de la modération !
[:zeb:6]
m
0
l
16 Août 2010 14:04:04


Le revoilà
Re-bonsoir,
Je ne sais pas si mon message identique à calui çi à passé mais je n'ai pas vu.
Désolé si doublon
Joseph
Bonsoir,
Je suis au bout des nerfs à cause de ce problème sous Windows7:
Mon programme ecrite en vb6 marche impeccablement sous XP sp3.
En mode lancement en phase de developpement ET compilé donc .exe
Voici les codes qui poses problème:
'==================================================================================================
  1. 'rendre tout les affichages invisible
  2. Private Function ALL_INVISIBLE()
  3. MsgBox "allin"
  4. On Error Resume Next
  5. Command1.Visible = False 'start - stop
  6. Command2.Visible = False '======> C'EST L'INSTRUCTION QUI FOIRE <======
  7. Command3.Visible = False
  8. MsgBox "allbibi"
  9. Command4.Visible = False
  10. Command5.Visible = False 'confirme creation new album-projet ??
  11. Command6.Visible = False
  12. Command7.Visible = False '
  13. ''' Command8.Visible = False 'start - stop
  14. MsgBox "allmid1"
  15. Command9.Visible = False
  16. Command10.Visible = False 'diapo
  17. Command11.Visible = False 'diapo
  18. Command12.Visible = False 'continuer diapo
  19. Check1.Visible = False 'diapo plein reduit
  20. '
  21. Label2.Visible = False
  22. Text2.Visible = False
  23. Label3.Visible = False
  24. Label4.Visible = False
  25. Label5.Visible = False
  26. Label19.Visible = False
  27. Label20.Visible = False
  28. Er_Mess.Visible = False
  29. '
  30. Defi01_Image1.Visible = False
  31. Defi02_Image4.Visible = False
  32. Defi03_Image3.Visible = False
  33. Defi04_Image5.Visible = False
  34. Master_Image2.Visible = False
  35. Full_Image1.Visible = False
  36.  
  37. Combo1.Visible = False
  38. Label18.Visible = False
  39. MsgBox "allend"
  40. End Function
  41. 'FIN rendre tout les affichages invisible
  42. '===================================================================

Les Msgbox's j'ai mise pour localisation exacte l'instruction fautif

Le vrais problème est quand je transfert sur ma machine WINDOWS 7 ,
en mode de developpement le programme fonction impeccablement,
mais une fois compilé (sur W7) l'erreur surgit.
J'ai essayé deplacer la fonction en block: idem
j'ai interverti la sequence des codes: idem
j'ai mis devant command2.enable=true / false /
command2.visible=true / false /
à chaque fois la même erreur se produit quand command2.????? est évoqué.
J'ai bougé l'objet sur la feuille, rédimensionné, :idem
En supprimant cet instruction to marche.
Si vous avez une idée vous remecie votre aide.
Joseph

m
0
l
16 Août 2010 16:19:50

Eh, juste modifier le premier message ne te convenait pas ? Je te donnais pourtant la marche à suivre ! Qu'importe, je cède ma place de modo chiant à un gars plus sympa qui va t'aider : moi.

Uhm... Bizarre. Je n'ai pas de Seven pour regarder ton problème.
Quelles sont les propriétés de Command2 ?

D'abord, est-ce bien un bouton ? Si oui, a-t-il le focus, est-il en default, est-il en cancel ? Est-ce le bouton sur lequel on clique pour lancer cette procédure ?

=====================


Par ailleurs, je trouve que tu t'embêtes pas mal. Tu devrais ressembler tes composants par thèmes dans des frames, et jouer avec la visibilité de ces frames. A titre d'exemple, je t'ai copié le contenu d'une fichier .frm que je t'invite à tester :
  1. VERSION 5.00
  2. Begin VB.Form Form1
  3. Caption = "Form1"
  4. ClientHeight = 1830
  5. ClientLeft = 60
  6. ClientTop = 345
  7. ClientWidth = 3975
  8. LinkTopic = "Form1"
  9. ScaleHeight = 1830
  10. ScaleWidth = 3975
  11. StartUpPosition = 3 'Windows Default
  12. Begin VB.CommandButton Command3
  13. Cancel = -1 'True
  14. Caption = "Fermer"
  15. Height = 495
  16. Left = 2640
  17. TabIndex = 5
  18. Top = 1200
  19. Width = 1095
  20. End
  21. Begin VB.CommandButton Command2
  22. Caption = "Voir/Cacher"
  23. Default = -1 'True
  24. Height = 495
  25. Left = 1440
  26. TabIndex = 4
  27. Top = 1200
  28. Width = 1095
  29. End
  30. Begin VB.Frame Frame1
  31. BackColor = &H00FF8080&
  32. BorderStyle = 0 'None
  33. Caption = "Frame1"
  34. Height = 735
  35. Left = 120
  36. TabIndex = 0
  37. Top = 120
  38. Width = 3735
  39. Begin VB.OptionButton Option1
  40. Caption = "Option1"
  41. Height = 495
  42. Left = 1320
  43. TabIndex = 3
  44. Top = 120
  45. Width = 1095
  46. End
  47. Begin VB.CheckBox Check1
  48. Caption = "Check1"
  49. Height = 495
  50. Left = 2520
  51. TabIndex = 2
  52. Top = 120
  53. Width = 1095
  54. End
  55. Begin VB.CommandButton Command1
  56. Caption = "Command1"
  57. Height = 495
  58. Left = 120
  59. TabIndex = 1
  60. Top = 120
  61. Width = 1095
  62. End
  63. End
  64. Begin VB.Line Line2
  65. BorderColor = &H80000014&
  66. X1 = 120
  67. X2 = 3840
  68. Y1 = 975
  69. Y2 = 975
  70. End
  71. Begin VB.Line Line1
  72. BorderColor = &H80000010&
  73. X1 = 120
  74. X2 = 3840
  75. Y1 = 960
  76. Y2 = 960
  77. End
  78. End
  79. Attribute VB_Name = "Form1"
  80. Attribute VB_GlobalNameSpace = False
  81. Attribute VB_Creatable = False
  82. Attribute VB_PredeclaredId = True
  83. Attribute VB_Exposed = False
  84. Option Explicit
  85.  
  86. Private Sub Command2_Click()
  87. Frame1.Visible = Not Frame1.Visible
  88. End Sub
  89.  
  90. Private Sub Command3_Click()
  91. Unload Me
  92. End Sub
Cet exemple ne répond malheureusement pas à ton problème, j'en suis conscient.
m
0
l

Meilleure solution

16 Août 2010 23:29:51

Merci zeb,
J'ai passé une journée pour m'emm..r sur ce problème entre le XP sp3 vista et W7 la compabilité et toute relative. Enfin.
Le problème réside dans la gestion du .lostfocus du VB6 par le w7. après compilation.
Si à l'intérieur de ceci: SEQ 1
  1. 'Image suivante
  2. Private Sub Command2_lostfocus()
  3. Text1.SetFocus
  4. End Sub


le text1 n'est pas enabled au moment de l'exécution -bien que visible- ,
l'instruction qu'elle quil soit l'emplacement et le moment de l'activation récupère
l'erreur '5'.
  1. command2.setfocus 'recupere l'erreur
  2. command2.enabled =
  3. command2.visible =


En plus il n'y a pas de moyen supprimer ou effacer ce code '5'

Pour rendre le smilblick plus amusante il me semble (je n'ai pas poussé trés loin les recherches just pour mon problème du jour) :
Windows7 :: que la sequence SEQ 1 (vu plus haut) récupère les erreurs du genre survenu n'import ou durant l'exécution.
Vista :: que la sequence ne récupère pas les erreurs generé hors la SEQ 1
XP sp3 laisse passer sans problème
Enfin.
La solution est:
  1. 'Image suivante
  2. Private Sub Command2_lostfocus()
  3. On Error Resume Next 'trappe l'erreur du .set focus
  4. Text1.SetFocus
  5. End Sub


Mes programmes en ont pris un coup de grossisement j'ai introduit partout

  1. On Error Resume Next
  2. Tout.SetFocus

zeb
merci encore pour ton intervention et j'espère que ceci peut servir pour ce qui migrent en VB6 de XP vers Vista ou W7
Bonne soirée
Joseph
nb: je ne sais pas comment signaler que le problème est résolu
partage
17 Août 2010 14:59:43

Pour signaler que le topic est résolu, il faut choisir la meilleure des réponses. Comme il me semble que c'est toi qui donne la meilleure des réponses et que tu ne peux pas t'auto-féliciter, c'est moi qui te choisirai si tu me le demandes.

Il est TRES dangereux de complètement skwizer les erreurs. Plutôt que d'ajouter On Error Resume Next, gère tes événements mieux que ça.

  1. ' // Erreur non gérée
  2. Private Sub Command2_lostfocus()
  3. Text1.SetFocus
  4. End Sub
  5.  
  6. ' // Erreur mal gérée
  7. Private Sub Command2_lostfocus()
  8. On Error Resume next
  9. Text1.SetFocus
  10. End Sub
  11.  
  12. ' // Pas d'erreur : car problème bien géré
  13. Private Sub Command2_lostfocus()
  14. If Text1.Enabled Then Text1.SetFocus
  15. End Sub
m
0
l
17 Août 2010 16:05:42

Remarque justifié, j'applique. Dans l'immediat j'ai passé aux plus pressé pour verifier que le problème se situe bien LA.
J'ai fait encore les tests et aux grand surprise surprise pas tous les
  1. Text1.setfocus

generent l'erreur.
Je commence avoir une petite idée mais il faut que je fouille un peu dans le ventre du systeme car c'est évident que l'exécution en mode 'interpreter' et 'compliled' ne suit pas la mëme logique. (Ce qui était le cas de XP +-)
Helas Question de temps disponible pour approfondir.
Merci encore pour ton aide. En fait tout simplement pouvoir expliquer un problème à un professionel (et qui repond) est dèja tres utile car on s'oblige de re-reflechir aux differents aspect du bug.
Joseph
nb: stp annonce que le topic est closed
m
0
l
17 Août 2010 16:16:48

Citation :
nb: stp annonce que le topic est closed

On ne ferme pas les topics, ici. On les marque résolu? C'est tout ;) 
Pour ce faire, choisis toi-même la meilleure des réponses. Si c'est l'une des tiennes, dis-moi laquelle.
m
0
l
17 Août 2010 17:54:42

celui Merci zeb, jei pense ........ donne les idées pour les autrepour pr erro '5'
byby
Joseph
m
0
l
18 Août 2010 10:27:15

Meilleure réponse sélectionnée par zeb.
m
0
l