tincho   30-08-2023, 14:01
#10
(29-08-2023, 19:46)alberto-moyano escribió: utilizo iconos propios (descarto los del sistema adrede), así que ahí tampoco hay problemas.

Si, eso unas veces es deseable y otras no, depende del programa y el nivel de integración que debe tener el programa en el escritorio.
Lo ideal es que el usuario de tu programa pueda elegir el juego de iconos propio o el del tema de escritorio, lo que es mas fácil decirlo que hacerlo.
Yo hice un programa de ejemplo que permite cambiar lo iconos a voluntad, pero requiere una adaptación del programa donde cada botón tiene que tener un .Tag del estilo "actions/document-new" que es como se llama el icono en los diferentes temas de escritorio y entonces luego podes cambiar en tiempo d ejecución el aspecto de la app con un método recursivo como el siguiente:
Código:
'' Este método escanea todos los botones del formulario y les asigna (si corresponde) un icono SVG en el directorio ./var/svg.
'' Por ejemplo, si la etiqueta de un botón es "actualizar", entonces debe existir un icono llamado ./var/svg/actualizar.svg.

Static Public Sub Update(obj As Object, Optional sTheme As String = "default", Optional sLang As String = "en", Optional oTags As Collection)
 
Dim ch As Object
  Dim myclass As Class

  myclass = Object.Class(obj)

  If myclass.Symbols.Exist("Arrangement") Then
    For Each ch In obj.Children
      If Object.Type(ch) = "ToolButton" And Not IsNull(ch.tag) Then
        ch.Picture = TagPic(ch.Tag, ch.W - 7,, sTheme)
        If oTags Then
          If oTags.Exist(sLang) Then
            If oTags[sLang].Exist(ch.Tag) Then
              ch.Tooltip = oTags[sLang][ch.Tag]
            Endif
          Endif
        Endif
      Else
        Update(ch, sTheme, sLang, oTags)
      Endif
    Next
  Endif
End
Nota: el programa lo podes ver en https://gambas-es.org/showthread.php?tid=1422
Última modificación: 30-08-2023, 14:03 por tincho.

1 Saludo.
  
Usuarios navegando en este tema: 1 invitado(s)
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.