Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

[SOLUCIONADO] Buscar Los Colores Del Sistema

[SOLUCIONADO] Buscar Los Colores Del Sistema
Artículo
Responder citando    Descargar mensaje  
Mensaje [SOLUCIONADO] Buscar Los Colores Del Sistema 
 
Hola, compañeros:
Estoy con una aplicación en la que se seleccionan colores a partir de un archivo, con un ColorChooser y, lo que me importa, colores del sistema.
Estoy buscando una solución más «elegante» que la que he encontrado. Se trataría de recorrer de alguna manera las propiedades estáticas y las constantes de Color. De momento, mi solución es ésta, pero seguro que vosotros conocéis alguna manera más lógica:

Private Sub Carga_Sistema()

  Dim strAlfa As New String[]
  Dim i As Integer
  
  
  strAlfa.Add("Background")
  strAlfa.Add("ButtonBackground")
  strAlfa.Add("ButtonForeground")
  strAlfa.Add("Foreground")
  strAlfa.Add("LightBackground")
  strAlfa.Add("LightForeground")
  strAlfa.Add("LinkForeground")
  strAlfa.Add("SelectedBackground")
  strAlfa.Add("SelectedForeground")
  strAlfa.Add("TextBackground")
  strAlfa.Add("TextForeground")
  strAlfa.Add("TooltipBackground")
  strAlfa.Add("TooltipForeground")
  strAlfa.Add("VisitedForeground")
  strAlfa.Add("Black")
  strAlfa.Add("Blue")
  strAlfa.Add("Cyan")
  strAlfa.Add("DarkBlue")
  strAlfa.Add("DarkCyan")
  strAlfa.Add("DarkGray")
  strAlfa.Add("DarkGreen")
  strAlfa.Add("DarkMagenta")
  strAlfa.Add("DarkRed")
  strAlfa.Add("DarkYellow")
  strAlfa.Add("Default")
  strAlfa.Add("Gray")
  strAlfa.Add("Green")
  strAlfa.Add("LightGray")
  strAlfa.Add("Magenta")
  strAlfa.Add("Orange")
  strAlfa.Add("Pink")
  strAlfa.Add("Red")
  strAlfa.Add("Transparent")
  strAlfa.Add("Violet")
  strAlfa.Add("White")
  strAlfa.Add("Yellow")


  grdSistema.Rows.Count = strAlfa.Count
  grdSistema.Columns.Count = 2
  grdSistema.Padding = 0
  For i = 0 To strAlfa.Max
    grdSistema.Row = i
    grdSistema.Column = 0
    grdSistema.Current.Background = Eval("Color." & strAlfa[i])
    grdSistema.Column = 1
    grdSistema.Current.Text = strAlfa[i]
  Next
  grdSistema.Row = 0

End


La aplicación tiene un GridView en el que la columna cero es la que tiene el color de fondo del color correspondiente y la columna uno el nombre. El Gridview se llama grdSistema. —Sí, usaré un «with» cuando esté funcional.—

Gracias de antemano



 
última edición por Grandamakulo el Jueves, 29 Agosto 2019, 19:39; editado 1 vez 
Grandamakulo - Ver perfil del usuario Enviar mensaje privado  
Grandamakulo [ Miercoles, 28 Agosto 2019, 22:28 ]
 


[SOLUCIONADO] Buscar Los Colores Del Sistema
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Grandamakulo escribió: [Ver mensaje]
Estoy buscando una solución más «elegante» que la que he encontrado.


Siendo valores constantes de tipo String, yo preferiría un array instanciado explícitamente:

Private strAlfa As String[] = ["Background", "ButtonBackground", "ButtonForeground", "Foreground", "LightBackground",
                               "LightForeground", "LinkForeground", "SelectedBackground", "SelectedForeground",
                               "TextBackground", "TextForeground", "TooltipBackground", "TooltipForeground",
                               "VisitedForeground", "Black", "Blue", "Cyan", "DarkBlue", "DarkCyan", "DarkGray",
                               "DarkGreen", "DarkMagenta", "DarkRed", "DarkYellow", "Default", "Gray", "Green",
                               "LightGray", "Magenta", "Orange", "Pink", "Red", "Transparent", "Violet", "White", "Yellow"]


Private Sub Carga_Sistema()

   ......
   ......




 
