ActiveX - Propiedades Nuevas en OCX (limitadas en un combo)

 
Vista:

Propiedades Nuevas en OCX (limitadas en un combo)

Publicado por Luigi (2 intervenciones) el 12/08/2002 20:58:51
Tengo una inquietud :

He creado mi ActiveX ocx ...pero quiero crearle una propiedad q me permita ingresar un valor numerico pero solo entre 0 y 4
por ejemplo donde diga :
(que se muestre en las propiedades del control)

0 - significado0
1 - significado0
2 - significado0
3 - significado0
4 - significado0

Algo analogo a esto:
Asi como la propiedad BorderStyle de un formulario que cuando entras a cambiarle la propiedad se abre un combito y te sale

0- None
1-Fixed Single
2-Sizable
3-Fixed Dialog
4-....
5-.....

Como hago?
me podiran mostrar el codigo parahacer esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro Andrade

Propiedades Nuevas en OCX (limitadas en un combo)

Publicado por Alejandro Andrade (213 intervenciones) el 24/03/2023 22:15:40
Para crear una propiedad con valores limitados en un ActiveX OCX, puede usar una enumeración en su código.

Primero, en la sección de declaraciones del código, declare una enumeración que defina los valores permitidos y sus significados. Por ejemplo:

1
2
3
4
5
6
7
Public Enum OpcionesNumeros
    cero = 0
    uno = 1
    dos = 2
    tres = 3
    cuatro = 4
End Enum

Luego, en la sección de propiedades de su ActiveX OCX, declare una propiedad que utilice esta enumeración como su tipo de datos. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
Private m_OpcionNumero As OpcionesNumeros
 
Public Property Let OpcionNumero(ByVal opcion As OpcionesNumeros)
    m_OpcionNumero = opcion
    Call PropertyChanged("OpcionNumero")
End Property
 
Public Property Get OpcionNumero() As OpcionesNumeros
    OpcionNumero = m_OpcionNumero
End Property

Finalmente, para que la propiedad aparezca como un combo en el cuadro de propiedades de su ActiveX OCX, debe agregar la siguiente línea en su código:

1
2
3
4
5
Public Sub GetPropertyInfo(ByVal dispid As Long, ByVal lcid As Long, ByVal ppi As Long)
    If dispid = -514 Then 'Valor de la propiedad en hexadecimal'
        Call PropertyComboBox(ppi, Array("cero", "uno", "dos", "tres", "cuatro"))
    End If
End Sub

Con esto, cuando abra las propiedades de su ActiveX OCX, debería ver un combo con los valores permitidos en lugar de un cuadro de texto. Al elegir uno de los valores, se establecerá la propiedad correspondiente en su código.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar