Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ayuda, código demasiado largo vb 6.0

Estas en el tema de ayuda, código demasiado largo vb 6.0 en el foro de Visual Basic clásico en Foros del Web. Saludos. Soy nuevo en esto de Visual Basic. Utilizo VB 6.0. Pues bien, he escrito un código en un combobox que al elegir una opción ...
  #1 (permalink)  
Antiguo 20/07/2008, 20:13
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
ayuda, código demasiado largo vb 6.0

Saludos. Soy nuevo en esto de Visual Basic. Utilizo VB 6.0. Pues bien, he escrito un código en un combobox que al elegir una opción me haga visible una imagen u otra dependiendo de lo que haya elegido en ese combobox y en otros 3, lo he hecho con la forma If...Then, lo que pasa es que es excesivamente largo ya que lo voy a tener que repetir en muchas ocasiones con otros combobox.
¿Me podéis decir cómo lo puedo reducir? Gracias.

Este es el código:

If Combo1.text = 1 Then

If Check1.Value = 0 And Check2.Value = 0 Then



If Combo2.text = "Carga puntual" And Combo6.text = "Carga uniforme" And Combo10.text = "Carga uniforme" Then

If Form3.Text1 = 0 Or Form3.Text1 = Form2.Text1 Then

Picture71(0).Visible = True

Picture72(0).Visible = False

Picture73(0).Visible = False

Picture74(0).Visible = False

Picture75(0).Visible = False

Picture76(0).Visible = False

Picture77(0).Visible = False

Picture78(0).Visible = False

Picture79(0).Visible = False

Picture80(0).Visible = False

Picture81(0).Visible = False

Picture82(0).Visible = False

Picture83(0).Visible = False

Picture84(0).Visible = False

Picture85(0).Visible = False

Picture86(0).Visible = False

Picture87(0).Visible = False

Picture88(0).Visible = False

Picture89(0).Visible = False

Picture90(0).Visible = False

Picture91(0).Visible = False

Picture92(0).Visible = False

Picture93(0).Visible = False

Picture94(0).Visible = False

Picture95(0).Visible = False

Picture96(0).Visible = False

Picture97(0).Visible = False

Picture98(0).Visible = False

End If

If Form3.Text1 < ((Form2.Text1) / 2) And Form3.Text1 > 0 Then

Picture71(0).Visible = False

Picture72(0).Visible = False

Picture73(0).Visible = False

Picture74(0).Visible = False

Picture75(0).Visible = False

Picture76(0).Visible = False

Picture77(0).Visible = False

Picture78(0).Visible = False

Picture79(0).Visible = False

Picture80(0).Visible = False

Picture81(0).Visible = False

Picture82(0).Visible = False

Picture83(0).Visible = False

Picture84(0).Visible = False

Picture85(0).Visible = False

Picture86(0).Visible = False

Picture87(0).Visible = False

Picture88(0).Visible = False

Picture89(0).Visible = False

Picture90(0).Visible = False

Picture91(0).Visible = True

Picture92(0).Visible = False

Picture93(0).Visible = False

Picture94(0).Visible = False

Picture95(0).Visible = False

Picture96(0).Visible = False

Picture97(0).Visible = False

Picture98(0).Visible = False

End If

If Form3.Text1 = ((Form2.Text1) / 2) Then

Picture71(0).Visible = False

Picture72(0).Visible = False

Picture73(0).Visible = False

Picture74(0).Visible = False

Picture75(0).Visible = False

Picture76(0).Visible = False

Picture77(0).Visible = False

Picture78(0).Visible = False

Picture79(0).Visible = False

Picture80(0).Visible = False

Picture81(0).Visible = False

Picture82(0).Visible = False

Picture83(0).Visible = False

Picture84(0).Visible = False

Picture85(0).Visible = False

Picture86(0).Visible = False

Picture87(0).Visible = True

Picture88(0).Visible = False

Picture89(0).Visible = False

Picture90(0).Visible = False

Picture91(0).Visible = False

Picture92(0).Visible = False

Picture93(0).Visible = False

Picture94(0).Visible = False

Picture95(0).Visible = False

Picture96(0).Visible = False

Picture97(0).Visible = False

Picture98(0).Visible = False

End If

If Form3.Text1 > ((Form2.Text1) / 2) And Form3.Text1 >Form2.Text1 Then

Picture71(0).Visible = False

Picture72(0).Visible = False

Picture73(0).Visible = False

Picture74(0).Visible = False

Picture75(0).Visible = False

Picture76(0).Visible = False

Picture77(0).Visible = False

Picture78(0).Visible = False

Picture79(0).Visible = False

