Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: ADONAIRAFA en Enero 28, 2012, 12:57:48 am
-
Saludos a todos !!!
Tengo un problema con respecto a a los UserControls...
Estoy diseñando uno, y le agregué entre otras propiedades: BackColor y ForeColor.
Public Property Get BackColor() As Long
BackColor = objeto.BackColor
End Property
Public Property Let BackColor(ByVal bkColor As Long)
objeto.BackColor = bkColor
PropertyChanged "BackColor"
End Property
Public Property Get ForeColor() As Long
ForeColor = objeto.ForeColor
End Property
Public Property Let ForeColor(ByVal frColor As Long)
objeto.ForeColor = frColor
PropertyChanged "ForeColor"
End Property
Y perfecto :o, cuando genero el .ocx y lo cargo en un proyecto determinado, éstas, se ven en el cuadro de propiedades del control, pero... >:( >:( >:(
Pero solo aparace un valor numérico (que representa el color) y no me aparece el cuadro o paleta de colores ! ¿qué estoy haciendo mal? ¿qué me faltó agregar? ¿qué puedo hacer para que al hacer click en el recuadro (de popiedades) aparezca la paleta de colores?
Les agradezco de antemano cualquier sugerencia.
Saludos !!!
Manuel F. Borrego S. 8)
Barcelona, Venezuela.
-
no tengo vb6 amano, pero esos valores no creo que sea Long.
usa el asistente para user controls, en el wizard te da opciones predefinidas como esas opciones que necesitas vos.
-
Gracias xkiz !!! voy a probarlo !!!
-
'Default Property Values:
Const m_def_BackColor = 0
Const m_def_ForeColor = 0
'Property Variables:
Dim m_BackColor As OLE_COLOR
Dim m_ForeColor As OLE_COLOR
'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON COMENTARIOS
'MemberInfo=10,0,0,0
Public Property Get BackColor() As OLE_COLOR
BackColor = m_BackColor
End Property
Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
m_BackColor = New_BackColor
PropertyChanged "BackColor"
End Property
'ADVERTENCIA: NO QUITAR NI MODIFICAR LAS SIGUIENTES LINEAS CON COMENTARIOS
'MemberInfo=10,0,0,0
Public Property Get ForeColor() As OLE_COLOR
ForeColor = m_ForeColor
End Property
Public Property Let ForeColor(ByVal New_ForeColor As OLE_COLOR)
m_ForeColor = New_ForeColor
PropertyChanged "ForeColor"
End Property
'Inicializar propiedades para control de usuario
Private Sub UserControl_InitProperties()
m_BackColor = m_def_BackColor
m_ForeColor = m_def_ForeColor
End Sub
'Cargar valores de propiedad desde el almacén
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
m_BackColor = PropBag.ReadProperty("BackColor", m_def_BackColor)
m_ForeColor = PropBag.ReadProperty("ForeColor", m_def_ForeColor)
End Sub
'Escribir valores de propiedad en el almacén
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("BackColor", m_BackColor, m_def_BackColor)
Call PropBag.WriteProperty("ForeColor", m_ForeColor, m_def_ForeColor)
End Sub
-
Perfecto, ese si funciona. Gracias xkiz !!! ;D