cs_doyen
Messages postés96Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention 9 mai 2011
-
7 déc. 2008 à 13:30
cs_doyen
Messages postés96Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention 9 mai 2011
-
7 déc. 2008 à 19:38
Bonjour
Je viens de passer de W2k sur Vista j'ai importé VB6 et appliqué le sp6 , mon programme fonctionnait parfaitement avant .
Je ne m'en sors pas le premier programme que je prend ( pour amelioration ) se plante lamentablement ,en erreur 16 "Expression trop complexe " ???? déjà sur la ligne en Bleu
En gros dans un picturebox j'affiche des images et je memorise dans une table (tab_img) leur implanation , au survol , je test de quelle image il s'agit , pour traitement .
Private Sub PlanImages_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer, Xx As Integer, Yy As Integer
On Error GoTo err_Resume
PlanImages.ToolTipText = ""
If Not (Not Tab_Img) Then Xx x : Yy y
For i = 0 To UBound(Tab_Img) - 1
.
.
etc
A l'origine j'avais ce test simplemenbt ( qui marchait ) :
If x >= Tab_Img(i).Position_ImageX And x <= Tab_Img(i).Position_ImageX + LargShape And _
y >= Tab_Img(i).Position_ImageY And y <= Tab_Img(i).Position_ImageY + HautShape Then
ça promet !!!!!
Je ne comprend plus là ...
Si vous avez un idée .....
Bon week a tous
A voir également:
Gros pb erreur 16 "expression trop complexe" après migr W2K--> Vista avec VB6
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 7 déc. 2008 à 14:09
Pourquoi changer ton code puisqu'il marchait ??
If Not (Not Tab_Img) Then ...
Ce code ne sert à rien. Les 2 Not s'annulent mutuellement. Cela revient à faire If Tab_Img Then, ce qui en soit est incohérent puisque Tab_Img n'est pas un boolean. Il faut que tu revoie ton test
Pour finir, l'erreur n'est pas sur la ligne en bleu. Si VB t'indique l'erreur là, c'est qu'il est complètement perdu à cause d'une autre erreur ailleurs.
'le précédent code fonctionne, mais provoque "parfois" une erreur
16 (expression trop complexe), surtout si la compilation est en
p-code
'
'cette méthode est plus sûre, explication à cette adresse
:
'http://support.microsoft.com/kb/199824
tu peux aussi en profiter pour typer correctement XX as SINGLE et non as integer
++
<hr size ="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_doyen
Messages postés96Date d'inscriptionjeudi 24 janvier 2002StatutMembreDernière intervention 9 mai 2011 7 déc. 2008 à 18:36
Re ,
Merci a vous 2 pour vos réponses , j'ai modifié le code en substituant le test par isarraynull , je met aussi la declaration du tableau !!
Public Type Tab_Image
Chemin_Image As String
Label_Image_Ori As String
Label_Image_Jpg As String
Label_Image_sans_Ext As String
Largeur_Image As Long
Hauteur_Image As Long
Largeur_Vignette As Long
Hauteur_Vignette As Long
Comment_Image As String
Date_Image As Date
Position_ImageX As Integer
Position_ImageY As Integer
Comment1 As String
Comment2 As String
Comment3 As String
Comment4 As String
End Type
Public Tab_Img() As Tab_Image
Private Sub PlanImages_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
On Error Resume Next
PlanImages.ToolTipText = ""
' If Not (Not Tab_Img) Then
If Not IsArrayNull(Tab_Img()) Then
For i = 0 To UBound(Tab_Img) - 1
If x >= Tab_Img(i).Position_ImageX And x <= Tab_Img(i).Position_ImageX + LargShape And _
y >= Tab_Img(i).Position_ImageY And y <= Tab_Img(i).Position_ImageY + HautShape Then
J'ai une erreur
Incompatibilité de type: Tableau ou type defini par l'utilisateur attendu !!!
Merci encore et A+
Vous n’avez pas trouvé la réponse que vous recherchez ?