https://foro.gambas-es.org/viewtopic.php?f=1&t=7496&p=44691#p44691
-----------------------------------
Shell
Sabado, 11 May 2019, 09:31

Ejemplo De Navegador De Imágenes
-----------------------------------
Buenos días!.

Me encuentro un problema con DirView, o me ocupa poco o me ocupa mucho en el formulario.
¿ Conocéis el programa Pix ?. Donde se encuentra el arbol de directorio no es movible automáticamente.
No se ensancha al aumentar el tamaño del formulario ( algo de contenedores es la solución).

Podía hacer que no se desplazara el área que ocupa DirView, pero si el directorio es algo largo a lo mejor no se ve su nombre.
He usado un HSplit.

Este es su código:

[code linenumbers=false syntax=gambas]
Const ANCHOIMAGEN As Integer = 128
Const ALTOIMAGEN As Integer = 128 

Private HPanel1 As HPanel

Public Sub Form_Open()
  
  ScrollView1.Arrangement = Arrange.Vertical  
  'Clave 
  HSplit1.Layout = [2, 4]
  
  'Esto no se puede usar dentro del procedimiento CrearImagenes, crearía un hPanel por cada cambio de directorio  
  HPanel1 = New HPanel(ScrollView1)  
  HPanel1.Spacing = True 
  HPanel1.AutoResize = True
  
End

Public Sub CrearImagenes(cimagenes As String[], Optional ruta As String = User.Home &/ "Imágenes/")
  
  Dim unpicturebox As PictureBox
  Dim unaimagen As Image  
  Dim i As Integer
  
  For i = 0 To cimagenes.Max
    unaimagen = Image.Load(ruta &/ cimagenes[i])       
    unaimagen = unaimagen.Stretch(ANCHOIMAGEN, ALTOIMAGEN)
    
    unpicturebox = New PictureBox(HPanel1)         
    With unpicturebox
      .W = ANCHOIMAGEN
      .H = ALTOIMAGEN
      .Border = Border.Solid 
      .Picture = unaimagen.Picture
    End With     
  Next
  
End

Public Sub DirView1_Select()
  
  Dim nomimagenes As New String[]
  
  'Limpiar los objetos picturebox contenido dentro del HPanel1
  HPanel1.Children.Clear
  
  'Voy añadiendo al array los tipos de imagenes que quiero que muestre
  nomimagenes = Dir(DirView1.Current, "*.png", gb.File)  
  nomimagenes.Insert(Dir(DirView1.Current, "*.jpg", gb.File))
  CrearImagenes(nomimagenes, DirView1.Current)
  
End
[/code]

Y aquí el ejemplo. No he añadido ver la imagen al completo, no me interesa por ahora.
Lo tengo reservado para otra cosa. :-)

A ver que me decís del problema del tamaño que ocupa DirView en el formulario al expandir el formulario o al reducirlo.

Saludos