última edición por vuott el Jueves, 29 Agosto 2019, 00:08; editado 6 veces 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Jueves, 29 Agosto 2019, 00:01 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Otra posibilidad puedes distribuir los valores del array y luego añadir saltos por valores.

Private strAlfa As String[] = [
  "Background",
  "ButtonBackground",
  "ButtonForeground",
  "Foreground",
  "LightBackground",
  "LightForeground",
  "LinkForeground",
  "SelectedBackground",
  "SelectedForeground",
  "TextBackground",
  "TextForeground",
  "TooltipBackground",
  "TooltipForeground",
  "VisitedForeground",
  "Black",
  "Blue",
  "Cyan",
  "DarkBlue",
  "DarkCyan",
  "DarkGray",
  "DarkGreen",
  "DarkMagenta",
  "DarkRed",
  "DarkYellow",
  "Default",
  "Gray",
  "Green",
  "LightGray",
  "Magenta",
  "Orange",
  "Pink",
  "Red",
  "Transparent",
  "Violet",
  "White",
  "Yellow"]
....
 


Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 29 Agosto 2019, 00:22 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Muchísimas gracias a ambos. Efectivamente, se me había pasado sacar la carga de valores de la rutina para que no se repita cada vez (además de la sencillez, claro).
Pero mi duda es si hay alguna manera, tipo For...Each o similar para buscar las propiedades estáticas y las constantes de Color y no tener que escribirlas explícitamente.
Es que me explico fatal   , pero creo que ahora puede haber quedado algo más claro.
Reitero mi agradecimiento.




 
última edición por Grandamakulo el Jueves, 29 Agosto 2019, 07:34; editado 1 vez 
Grandamakulo - Ver perfil del usuario Enviar mensaje privado  
Grandamakulo [ Jueves, 29 Agosto 2019, 07:32 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Puede que una solución posible sea entender el tipo Clase.  

A ver si encontramos algo por la comunidad.

Saludos



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 29 Agosto 2019, 13:57 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Comenzamos con esto:

Public Sub Form_Open()
  
  Dim simbolos As New String[]
  
  Dim unaclase As Class
  
  unaclase = Color
  
  simbolos = unaclase.Symbols
  Stop
  
End
 


Mirar todos los símbolos. Si es de un tipo determinado podemos pasarlo al grupo de colores, un array.

 ejemplo_simbolos_de_clase_color

Saludos



 
última edición por Shell el Jueves, 29 Agosto 2019, 14:15; editado 1 vez 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Jueves, 29 Agosto 2019, 14:13 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Shell escribió: [Ver mensaje]
Comenzamos con esto:

Public Sub Form_Open()
  
  Dim simbolos As New String[]
  
  Dim unaclase As Class
  
  unaclase = Color
  
  simbolos = unaclase.Symbols
  Stop
  
End
 


Mirar todos los símbolos. Si es de un tipo determinado podemos pasarlo al grupo de colores, un array.

 ejemplo_simbolos_de_clase_color

Saludos


   Interesantes !!!!



 
gambafeliz - Ver perfil del usuario Enviar mensaje privado  
gambafeliz [ Jueves, 29 Agosto 2019, 14:39 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
Propongo esta hipótesis:

Public Sub Form_Open()

  Dim cl As Class
  Dim s As String
  
  cl = Class.Load("Color")
  
  For Each s In cl.Symbols
    If cl[s].Kind = Class.Method Then Continue
    Print Hex(Object.GetProperty(cl, s), 8), s
    Wait 0.3
  Next
  
  Me.Close
  
End




 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Jueves, 29 Agosto 2019, 14:57 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
...y además yo querría señalar este archivo de sistema:

  /etc/X11/rgb.txt



 
última edición por vuott el Jueves, 29 Agosto 2019, 15:12; editado 1 vez 
vuott - Ver perfil del usuario Enviar mensaje privado  
vuott [ Jueves, 29 Agosto 2019, 15:11 ]
Responder citando    Descargar mensaje  
Mensaje Re: Buscar Los Colores Del Sistema 
 
vuott escribió: [Ver mensaje]
...y además yo querría señalar este archivo de sistema:

  /etc/X11/rgb.txt


Brutal, joven padawan. Los caminos de la fuerza recorrer tú sabes.

+1



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 29 Agosto 2019, 17:14 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron