NO COINCIDEN LOS TIPOS

Karla
25 de Septiembre del 2003
HOLA
Tengo un procedimiento donde mando modificar el left pues las tengo que acomodar en diferentes partes de la pantalla alineadas por eso el left de la label se debe de estar incrementando y como son 40 labels que tengo que modificar hice este procedimiento pero me marca error de que no coinciden los tipos,alguien me puede ayudar u otra cosa que se le ocurra que no genere tanto codigo pues son 40 labels, este es el codigo
Private Sub compacta(labe As Label)
labe.Left = vp
labe.Top = 360
vp = vp + 480
End Sub
Y EN CADA LABEL LO MANDO LLAMAR ASI
If incorrecto1.Visible = True Then compacta (incorrecto.left)
YA TAMBIEN LO INTENTE LLAMAR ASÍ
If incorrecto1.Visible = True Then compacta (incorrecto)
PERO ME MARCA ERROR DICE QU ENO COINCIDEN LOS TIPOS
DE QUE FORMA LE PUEDO EXPRESAR AL PARAMETRO QUE QUIERO QUE SOLO CAMBIE EL LEFT DE LAS ETIQUETAS?
GRACIAS!!!!


Baltasar
25 de Septiembre del 2003
primero quita los paréntesis, y luego si el label se llama incorrecto1, has de mandarlo como parámetro al procedimiento tal cual:

if incorrecto1.visible then compacta incorrecto1

por otro lado está la variable vp, que supongo que es "visible" tanto para al procedimiento que llama a compacta como para el propio procedimiento compacta.

De todos modos, te aconsejaría otra solución: haz que todos esos labels sean un array de labels, y de esa manera sólo tendrías que hacer:

vp=(valor inicial)
for a=0 to x (siendo x el último, aunque aconsejo estudiar la propiedad UBOUND)
if incorrecto(a).visible then
incorrecto(a).left=vp
incorrecto(a).top=360
vp=vp+480
endif
next a

saludos

rafa
25 de Septiembre del 2003
Hola karla:
Llamalo asi:
compacta incorrecto
SIN PARENTESIS
y pon el procedimiento publico en un modulo para usarlo desde cualquier formulario.
Para que solo te cambie el left, no le cambies el top en el procedimiento., ¿no?