Páginas (2): 1 2   
Shordi   06-09-2024, 12:19
#1
Pues eso: Alguien preguntó en YouTube si además de cadena, números, Arrays y colecciones, se podían almacenar Imágenes en un archivo de la clase Settings.


No podemos regresar
Shell   06-09-2024, 13:52
#2
¿ Cuál es el vídeo que explicas el uso de los settings ?.

¿ El de 55 minutos ?. Pero ese tiene cuatro meses, no es de hace poco. ¿ "La clase settings y los controles adaptables" ?.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   06-09-2024, 17:20
#3
Es el de "Sin base de datos de Flexi por la Steet". Blush Big Grin Big Grin Big Grin

No podemos regresar
Shell   07-09-2024, 11:28
#4
No olvides hacerte pequeñito.. Big Grin

Cuestión:

Imagina que haciendo pruebas con un proyecto que usa la clase settings, este proyecto se llama igual que otro
que ya habías usado anteriormente y no te acuerdas de esto.

Por ejemplo:

Hiciste un proyecto que se llama. EjemploConLaClaseSettings
Y con el paso de los años haces otro que se llama igual y al cerrarse este, se graba los settings.

¿ Qué le pasa al archivo de los settings ".conf" ?.

Pues parece que se mezcla o se añade ajustes del anterior con el nuevo.
No se elimina. Parece que Gambas busca, añade y modifica zonas del archivo cuando cerramos el proyecto.

Saludos
Última modificación: 07-09-2024, 11:59 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   07-09-2024, 17:54
#5
Cita:Pues parece que se mezcla o se añade ajustes del anterior con el nuevo.
No se elimina. Parece que Gambas busca, añade y modifica zonas del archivo cuando cerramos el proyecto.

¡Equilicuatre! y esa es la flexibilidad que te permite ir de Flexi by the Street. Los valores de la versión antigua se mantienen y la versión antigua sigue funcionando (a no ser que se cambie el tipo de dato del valor, aunque se me hace difícil pensar que a un valor concreto, digamos "Título" de tipo String, ahora sea un número o un array... ) y la Nueva también. ¡Everybody is Happy!

No podemos regresar
Shell   08-09-2024, 12:13
#6
Quise improvisar y realicé este código, sin ver el tuyo "aún". Funcionar funciona, pero por algún motivo la imagen
pierde tamaño por la parte inferior. No sé si es la constante del control picturebox o la distribución del formulario,
incluso sus propiedades de margin o spacing. Desde luego el orden de la instrucciones es fundamental.

Código:
Private rutaimagen As String

Public Sub Form_Open()

  Settings.Read(Me)

  With Me
    .Arrangement = Arrange.Vertical
    .Margin = True
    .Spacing = True
    .Center()
  End With

  With PictureBox1
    .Expand = True
    .Mode = PictureBox.Cover
  End With

  If Not IsNull(Settings["MiImagen"]) Then
    rutaimagen = Settings["MiImagen"]
    PictureBox1.Picture = Picture.Load(rutaimagen)
  Endif

End

Public Sub btnCargImagen_Click()

  Dialog.Filter = ["*.png", "Portable Network Graphics"]
  If Dialog.OpenFile() Then Return
  rutaimagen = Dialog.Path
  PictureBox1.Picture = Picture.Load(rutaimagen)
  Me.Resize(PictureBox1.Picture.W, PictureBox1.Picture.H)

End

Public Sub Form_Close()

  Settings.Write(Me)
  Settings["MiImagen"] = rutaimagen
  Settings.Save()

End

Saludos
Archivos adjuntos
.gz
TestImagenConSettings-0.0.1.tar.gz (Tamaño: 7.07 KB Descargas: 0)

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   08-09-2024, 14:58
#7
Ya he visto el error.

Código:
Me.Resize(PictureBox1.Picture.W, PictureBox1.Picture.H)

