Shell   22-09-2024, 12:38
#1
Buenas!

La idea central del ejemplo es cargar y mostrar una imagen en su control Picturebox, sin importar su tamaño.
La imagen puede ser más pequeña o más grande que el propio formulario.

El ejemplo mostrará la imagen y recordará mediante los settings, la imagen (su ruta, nombre).
Así ademas podemos abrir el dialogo en la última ruta donde estuvimos. Si es que queremos ver más imágenes.

Este es el formulario

[Imagen: RKR2e1g.png]

Aquí su distribución:

Código:
Public Sub MostrarImagen(unaimagen As Picture)

  'Aquí se encuentra toda la distribución de los organizadores/contenedores del formulario
  'He dejado a posta el borde activo para ver como se muestra el espacio ocupado

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

  With Panel1
    .Arrangement = Arrange.Vertical
    .Spacing = True
    .Margin = True
    .Border = Border.Plain
  End With

'Contenedor padre del PictureBox
  With Panel2
    .Arrangement = Arrange.Horizontal
    .Expand = True
  End With

  With PictureBox1
    .Border = Border.Plain
    .Picture = unaimagen
    .Expand = True
    .Mode = PictureBox.Contain 'La imagen se estrecha para que se ajuste a su contenedor
  End With

  'El efecto de maximizar puede cambiar la distribución de la imagen y mostrarse de un tamaño distinto o su ajuste en su contenedor

End

Y aquí todo el código completo del ejemplo:

Código:
Private nomimagen As String
Private rutadeimagenes As String

Public Sub Form_Open()

  Dim unaimagen As Picture

  Me.Title = "Ejemplo con Organizadores"

  Settings.Read(Me)

  'Imagen por defecto
  nomimagen = Settings["Imagen", "Gambas3.png"]
  rutadeimagenes = File.RealPath(nomimagen)

  unaimagen = Picture.Load(nomimagen)
  MostrarImagen(unaimagen)

End

Public Sub MostrarImagen(unaimagen As Picture)

  'Aquí se encuentra toda la distribución de los organizadores/contenedores del formulario
  'He dejado a posta el borde activo para ver como se muestra el espacio ocupado

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

  With Panel1
    .Arrangement = Arrange.Vertical
    .Spacing = True
    .Margin = True
    .Border = Border.Plain
  End With

  With Panel2
    .Arrangement = Arrange.Horizontal
    .Expand = True
  End With

  With PictureBox1
    .Border = Border.Plain
    .Picture = unaimagen
    .Expand = True
    .Mode = PictureBox.Contain 'La imagen se estrecha para que se ajuste a su contenedor
  End With

  'El efecto de maximizar puede cambiar la distribución de la imagen y mostrarse de un tamaño distinto o su ajuste en su contenedor

End

Public Sub btLoadPicture_Click()

  Dim unaimagen As Picture

  Dialog.Title = Application.Name & ": Selecciona archivo"
  Dialog.Filter = ["*.jpg;*.jpeg;*.png;*.bmp;*.ico;*.xpm", "Ficheros de imágenes"]
  Dialog.Path = rutadeimagenes
  If Dialog.OpenFile() Then Return
  nomimagen = Dialog.Path
  unaimagen = Picture.Load(nomimagen)
  MostrarImagen(unaimagen)

End

Public Sub btnExit_Click()

  Me.Close

End

Public Sub Form_Close()

  Settings.Write(Me)
  Settings["Imagen"] = nomimagen
  Settings.Save()

End

Se debe probar con distintas imágenes para ver que hace con las dimensiones.
Por defecto he usado la del logo de Gambas3. Pero se puede usar otras del pc, cargando la que os interese.

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

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