Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Configuración de colores que usa el sistema.
#1

Buenas!.

Pues en este ejemplo es donde estuve "complicándome" con el carácter de tabulación.
Hice un ejemplo en Gambas donde usaba dos colores y luego con los "mismos colores" y también el mismo ejemplo pero
para Python con la librería Tk.

Con Gambas:

[Imagen: DwPrv1D.png]

Con Python y la librería TkInter:

[Imagen: 4WpY9e5.png]

Aunque el nombre de la constante es el mismo para los colores, la configuración no lo es.
En TkInter es como más apagado.

Así que encontré un archivo en /usr/share/X11/rgb.txt

Donde se encuentran todas las configuraciones de colores y creé un ejemplo para poder leerlas.
¿ Sabéis cuantas configuraciones encontré con nombres distintos y configuraciones que podían ser iguales ?
Un total de: 753 configuraciones!.

Y es que podemos encontrar por ejemplo: "floral white" y "FloralWhite"...

Entonces construí una especie de diccionario de sinónimos. Una colección invertida.

Original, ejemplo, parte:

[Imagen: QCibQOY.png]


Y con la inversión puede ser así:

[Imagen: fErYsu9.png]

GAMBAS
  1. Public Sub Form_Open()
  2.  
  3.   Dim fichero As String
  4.   Dim ruta As String = "/usr/share/X11/rgb.txt"
  5.   Dim linea As String
  6.   Dim nombredelcolor As String
  7.   Dim posicion As Integer
  8.   Dim ccolores As New Collection
  9.  
  10.   Try fichero = File.Load(ruta)
  11.  
  12.   For Each linea In Split(fichero, "\n", "'", True, False)
  13.     If Left(linea, 1) = "!" Or IsNull(linea) Then
  14.       Continue
  15.     Else
  16.       'Lugar donde se encuentra el primer caracter tabulador por la derecha
  17.       posicion = RInStr(linea, "\t")
  18.       'El nombre del color se encuentra en una posición más allá del caracter tabulador hasta el final
  19.       nombredelcolor = Mid(linea, posicion + 1)
  20.       'La nueva linea de texto ya no va a contener el nombre del color
  21.       linea = Trim(Left(linea, posicion))
  22.       'Sustituyo todos los caracteres de tabulación por espacios
  23.       linea = Replace(linea, "\t", " ")
  24.       'Añado los valores RGB en decimal como texto y como clave el nombre del color
  25.       ccolores.Add(linea, nombredelcolor)            
  26.     Endif
  27.   Next
  28.  
  29.     Print Subst("No encontré el archivo &1 en &2", Split(ruta, "/").last, ruta)
  30.   Else
  31.     Print "He encontrado " & ccolores.Length & " configuraciones de colores con repetición." '753
  32.  
  33.   InvertirColeccion(ccolores)
  34.  
  35.  
  36. Public Function InvertirColeccion(clavevalor As Collection) As Collection
  37.     
  38.   Dim valores_clave As New Collection
  39.   Dim valor As String
  40.   Dim clave As String
  41.   Dim aclaves As String[]
  42.  
  43.   For Each valor In clavevalor
  44.     'Obtengo una clave
  45.     clave = clavevalor.Key
  46.     'Compruebo que el valor no existe como clave en valores_clave
  47.     If Not valores_clave.Exist(valor) Then
  48.       'En caso de no existir. Creo un array que va contener las claves que sus valores son iguales
  49.       aclaves = New String[]
  50.       aclaves.Add(clave)
  51.       'Asigno a la coleccion como valores el array de claves y como clave el valor que es el mismo con las claves de clavevalor
  52.       valores_clave[valor] = aclaves
  53.     Else
  54.       'Si ya existe una clave valor, añado otra clave de clavevalor al array
  55.       valores_clave[valor].Add(clave)      
  56.     Endif
  57.   Next
  58.   Print "He encontrado " & valores_clave.Length & " configuraciónes de colores sin repetición " '505
  59.  
  60.   Return valores_clave
  61.  




Y ahora pues estoy intentando crear un ejemplo que me muestre en pantalla todas esas configuraciones con colores. Smile
Os subo la parte que maneja las colecciones con los colores.

Saludos


Archivos adjuntos
.gz ColoresDelSistema-0.0.1.tar.gz Tamaño: 12.93 KB  Descargas: 1

"El lobo siempre será malo si sólo escuchamos a Caperucita.". El lobo.
[-] Los siguientes 3 usuarios dicen gracias a Shell por este post:
  • Grandamakulo, Shordi, tincho
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 2 invitado(s)