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 (564):    1 213 214 215 216 217 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, Ayer, 18:41
Respuestas: 3 - Vistas: 77
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 02-11-2025, 13:36
Respuestas: 9 - Vistas: 1,529
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.