Picture80(0).Visible = False

Picture81(0).Visible = False

Picture82(0).Visible = False

Picture83(0).Visible = False

Picture84(0).Visible = False

Picture85(0).Visible = False

Picture86(0).Visible = False

Picture87(0).Visible = False

Picture88(0).Visible = False

Picture89(0).Visible = False

Picture90(0).Visible = False

Picture91(0).Visible = False

Picture92(0).Visible = False

Picture93(0).Visible = False

Picture94(0).Visible = False

Picture95(0).Visible = True

Picture96(0).Visible = False

Picture97(0).Visible = False

Picture98(0).Visible = False

End If

End If

End If
End If
  #2 (permalink)  
Antiguo 20/07/2008, 21:42
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: ayuda, código demasiado largo vb 6.0

Hola,nunca vi un code tan largo jeje ,no mira primero no entiendo algo de tu programa se supone que los picturesbox son matriz de controles no ?,pero veo que siempre tiene el indice en 0...por ejemplo Picture71(0),Picture72(0),Picture73(0)..etc... tiene que ser asi Picture71(0),Picture71(1),Picture71(2) y etc... asi aumentando el indice de la matriz en uno...no se porque tenes todos ceros...al hacerlo como yo te digo con 3 lineas de codigo podes hacer todo...mira te pongo un ejemplo agarra y renombra los picturebox y cambiles el indice a cada uno y que te quede asi:

en vez de llamarse Picture71(0),Picture72(0),Picture73(0).....poneles que se llamen asi:

Picture71(0),Picture71(1),Picture71(2)...etc...

que se llamen todos picture71 y que cada uno tenga un indice diferente...y despues tu codigo quedaria asi mas o menos lo arme rapido...

Código:
Dim i As Integer
If Combo1.Text = 1 Then
  If Check1.Value = 0 And Check2.Value = 0 Then
    If Combo2.Text = "Carga puntual" And Combo6.Text = "Carga uniforme" And Combo10.Text = "Carga uniforme" Then
      If Form3.Text1 = 0 Or Form3.Text1 = Form2.Text1 Then
         Picture71(0).Visible = True
            For i = 1 To 27
             Picture71(i).Visible = False
            Next i
      End If

      If Form3.Text1 < ((Form2.Text1) / 2) And Form3.Text1 > 0 Then
        For i = 0 To 19
             Picture71(i).Visible = False
        Next i
          Picture71(20).Visible = True

        For i = 21 To 27
             Picture71(i).Visible = False
        Next i

            End If

            If Form3.Text1 = ((Form2.Text1) / 2) Then

        For i = 0 To 15
             Picture71(i).Visible = False
        Next i

            Picture71(16).Visible = True

        For i = 17 To 27
             Picture71(i).Visible = False
        Next i

            End If

            If Form3.Text1 > ((Form2.Text1) / 2) And Form3.Text1 > Form2.Text1 Then
           
           For i = 0 To 23
             Picture71(i).Visible = False
           Next i
 
           Picture71(24).Visible = True
          
          For i = 25 To 27
             Picture71(i).Visible = False
           Next i

           End If

        End If

    End If
End If
saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 21/07/2008, 05:03
 
Fecha de Ingreso: julio-2008
Mensajes: 36
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: ayuda, código demasiado largo vb 6.0

Muchas gracias. Eso es un código más lógico, lo mío era excesivo.
  #4 (permalink)  
Antiguo 21/07/2008, 13:47
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: ayuda, código demasiado largo vb 6.0

Hola!

Otra cosa que puedes hacer para reducir aún más el código es agrupar los PictureBoxes dentro de Frames. Así, puedes mostrarlos u ocultarlos todos simplemente cambiando la propiedad Visible del Frame que los contiene.
__________________
wile sona li mute e sona
  #5 (permalink)  
Antiguo 25/07/2008, 03:16
Avatar de kamumaki  
Fecha de Ingreso: julio-2008
Ubicación: donde me dejan
Mensajes: 34
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: ayuda, código demasiado largo vb 6.0

buenas
el codigo de seba123neo es practicamente perfecto

lo unico k se podria "mejorar" es lo siguiente

For i = 0 To 19
Picture71(i).Visible = False
Next i
Picture71(20).Visible = True

For i = 21 To 27
Picture71(i).Visible = False
Next i

estos tres bucles se pueden kdar en uno:
For i = 0 To Picture71.count - 1
Picture71(i).Visible = False
Next i
Picture71(20).Visible = True

es una parida xo como ayudar es gratis...

ale asta luego

Repito el codigo de seba123neo es practicamente perfect!!!
un saludo!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:29.