Comunidad Gambas-es
Cambios dinámicos en SVG: ASNOS, el proyecto interminable - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Cambios dinámicos en SVG: ASNOS, el proyecto interminable (/thread-638.html)



Cambios dinámicos en SVG: ASNOS, el proyecto interminable - Grandamakulo - 25-09-2021

Hola, compañeros:
Como se ha hablado por ahí de SVG, quería mostraros cómo creo directamente y modifico dinámicamente archivos de este tipo con una aplicación de tarjetas. Cada control tiene su ToolTip por si alguien se siente perdido:
[Imagen: 2021-09-25-17-36.png]
[Imagen: 2021-09-25-17-20.png]
Sí, es cierto, uno con mi tema claro y otro con mi tema oscuro, jajaja.


RE: Cambios dinámicos en SVG: ASNOS, el proyecto interminable - Shordi - 25-09-2021

Gracias por el aporte. Está guay.

Mipunto de vista:  Te sobran opciones. Elige el color de fondo y el tipo de letra y crea el SVG de nota... a lo más un combobox con formatos predeterminados (Pósit, Nota de cuaderno, etc.).El que se pone una nota de escritorio no desea estar configurando opciones como si fuese a maquetar un libro, desea algo rápido y dinámico.

Aún así, en mi inmensa ignorancia, no sabía que se podían manipular así imágenes SVG. Mola.


Saludos.


RE: Cambios dinámicos en SVG: ASNOS, el proyecto interminable - tincho - 26-09-2021

(25-09-2021, 18:50)Shordi escribió: Aún así, en mi inmensa ignorancia, no sabía que se podían manipular así imágenes SVG. Mola.

Bueno, en realidad SVG no es una imagen, es un diagrama vectorial, donde cada elemento esta parametrizado y es susceptible de cambio.
Saludos.

Grandamakulo:
Me parece interesante el método Redibuja() que es el que altera el svg.
¿Para que es el programa exactamente?
[Imagen: gwNEKig.png]
En mi escritorio se ve con el texto muy pequeño, fijate que en el ide se ve mas grande y luego en tiempo de ejecución se ve mas pequeño.

[Imagen: FyFohuq.png]

Saludos.


RE: Cambios dinámicos en SVG: ASNOS, el proyecto interminable - Grandamakulo - 26-09-2021

Hola, Tincho:
Lo del tamaño de la fuente, pues no tengo ni idea, a mí me pasa lo mismo, pero lo achacaba a que tengo el escritorio escalado y no todas las aplicaciones lo llevan demasiado bien —tuve que desinstalar LMMS porque era imposible leer los menús—.
En cuanto a la aplicación, trataba de montar notas en el escritorio, de tal manera que un icono gigante —del tamaño de una nota Tongue— tuviese el texto en imagen y que al hacer doble click se abriese ASNOS con el contenido de la nota, guardado en una BD. Es decir, que creaba un acceso directo a ASNOS con esa nota en concreto como argumento, cuyo icono era precisamente una imagen de la nota. No sé si me he explicado, que soy muy farragoso. Pero lo dejé por imposible hace ya tiempo, si bien la idea de las tarjetas SVG se me ha ocurrido emplearla en otras cosas.
Shordi:
Gracias por el comentario. Sí, soy farragoso escribiendo, soy farragoso programando y soy farragoso en general, jajaja. Si fuese a terminar la aplicación algún día, tendré en cuenta la simplificación. Me parece muy adecuada.



RE: Cambios dinámicos en SVG: ASNOS, el proyecto interminable - tincho - 26-09-2021

(26-09-2021, 15:04)Grandamakulo escribió: Pero lo dejé por imposible hace ya tiempo, si bien la idea de las tarjetas SVG se me ha ocurrido emplearla en otras cosas.

Si, es muy útil para hacer informes o reportes , facturas y albaranes o recibos.
Yo use un svg y una función en gambas para crear las fichas de cada tipo de variedad de plantas y semillas de Solanum 1 y funcionaba de maravilla.
Saludos.


RE: Cambios dinámicos en SVG: ASNOS, el proyecto interminable - Grandamakulo - 26-09-2021

Por cierto, lo que sí he tenido que programar es el ajuste de línea, porque SVG, que yo sepa —pero soy muy, muy, muy ignorante— no tiene ni ajuste automático ni wrap ni nada de eso.

Código:
  
  Dim fFuente As New Font
  Dim sPalabras As String[]
  Dim sLineas As New String[]
  Dim sLinea As String
  Dim sParrafos As New String[]
  Dim sPaso As String
  Dim i As Integer
  Dim j As Integer
  
  Dim iFactor As Float = 12 / Desktop.Scale
  
  fFuente.Name = sFuente
  fFuente.Size = iFuente
  
  If sTexto = "" Then Return [""]
  
  sParrafos = Split(sTexto, gb.Lf)
  For i = 0 To sParrafos.Max
    sPalabras = Split(sParrafos[i], " " & gb.Lf)
    For j = 0 To sPalabras.Max
      sPaso &= sPalabras[j] & " "
      If fFuente.TextWidth(sPaso) > iAncho * iFactor Then 
          sLineas.Add(sLinea)
          sLinea = sPalabras[j] & " "
          sPaso = sLinea
        Else 
          sLinea = sPaso
      Endif
    Next
    sLineas.Add(sLinea)
    sLinea = ""
    sPaso = ""
  Next 
  
  Return sLineas
  
End