(23-09-2021, 14:08)Shell escribió: ¿ Qué clase usas ?.¿ picture o image ?. ( Siempre juego con las imágenes y estas cosas ).
¿ Es un png ?.
Uso dos métodos:
- Cargar directamente el archivo svg al control
- Cargar por código
El segundo método es el que mas me gusta porque permite hacer algunos cambios al XML del SVG para cambiar el color por ejemplo, pero también se pueden hacer mas cosas, como girar o mover elementos gráficos.
Ejemplo:
Código:
For Each oCont In [pTools]
For Each o In oCont.Children
If Object.Type(o) = "ToolButton" Then
z = (o.h - 8)
sPic = "./svg" &/ o.Tag & ".svg"
If Exist(sPic) Then
svg = dsk.Contrary(sPic, "#0066b3") '' Acá hago el cambio de color según si el tema es oscuro o claro
pic = Image.FromString(svg).Stretch(z, z).Picture
o.Picture = pic
Endif
Endif
Next
Next
Esta es la función del cambiazo
Código:
'' Replace a color in an svg file with one that contrasts with the background of the desktop theme
Public Function Contrary(sFile As String, sColor As String) As String
Dim svg As String
If Application.DarkTheme Then
svg = Replace(File.Load(sFile), sColor & ";", "#eeeeee;")
Else
svg = Replace(File.Load(sFile), sColor & ";", "#000000;")
Endif
Return svg
End
Cuando se usa el método 1 hay que cambiar el filtro debajo porque si no no aparecen los SVG.
Saludos.
(23-09-2021, 16:14)Grandamakulo escribió: Pues mira que trabajo a menudo con svg y no se me había ocurrido.
Desde hace tiempo no uso mas archivos png para los iconos de los formularios.
La calidad de imagen es simplemente perfecta, el tamaño del archivo es muy pequeño, ademas de que es un XML con todas las ventajas de manipulación que eso conlleva.
Saludos.
(23-09-2021, 22:02)tercoide escribió: tengo varios problemas yendo de un a PC otra con el mismo codigo (= S.O. , =gb version)
Tendrías que ir mas allá y comparar todo el sistema entero contra el otro, es de esta forma que vas a ver donde hay una diferencia.
Por ejemplo podes usar
inxi
Mira este tema:
https://gambas-es.org/showthread.php?tid...99#pid3499
Saludos.