Shell 22-11-2021, 17:36
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]

Código:
Public Sub Form_Open()

  Dim fichero As String
  Dim ruta As String = "/usr/share/X11/rgb.txt"
  Dim linea As String
  Dim nombredelcolor As String
  Dim posicion As Integer
  Dim ccolores As New Collection
 
  Try fichero = File.Load(ruta)

  For Each linea In Split(fichero, "\n", "'", True, False)
    If Left(linea, 1) = "!" Or IsNull(linea) Then
      Continue
    Else
      'Lugar donde se encuentra el primer caracter tabulador por la derecha
      posicion = RInStr(linea, "\t")
      'El nombre del color se encuentra en una posición más allá del caracter tabulador hasta el final
      nombredelcolor = Mid(linea, posicion + 1)
      'La nueva linea de texto ya no va a contener el nombre del color
      linea = Trim(Left(linea, posicion))
      'Sustituyo todos los caracteres de tabulación por espacios
      linea = Replace(linea, "\t", " ")
      'Añado los valores RGB en decimal como texto y como clave el nombre del color
      ccolores.Add(linea, nombredelcolor)            
    Endif
  Next

  If Error Then
    Print Subst("No encontré el archivo &1 en &2", Split(ruta, "/").last, ruta)
  Else
    Print "He encontrado " & ccolores.Length & " configuraciones de colores con repetición." '753
  Endif
 
  InvertirColeccion(ccolores)
 
End

Public Function InvertirColeccion(clavevalor As Collection) As Collection
    
  Dim valores_clave As New Collection
  Dim valor As String
  Dim clave As String
  Dim aclaves As String[]
 
  For Each valor In clavevalor
    'Obtengo una clave
    clave = clavevalor.Key
    'Compruebo que el valor no existe como clave en valores_clave
    If Not valores_clave.Exist(valor) Then
      'En caso de no existir. Creo un array que va contener las claves que sus valores son iguales
      aclaves = New String[]
      aclaves.Add(clave)
      'Asigno a la coleccion como valores el array de claves y como clave el valor que es el mismo con las claves de clavevalor
      valores_clave[valor] = aclaves
    Else
      'Si ya existe una clave valor, añado otra clave de clavevalor al array
      valores_clave[valor].Add(clave)      
    Endif
  Next
  Print "He encontrado " & valores_clave.Length & " configuraciónes de colores sin repetición " '505
 
  Return valores_clave
 
End


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)
Shell 21-11-2021, 14:59
Buenas!.

No encuentro una forma, la opción o editor adecuado que me muestre los caracteres de escape.
He probado con Xed, con Nano (que debería ser el más adecuado) sin llegar a instalar VIM.
Ver el retorno de carro, el tabulador, etc.

No debería ser difícil. Pero puede ser una opción que no a todos interese.
Recuerdo que Writer mostraba los saltos de línea.

Para poder hacerlo con Writer he tenido que copiar el archivo que es de solo lectura (es del sistema) a la home del usuario.
Y luego en Writer alternar marcas de formato.

Pero, ¿  y el resto de los editores ?

Saludos
Shell 20-11-2021, 16:58
Buenas!.

Una vez creado un grupo de controles y asignado un nombre, parece que no es posible renombrar el grupo y
que se refleje automáticamente en el código.

Si nuestro grupo de controles se llamaba "teclas" y luego queremos renombrarlo a "teclasdeOperaciones" no es reflejado en el código.
Aunque si en sus propiedades.

Código:
Public Sub Form_Open()

  Me.text = ""

End

Public Sub teclas_Click()

  Me.Text = "Has pulsado el botón " & Last.tag

End

Public Sub teclasdeOperaciones_Click()

 
End

Siempre podemos renombrar desde el menú herramientas y usar la opción de remplazar texto.
Pero eso es otra cuestión. Smile

Saludos
Archivos adjuntos
.gz
TestCambioNombreGrupoDeControles-0.0.1.tar.gz (Tamaño: 12.04 KB Descargas: 1)
Páginas (564):    1 353 354 355 356 357 564   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 293
Último miembro: DarkWolf
Temas del foro: 1,742
Mensajes del foro: 9,029
Últimos temas
Ordenar en un TableView
Foro: General
Último mensaje por: Shordi, Hace 10 horas
Respuestas: 3 - Vistas: 71
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,527
Reportes de Gambas
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: Alberto59, 27-10-2025, 16:34
Respuestas: 2 - Vistas: 1,323
Ordenando las carpetas
Foro: Programación en otros lenguajes
Último mensaje por: tercoide, 22-10-2025, 15:57
Respuestas: 0 - Vistas: 102
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.