Autor Tema: Manipular ucImage pasado como variable  (Leído 7116 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Manipular ucImage pasado como variable
« en: Octubre 22, 2014, 06:52:00 pm »
Si declaro una variable como ucImage ¿porque no puedo acceder a todas sus propiedades?
Código: (VB) [Seleccionar]
Private Sub Command1_Click()
ucIma.Visible = True  '<<--- aqui si funciona correctamente
End Sub

Private Sub Command2_Click()
Call Prender(ucIma)   'Con esto llamo al de abajo
End Sub

Private Sub Prender(MiControl As ucImage)
MiControl.Visible = True  '<<--- porque no heredo? ¡como lo resuelvo?
End Sub


Private Sub Prender2(MiControl As CommandButton)
MiControl.Visible = False  'Y este si funciona, ¿porque con el ucImage no? ¿me falta algo?
End Sub

Private Sub Command3_Click()
Call Prender2(Command1)
End Sub

Proyecto
« última modificación: Octubre 22, 2014, 06:55:47 pm por YAcosta »
Me encuentras en YAcosta.com

FrankLizardo

  • Kilobyte
  • **
  • Mensajes: 65
  • Reputación: +7/-1
    • Ver Perfil
Re:Manipular ucImage pasado como variable
« Respuesta #1 en: Octubre 22, 2014, 08:13:48 pm »
Bien sera que puedes declararlo como object asi te funcionara!!

Código: [Seleccionar]
Private Sub Prender(MiControl As Object)
    MiControl.Visible = True  '<<--- porque no heredo? ¡como lo resuelvo?
End Sub

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Manipular ucImage pasado como variable
« Respuesta #2 en: Octubre 22, 2014, 09:31:18 pm »
Nunca probe con visible. Pero fijate si existe la propiedad Set Visibile (seguro que Let Visible esta)

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #3 en: Octubre 23, 2014, 12:48:19 am »
Bien sera que puedes declararlo como object asi te funcionara!!

Código: [Seleccionar]
Private Sub Prender(MiControl As Object)
    MiControl.Visible = True  '<<--- porque no heredo? ¡como lo resuelvo?
End Sub

Si doc, eso lo resolvio, muchas gracias.
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #4 en: Octubre 23, 2014, 12:54:17 am »
Nunca probe con visible. Pero fijate si existe la propiedad Set Visibile (seguro que Let Visible esta)

Fijate que no esta ni siquiera Let Visible, asi que agregue estas lineas al control:

Código: (VB) [Seleccionar]
Public Property Let Visible(Enable As Boolean)
    UserControl.Visible = Visible
    PropertyChanged "Visible"
End Property
Public Property Get Visible() As Boolean
    Visible = UserControl.Visible
End Property

Y ya no me salto el error pero si me salto en la siguiente linea (tomado del proyecto de trabajo no del ejemplo):
MiControl.Left = lblDia(R).Left

y me salto el mismo error, quiere decir que tambien debo agregar esa propiedad. Voy a probar
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #5 en: Octubre 23, 2014, 01:01:58 am »
No me ligo con Left asi que lo comente y me salto el error dentro del ucImage en esta linea (no se encontro el metodo etc etc)

UserControl.Visible = Visible

Ya tendría que echarle una investigada de como se heredan las propiedades, de momento lo dejare con la solución del Object (no es por marica sino por falta de tiempo ya que el modulito lo debo entregar mañana)

:-(
Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Manipular ucImage pasado como variable
« Respuesta #6 en: Octubre 23, 2014, 10:01:51 am »
UserControl.Visible = Visible
Seguro que es = visible ? Que intentas hacer ?

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #7 en: Octubre 23, 2014, 01:06:46 pm »
En un proyectito (que ya entregue pero igual le sigo para saber) tengo 15 controles ucImage que los 15 tienen el mismo compartimiento dependiendo de ciertos parametros. Ok, uno de ellos es que voy a volver Visible False a algunos y Visible True a otros, entonces no quería repetir codigo y por ello queria usar lo de arriba para invocarlo asi:

Call AplicarCambios(ucImageX, True, 80, etc etc) Alli le paso el control y el False es volverlo visible por ejemplo

Lo otro que se me ocurre es volverlo matriz de controles y manipularlo por el index pero queria probar de la forma que quedo resuelto declarado como Object y no como ucImage.

Ahora, en la parte de:
UserControl.Visible = Visible

La verdad lo que hice fue copiar la forma en que se aplicaba otra propiedad Enabled en el mismo control:
Código: (VB) [Seleccionar]
Public Property Let Enabled(Enable As Boolean)
    UserControl.Enabled = Enable
    PropertyChanged "Enabled"
End Property
Public Property Get Enabled() As Boolean
    Enabled = UserControl.Enabled
End Property
Que como tiene valores similares (True/False) pense que teniendo esa guia funcionaria pero al parecer lo estoy haciendo mal.
Me encuentras en YAcosta.com

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:Manipular ucImage pasado como variable
« Respuesta #8 en: Octubre 23, 2014, 11:50:03 pm »
Estimado Master Yacosta:

     En estas Linea :
Código: (VB) [Seleccionar]
Public Property Let Visible(Enable As Boolean) '<------- AQUI
    UserControl.Visible = Visible  '<------- Y AQUI
    PropertyChanged "Visible"
End Property
Public Property Get Visible() As Boolean
    Visible = UserControl.Visible
End Property

Debia de ser:
Código: (VB) [Seleccionar]
Public Property Let Visible(Enable As Boolean)   '<---- ASI
    UserControl.Visible = Enable            '<---- ASI
    PropertyChanged "Visible"
End Property
Public Property Get Visible() As Boolean
    Visible = UserControl.Visible
End Property

Saludos Cordiales
« última modificación: Octubre 23, 2014, 11:58:16 pm por AxioUK »

_____________________________
Sé un poco de todo y mucho de nada... ;)

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #9 en: Octubre 23, 2014, 11:55:18 pm »
chess, cierto, tenias razón, que tal patinada. Siempre se aprende. Gracias doc.
Me encuentras en YAcosta.com

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:Manipular ucImage pasado como variable
« Respuesta #10 en: Octubre 24, 2014, 12:00:17 am »
No hay por donde Maestro, que si no es por su indirecta orientación no habría conocido Firebird!

Saludos Cordiales

_____________________________
Sé un poco de todo y mucho de nada... ;)

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Manipular ucImage pasado como variable
« Respuesta #11 en: Octubre 24, 2014, 01:20:20 am »
Off Topic: Por cierto estimado, ya salio la beta tester de Firebird 3!!! checalo aqui

http://firebird3.com/

Saludos
Me encuentras en YAcosta.com