Grandamakulo   25-09-2021, 17:39
#1
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.
Archivos adjuntos
.zip
Asnos.zip (Tamaño: 32.75 KB Descargas: 5)

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
Shordi   25-09-2021, 18:50
#2
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.

No podemos regresar
tincho   26-09-2021, 11:47
#3
(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.
Última modificación: 26-09-2021, 12:05 por tincho.

1 Saludo.
Grandamakulo   26-09-2021, 15:04
#4
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.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
tincho   26-09-2021, 17:03
#5
(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.

1 Saludo.
Grandamakulo   26-09-2021, 17:18
#6
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
Última modificación: 26-09-2021, 17:24 por Grandamakulo.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.