Résolu Err "5" argument ou appel de procedure incorrecte

zsefgedih

Nouveau membre
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
 

zeb

Modérateur
Salut zsefgedih/Joseph,

Applique le règlement s'il te plaît. Présente correctement ton code, en utilisant la balise
Code:
, merci.
 

zsefgedih

Nouveau membre
Bonjour zeb.
Je suis désolé, mea culpa dois je reposter ?
Merci pour la lecture rapide
Joseph
 

zsefgedih

Nouveau membre
Je cherche la solution aussi bien entendu. J'ai intercalé en plusieures endroit dans mon programme
Code:
   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
 

zeb

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

Edite ton premier message, stp.
Vous devez être connecté pour voir les images.


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]
 

zsefgedih

Nouveau membre
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:
'==================================================================================================
Code:
'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 <======  
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

 

zeb

Modérateur
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 :
Code:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   1830
   ClientLeft      =   60
   ClientTop       =   345
   ClientWidth     =   3975
   LinkTopic       =   "Form1"
   ScaleHeight     =   1830
   ScaleWidth      =   3975
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton Command3 
      Cancel          =   -1  'True
      Caption         =   "Fermer"
      Height          =   495
      Left            =   2640
      TabIndex        =   5
      Top             =   1200
      Width           =   1095
   End
   Begin VB.CommandButton Command2 
      Caption         =   "Voir/Cacher"
      Default         =   -1  'True
      Height          =   495
      Left            =   1440
      TabIndex        =   4
      Top             =   1200
      Width           =   1095
   End
   Begin VB.Frame Frame1 
      BackColor       =   &H00FF8080&
      BorderStyle     =   0  'None
      Caption         =   "Frame1"
      Height          =   735
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   3735
      Begin VB.OptionButton Option1 
         Caption         =   "Option1"
         Height          =   495
         Left            =   1320
         TabIndex        =   3
         Top             =   120
         Width           =   1095
      End
      Begin VB.CheckBox Check1 
         Caption         =   "Check1"
         Height          =   495
         Left            =   2520
         TabIndex        =   2
         Top             =   120
         Width           =   1095
      End
      Begin VB.CommandButton Command1 
         Caption         =   "Command1"
         Height          =   495
         Left            =   120
         TabIndex        =   1
         Top             =   120
         Width           =   1095
      End
   End
   Begin VB.Line Line2 
      BorderColor     =   &H80000014&
      X1              =   120
      X2              =   3840
      Y1              =   975
      Y2              =   975
   End
   Begin VB.Line Line1 
      BorderColor     =   &H80000010&
      X1              =   120
      X2              =   3840
      Y1              =   960
      Y2              =   960
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Command2_Click()
    Frame1.Visible = Not Frame1.Visible
End Sub

Private Sub Command3_Click()
    Unload Me
End Sub
Cet exemple ne répond malheureusement pas à ton problème, j'en suis conscient.
 

zsefgedih

Nouveau membre
Meilleure réponse
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
Code:
'Image suivante
Private Sub Command2_lostfocus()
           Text1.SetFocus
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'.
Code:
command2.setfocus    'recupere l'erreur
command2.enabled =
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:
Code:
'Image suivante
Private Sub Command2_lostfocus()
        On Error Resume Next   'trappe l'erreur du .set focus
           Text1.SetFocus
End Sub

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

Code:
        On Error Resume Next
           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
 

zeb

Modérateur
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.

Code:
' // Erreur non gérée
Private Sub Command2_lostfocus()
    Text1.SetFocus
End Sub

' // Erreur mal gérée
Private Sub Command2_lostfocus()
    On Error Resume next
    Text1.SetFocus
End Sub

' // Pas d'erreur : car problème bien géré
Private Sub Command2_lostfocus()
    If Text1.Enabled Then Text1.SetFocus
End Sub
 

zsefgedih

Nouveau membre
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
Code:
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
 

zeb

Modérateur
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.
 

zsefgedih

Nouveau membre
celui Merci zeb, jei pense ........ donne les idées pour les autrepour pr erro '5'
byby
Joseph
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 811
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut