TRATAMENTO DE CODIGO

IRENKO 17/05/2012 13:22:58
#402147
Estou tentando uma doidura aqui mas tá dando pau, seguinte:
Para Private Sub Skin_MouseMove assume o Primeiro Laço FOR, esse esta dando certo.

Para Private Sub ImgBox_MouseMove tem q assumir o Segundo Laço FOR, da erro por causa da ultima linha do mesmo.

Alguem tem uma ideia para fazer funcionar essa função?


Private Sub Skin_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
EventoBotao Index
End Sub
Private Sub ImgBox_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
EventoBotao Index
End Sub

Private Sub EventoBotao(ByVal Index As Integer)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
Primeiro Laço FOR
For Y = Me.Controls.Count - 1 To 0 Step -1
If (TypeOf Me.Controls(Y) Is Image) Then
If Me.Controls(Y).Tag = [Ô]X[Ô] Then
For j = 1 To 5
ImgBox(j).Picture = Img_Barra.ListImages(j + 5).Picture
Shape(j).Visible = False
Next j
ElseIf Me.Controls(Y).Tag = [Ô][Ô] Then Exit For
End If
End If
Next Y
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

**********************************************************************************************
Segundo Laço FOR
For i = 1 To 5
If ImgBox(i).Picture <> Img_Barra.ListImages(i + 5).Picture And i <> Index Then
ImgBox(i).Picture = Img_Barra.ListImages(i + 5).Picture
End If
If i = Index Then
Shape(i).Visible = True
Else
Shape(i).Visible = False
End If

Next i
ImgBox(Index).Picture = Img_Barra.ListImages(Index).Picture
*********************************************************************************************************
End Sub
MARCELO.TREZE 17/05/2012 13:57:07
#402151
Resposta escolhida
qual é o erro que apresenta
IRENKO 17/05/2012 14:11:29
#402153
O erro é:

Index out of bounds (índice fora dos limites)

nessa linha:
ImgBox(Index).Picture = Img_Barra.ListImages(Index).Picture

só q ela faz parte do Segundo Laço FOR, não pode sair.

O problema esta ai, ou seja, separar o primeiro Laço do segundo.
MARCELO.TREZE 17/05/2012 16:32:16
#402186
TENTE ISSO MUDE

For i = 1 To 5

PARA

For i = 0 To 4
IRENKO 17/05/2012 16:39:12
#402190
não deu certo. Deu outro erro dizendo q o array 0 do controle não existe.
MARCELO.TREZE 17/05/2012 16:53:51
#402192
Primeiro quantos imgbox, quantos img_barras, e quantos shapes você possui,

se forem quantidades diferentes é onde está ocorrendo o erro, geralmente o index de controle começa com zero acho que não é o seu caso, ou algum destes 3 componentes começa do zero e os outros começam do 1

IRENKO 17/05/2012 17:00:01
#402194
05 imgbox
01 img_barras
05 shapes

eu vou montar um exemplo e anexar para fica mais claro.
MARCELO.TREZE 17/05/2012 17:11:19
#402197
bom o problema está ai o index do shape e do imgbox começam do zero, verifique isso, pois se um começar no zero e outro no 1 ja dará erro
Tópico encerrado , respostas não são mais permitidas