Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
[SOLUCIONADO] Buscar Los Colores Del Sistema
Autor Mensaje
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 usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Jueves, 29 Agosto 2019, 14:15; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Gridviews Y Tableviews: Colores En Columna... jsbsan Controles/Librerías/Componentes 1 Sabado, 03 Abril 2010, 17:05 Ver último mensaje
jsbsan
No hay nuevos mensajes Colores De Letras? h4k General 2 Viernes, 23 Abril 2010, 00:54 Ver último mensaje
jodacame
No hay nuevos mensajes Colores En ListBox jsoto61 Controles/Librerías/Componentes 3 Martes, 22 Febrero 2011, 11:15 Ver último mensaje
Shell
No hay nuevos mensajes Colores De Un Gridview shordi Controles/Librerías/Componentes 4 Martes, 29 Enero 2013, 19:32 Ver último mensaje
arubioc
 

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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron