Hola amigos.
Les comparto una manera de obtener los colores del sistema y los de gambas como por ejemplo, SoftOrange.
El compañero Bruce Steers de la lista de correo internacional ha dado con la solución para obtener las propiedades, ya que las constantes si se pueden obtener desde la clase directamente, pero las propiedades provienen del Objeto.
A raíz del
post de Shordi donde buscaba una forma de simplificar el código, finalmente planteo esta manera:
Nota: Por cierto pueden ver el selector de colores de Shordi, que le quedo estupendo y yo subí una versión modificada para trabajar con una colección en vez de con un Variant[].
Código:
Dim myClass As Class = Classes["Color"]
Dim sSymbol As String
For Each sSymbol In myClass.Symbols
If myClass[sSymbol].Kind = Class.Constant Then
$aColors.Add([myClass[sSymbol].Value, sSymbol])
Else If myClass[sSymbol].Kind = Class.Property
$aColors.Add([Object.GetProperty(Color, sSymbol), sSymbol])
Endif
Next
Nuevamente el amigo Bruce se supera a si mismo y nos propone esta otra manera:
Código:
For Each sSymbol As String In Classes["Color"].Symbols
If Classes["Color"][sSymbol].Kind = Class.Constant Or If Classes["Color"][sSymbol].Kind = Class.Property Then $Colors[sSymbol] = Object.GetProperty(Color, sSymbol)
Next