Cambia el tamaño del formulario según el tamaño de la imagen que contiene el picturebox...pero es que en el
formulario también existen un botón.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   08-09-2024, 19:08
#8
Yo lo haría así:
Código:
' Gambas class file
    Private rutaimagen As String
     
    Public Sub Form_Open()
     
      Settings.Read(Me)
     
      With Me
        .Arrangement = Arrange.Vertical
        .Margin = True
        .Spacing = True
        .Center()
      End With
     
      With PictureBox1
        .Expand = True
        .Mode = PictureBox.Cover
      End With
     
        rutaimagen = Settings["MiImagen", ""]
        If rutaimagen Then PictureBox1.Picture = Picture.Load(rutaimagen)
          
    End
     
    Public Sub btnCargImagen_Click()
     
      Dialog.Filter = ["*.png", "Portable Network Graphics"]
      If Dialog.OpenFile() Then Return
      rutaimagen = Dialog.Path
      PictureBox1.Stretch = True  'Con esta propiedad es la imagen la que acopla al tamaño del PictureBox
      PictureBox1.Picture = Picture.Load(rutaimagen)
      'Me.Resize(PictureBox1.Picture.W, PictureBox1.Picture.H)
     
    End
     
    Public Sub Form_Close()
     
      Settings.Write(Me)
      Settings["MiImagen"] = rutaimagen
      Settings.Save()
     
    End

Pero el vídeo no va de almacenar la ruta de la imagen, va de almacenar la propia imagen.

Saludos
Última modificación: 08-09-2024, 19:09 por Shordi.

No podemos regresar
Shell   08-09-2024, 21:57
#9
(08-09-2024, 19:08)Shordi escribió: PictureBox1.Stretch = True  'Con esta propiedad es la imagen la que acopla al tamaño del PictureBox

Pero si usas esto, el tamaño de la imagen es "adaptada" al control.

Más que esa propiedad, prueba a ver las distintas constantes del picturebox.Mode
Puedo decirte que son más interesantes. Como si el método .Strech fuese algo más anterior al método .Mode
 
Cita: 
PictureBox.Normal    The picture is displayed at it’s original size. No attempt is made to fit the picture to the size of the PictureBox.
PictureBox.Fill    The picture is stretched to fit both the width and height of the PictureBox. Proportionality of the picture is not maintained.
PictureBox.Cover    The picture proportionality is maintained. The entire PictureBox height and width is filled.
PictureBox.Contain    The picture proportionality is maintained. The entire picture is displayed and stretched for best fit.
PictureBox.Repeat    The picture is displayed at it’s original size and repeated. The entire PictureBox height and width is filled.

La idea del código es que se pueda mostrar la imagen con su tamaño original en el control Picturebox.
Y que tengas un botón para poder seleccionar otra imagen ( es solo un ejemplo ).

Naturalmente  la cosa cambia si las dimensiones de la imagen fuese mucho mayor que las dimensiones del escritorio.
De principio estoy probando con imágenes que no superan 1920x1080.
 
(08-09-2024, 19:08)Shordi escribió: rutaimagen = Settings["MiImagen", ""]

En el valor por defecto no había pensado. Aquí se puede aplicar ademas la instrucción "IIF".
 
Cita:Pero el vídeo no va de almacenar la ruta de la imagen, va de almacenar la propia imagen.

 No he llegado a verlo entero. Me falta la mitad. Shy

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   09-09-2024, 13:37
#10
Algo que comentarte.

A lo largo de la creación del archivo settings se van creando una serie de valores que lógicamente (es un video tutorial).
Y estos valores la aplicación no los va a utilizar "todos".

Si un archivo settings se inicializa por cada ejecución, tampoco seria su cometido.
Tampoco vamos abrirlo manualmente y borrar pues un valor obsoleto.

Ejemplo creo un setting al principio.

Pelo="rubio"

Y ahora voy y ya no me gusta lo que tenía y decido cambiarlo. ( Suponiendo que esto es lo que se escribe en el archivo )

Colordepelo="rubio"

Lógicamente podemos crear otro. Si lo tiene corto, largo, sin pelo, que ya seria una colección.
Pero claro en el archivo setting se ha quedado una información que no se va a utilizar.

No es algo que vaya a crear problemas. Ni al usuario tampoco, es algo que se crea cuando estamos
desarrollando la aplicación.

Saludos
Última modificación: 10-09-2024, 12:10 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 5 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.