index * objects

Iniciado por zXxOsirisxXz, 17 Enero 2008, 01:33 AM

0 Miembros y 2 Visitantes están viendo este tema.

zXxOsirisxXz

Hola Foro el hacker. :D

Yo aki, estoy cansado de buscar por varios dias en google, pk no se como seria lo k estoy buscnado exactamente.

Al punto:

Lo k quiero es.. saber alguna forma de facilitarme la vida para los botones. Por ejemplo.

CitarPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Image41.Visible = True
Image42.Visible = False
Image43.Visible = True
Image44.Visible = False
Image1.Visible = True
Image2.Visible = True
Image3.Visible = True
Image4.Visible = True
Image5.Visible = True
Image6.Visible = True
Image7.Visible = True
Image8.Visible = True
Image9.Visible = True
Image10.Visible = True
Image11.Visible = True
Image12.Visible = True
Image13.Visible = True
Image14.Visible = True
Image15.Visible = True
Image16.Visible = True
Image17.Visible = True
Image18.Visible = True
Image19.Visible = True
Image20.Visible = True
Image21.Visible = False
Image22.Visible = False
Image23.Visible = False
Image24.Visible = False
Image25.Visible = False
Image26.Visible = False
Image27.Visible = False
Image28.Visible = False
Image29.Visible = False
Image30.Visible = False
Image31.Visible = False
Image32.Visible = False
Image33.Visible = False
Image34.Visible = False
Image35.Visible = False
Image36.Visible = False
Image37.Visible = False
Image38.Visible = False
Image39.Visible = False
Image40.Visible = False
End Sub

Eso es un codigo de un programa k tengo por ahi.. pero..

Lo k quiero es.. para facilitarme la vida.

Osea en ves de tantos false, false false...

algo como un..

CitarFor i = 1 to 40
image(i).visible = false
Next i

asi todas del 1 al 40, seran false..
Pero, no funciona de esa manera.

Por favor, alguien k pueda ayudarme, le agraderia el favor.

Gracias.

-XxOsirisxX

foobar

Crea una matriz de controles. Para eso cuando crees los controles en el formulario, debes asignarle a cada control el mismo nombre, entonces automáticamente VB crea un array de objetos, y se le asignará un índice a cada uno (propiedad Index). Luego, es simplemente recorrer los controles como un array común:

Código (vb) [Seleccionar]

Private Sub Form_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
  For i = 1 to 40
    image(i).visible = false
  Next
End Sub


image sería el nombre de todos los controles.

Bytez.

cassiani

#2
 Lo que tienes que hacer es crear una matriz de controles, para ello tenes que agregar el control al formulario (image1 por ejemplo) despues de agregado, lo copias y lo vuelves a pegar en el mismo form y os aparecerá un mensaje diciendo "Ya existe un control llamado 'image1'. ¿Desea crear una matriz de controles?" aceptas y ya la tienes lista, despues te servira el code que colocastes antes...

¡s4lu2!

zXxOsirisxXz

#3
Gracias por responder.. pero me da error.. estan seguro k funciona asi??

Me da error..

"Invalid Qualifiquer"

I me señala el Image

CamaleonB



postea el nuevo codigo, se supone que se debe ver algo como image(i).visible=false


zXxOsirisxXz

Cita de: TbChK en 17 Enero 2008, 04:26 AM


postea el nuevo codigo, se supone que se debe ver algo como image(i).visible=false



El codigo k me dieron.. es este..

CitarPrivate Sub Form_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)  For i = 1 to 40    image(i).visible = false  NextEnd Sub

Pero este contine Index As Integer y eso me da error en ese evento, asi k lo use donde lo hace por default.. En el buton de imagen, almenos pa probar.

Y puse

CitarPrivate Sub Image1_Click (Index As Integer)
For i = 1 to 40
  image(i).visible = false 
Next i
End Sub

Gracias.

cassiani

#6
CitarPrivate Sub Image1_Click (Index As Integer)
For i = 1 to 40
  image(i).visible = false
Next i
End Sub

A todas estas no se cual es el nombre del control que usas (al que convertistes en arreglo), ¿es Image1 o Image? recuerda que cada copia del arreglo sustituirá a los otros controles image que tenias en tu form, por lo tanto, si ya no vas a utilizar los otros 40 image's que tenias en el form, ¡os recomiendo que los suprimas!

Código (vb) [Seleccionar]
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    For I = 0 To 10
        Image1(I).Visible = False
    Next
End Sub


¡Fijate! acá en este form solo tengo un arreglo de Image (unos 11), al pasar el mouse desaparecen, ¡no tiene porque darte error!

Edit: http://www.canalvisualbasic.net/inicio/tutor_6.asp

zXxOsirisxXz

Cita de: C@ss¡@n¡ en 17 Enero 2008, 14:20 PM
CitarPrivate Sub Image1_Click (Index As Integer)
For i = 1 to 40
  image(i).visible = false
Next i
End Sub

A todas estas no se cual es el nombre del control que usas (al que convertisteis en arreglo), ¿es Image1 o Image? recuerda que cada copia del arreglo, sustituirá a los otros controles image que tenias en tu form, por lo tanto, si ya no vas a utilizar los otros 40 image's que tenias en el form, ¡os recomiendo que los suprimas!

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    For I = 0 To 10
        Image1(I).Visible = False
    Next
End Sub


¡Fijete! acá en este form, solo tengo un arreglo de Image (unos 11), al pasar el mouse desaparecen, ¡no tiene porque darte error!

Edit: http://www.canalvisualbasic.net/inicio/tutor_6.asp



jajaja

Eso era xD

Puse image (i) enves de Image1(i), algo torpe de mi parte :P

Muchisimas gracias Cassini!!

te lo agradezco, me funciono el codigo de maravilla ;)