tincho 17-02-2023, 22:55
Hola amigos.

Si tienen un formulario y desean cambiarles las imagenes a todos a la vez porque, por ejemplo cambia el tema. Supongo que existen varios métodos para hacerlo pero yo expondre el que uso habitualmente por si les resulta util.

Este metodo trabaja con los MenuButton pero valdia para otros controles, la unica condicion es que la propiedad Tag sea tipo String y su valor sea el del nombre base del archivo, por ejemplo "add" si el archivo se llama "add.svg"

Código:
'' This method scans all the buttons on the form and assigns them (if any) an SVG icon in the ./var/svg directory.
'' For example, if the tag of a button is "refresh" then an icon named ./var/svg/refresh.svg must exist.

Static Public Sub Update(obj As Object)
  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" Then
        ch.Picture = TagPic(ch.Tag, ch.W - 7)
      Else
        Update(ch)
      Endif
    Next
  Endif
End

Static Function TagPic(sTag As String, iSize As Integer, Optional iFill As Integer) As Picture
  Dim sVector As String
  Dim pic As Picture
  Dim sPic As String
  sPic = "./var/svg/" & sTag & ".svg"
  If Exist(sPic) Then
    sVector = Contrary(sPic, "#0066b3", -1)
    If iFill > -1 Then
    Endif
    pic = Image.FromString(sVector).Stretch(iSize, iSize).Picture
  Else
    Select iSize
      Case 16, 22, 32, 48, 96, 128, 256
        pic = Stock[CStr(iSize) & "/error"]
      Case Else
        pic = Stock["16/error"]
    End Select
  Endif
  Return pic
End
Shordi 16-02-2023, 21:32
Tengo un problema con este componente: La mitad de sus iconos son nulos.
Si escarbáis en el código del gb.form.stock encontraréis estos dos directorios "gambas" y "gambas-mono" que en sus subdirectorios 32 tienen cada uno 442 elementos.
[Imagen: n6DxNCO.png]

Vale, me interesan esos iconos, tanto los de gambas/32 como los de gambas-mono/32. Quiero que mi aplicación disponga de ellos para usarlos según conviene. Se supone que la clase Picture --que es la puerta de acceso a gb.form.stock-- en su propiedad Icons te da una lista de todos los disponibles y que puedes acceder a ellos con éste código tomado de gambaswiki.org:

Código:
Private Sub DisplayIcons()

  Dim iconKey As String
  Dim iconName As String

  IconViewIcons.Clear()

  For Each iconKey In Stock.Icons

    iconName = "icon:/medium/" & iconKey
    IconViewIcons.Add(iconKey, iconKey, Picture[iconName])

  Next
End

Bien, si lo ejecuto, devuelve una lista de 470 elementos, de los cuales sólo son visibles y por tanto extraíbles 275, el resto devuelven Null. Pero los que se extraen son distintos a su vez de los que se almacenan en el código fuente del gb.form.stock.
Aquí muestro de izquierda a derecha: Los gambas, los gambas-mono y los que he extraído del Stock vía un código similar al de arriba.
[Imagen: wDxKtAm.png]

Sin embargo si en el IDE pulsáis en el botoncito de las propiedades de un elemento que tenga la propiedad picture, como un button por ejemplo, la pantallita que aparece ofrece 470 iconos que son los de la ventana de la derecha más todos los que en el código son null.
Antes de tener que cargar una de las carpetas de la izquierda o del centro, o ambas, en mi programa: ¿Alguien sabe de dónde saca Gambas esos 470 iconos al mostrar el Stock?

Tengo otro problema más, con los iconos, que no os cuento porque depende de la solución a éste...

Saludos
Shordi 16-02-2023, 14:22
El por qué lo pregunto es una historia larga... y triste... pero la pregunta es ¿Todos tenéis estas carpetas con los correspondientes iconos en vuestro home?
[Imagen: a2qA7Qy.png]
Es que no sé si es algo que se cree de manera estándar o si he hecho alguna vez algún tejemaneje que lo haya provocado. Me vendría genial que fuese estándar... pero antes de seguir con lo que llevo entre manos, me gustaría saber la respuesta... mas aún necesito saber la respuesta.

Saludos
Páginas (566):    1 215 216 217 218 219 566   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 295
Último miembro: ncofre98
Temas del foro: 1,748
Mensajes del foro: 9,072
Últimos temas
Problemas con las interru...
Foro: General
Último mensaje por: guizans, 14-12-2025, 18:40
Respuestas: 5 - Vistas: 209
Scrolling un ScrollArea
Foro: Controles/Librerías/Componentes
Último mensaje por: Shordi, 12-12-2025, 07:24
Respuestas: 5 - Vistas: 221
Ordenar en un TableView
Foro: General
Último mensaje por: guizans, 08-12-2025, 23:06
Respuestas: 9 - Vistas: 913
Resultados dispares según...
Foro: Bases de Datos
Último mensaje por: guizans, 04-12-2025, 22:49
Respuestas: 6 - Vistas: 367
Mover un Result a una pos...
Foro: Bases de Datos
Último mensaje por: guizans, 30-11-2025, 19:25
Respuestas: 2 - Vistas: 209
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.