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