elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 23:43  


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo, raul338)
| | |-+  ayuda commondialog y texto en picturebox
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda commondialog y texto en picturebox  (Leído 340 veces)
soru13

Desconectado Desconectado

Mensajes: 211



Ver Perfil
ayuda commondialog y texto en picturebox
« en: 17 Abril 2011, 20:43 »

hola, lo que estoy haciendo es que através de un commondialog yo seleccione un archivo y el nombre de este archivo me lo ponga dentro de un picturebox,para ello tengo este código:

Código
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Picture1.Cls
mensaje = CommonDialog1.FileTitle
Me.Picture1.Print mensaje
Else
Picture1.Cls
mensaje = "No se seleccionó ningún archivo"
Me.Picture1.Print mensaje

el caso es que esto me sirve para solo 1 archivo,si vuelvo a seleccionar otro me remplaza la primera línea de texto del picturebox.
Lo que necesito saber es como puedo hacer para que en el commondialog pueda seleccionar varios archivos y al seleccionarlos cuente el número de archivos que se han seleccionado y haga X lineas de texto en el picturebox. ¿Cómo podría hacer esto? Gracias

EDIT: he encontrado éste código que sirve para seleccionar varios archivos en através de common dialog y luego los añade en un listbox.

Código
Option Explicit
 
' Colección para guardar los archivos
Dim mColFiles           As Collection
 
' -----------------------------------------------------------------------------------
' \\ - Sub para agregar los archivos a la colección
' -----------------------------------------------------------------------------------

Private Sub mAddFiles(arrFiles() As String)
 
On Local Error GoTo error_handler
 
   With mColFiles
       ' Si el array tiene un solo elemento, es por que se seleccionó un solo fichero ( Es decir Contiene la ruta completa : Dir + FileName)
       If UBound(arrFiles) = 0 Then
           ' Comprobar que la colección tiene elementos ...
           If .Count > 0 Then
               Call .Add(arrFiles(0), arrFiles(0), 1) ' agregar item en el primer lugar
           ' si no hay elementos ...
           Else
                Call .Add(arrFiles(0), arrFiles(0))
           End If
 
       ' Si no, Hay mas de un archivo ....
       Else
           ' El primer elemento del array es el directorio ( Guardar el path en la variable  )
           Dim sDir As String
           sDir = arrFiles(0)
 
           ' verificar el separador de path
           If Right(sDir, 1) <> "\" Then sDir = sDir & "\"
           ' Los archivos ( solo el nombre sin el path )
             
           Dim i As Integer
           For i = 1 To UBound(arrFiles)
              ' REcorrer el array y agregarlos a la colección
              If .Count > 0 Then
                  Call .Add(sDir & arrFiles(i), sDir & arrFiles(i), 1) 'agregar primero
              Else
                  Call .Add(sDir & arrFiles(i), sDir & arrFiles(i))
              End If
            Next
       End If
   End With
Exit Sub
error_handler:
If Err.Number = 457 Then
   Resume Next ' ignorar error cuando se agrega el mismo archivo
Else
   MsgBox Err.Description
End If
End Sub
 
' -----------------------------------------------------------------------------------
' \\ - Botón para seleccionar los archivos
' -----------------------------------------------------------------------------------
Private Sub cmdAddFiles_Click()
 
   On Local Error Resume Next
 
   ' Configurar el cuadro de diálogo
   ' ---------------------------------------------------------
   With CD
       ' Limpiar la propiedad FileName
       .FileName = vbNullString
       ' Establecer Flag para poder seleccionar múltiples archivos desde el cd
       .Flags = .Flags Or cdlOFNExplorer Or cdlOFNAllowMultiselect
 
       ' Tamaño de Buffer para el FileName
       .MaxFileSize = 32767 ' <- máximo 32 K
       
       ' Establecer filtro
       .Filter = "Todos los Archivos|*.*"
 
       ' Abrir
       .ShowOpen
 
       ' Verificar que el FileName no sea una cadena vacía
       If .FileName <> vbNullString Then
 
          ' Array para obtener las rutas
          Dim arrPaths() As String
          arrPaths = Split(.FileName, Chr(0))
 
 
          ' Enviar array de archivos para agregar a la colección
          Call mAddFiles(arrPaths)
          Erase arrPaths
 
          ' Actualizar listado
          Call mUpdateList(lstFiles)
       End If
 
       .FileName = vbNullString
 
   End With
 
   ' Error
   Exit Sub
error_handler:
   MsgBox Err.Description, vbCritical
 
End Sub
 
 
' -----------------------------------------------------------------------------------
' \\ - Actualizar el contenido del listbox
' -----------------------------------------------------------------------------------

Private Sub mUpdateList(lBox As ListBox)
   With lBox
       ' limpiar listbox y volver a cargar
       .Clear
       Dim xItem As Variant
       ' recorrer items de la colección
       For Each xItem In mColFiles
           .AddItem CStr(xItem)
       Next
       ' seleccionar el primero
       If .ListCount > 0 Then
           .ListIndex = 0
           .SetFocus
       End If
   End With
End Sub
 
' -----------------------------------------------------------------------------------
' \\ - Eliminar todo
' -----------------------------------------------------------------------------------
Private Sub cmdClear_Click()
   Set mColFiles = Nothing
   Set mColFiles = New Collection
   Call mUpdateList(lstFiles)
End Sub
 
' -----------------------------------------------------------------------------------
' \\ - Eliminar selección
' -----------------------------------------------------------------------------------

Private Sub cmdDelete_Click()
   Dim i As Integer
   ' recorrer items y comprobar si se encuentran seleccionados
   With lstFiles
       For i = 0 To .ListCount - 1
           If .Selected(i) Then
               Call mColFiles.Remove(.List(i)) ' eliminar con el método Remove el item de la colección
           End If
       Next
   End With
   ' volver a cargar los items en el control
   Call mUpdateList(lstFiles)
End Sub
 
 
Private Sub Form_Load()
 
   ' Crear nueva colección para guardar los archivos
   Set mColFiles = New Collection
 
   cmdAddFiles.Caption = "Agregar archivos"
   cmdDelete.Caption = "Eliminar selección"
   cmdClear.Caption = "Eliminar todo"
 
End Sub

Este código me sería muy útil si me sacara sólo los nombres de los archivos y no la ruta de los archivos seleccionados,pero si cambio el .FileName por .FileTitle me da error y no me deja. ¿Alguien sabe porque? Gracias


« Última modificación: 17 Abril 2011, 23:32 por soru13 » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON EL PICTUREBOX
Programación Visual Basic
IvanUgu 3 500 Último mensaje 10 Julio 2005, 02:51
por IvanUgu
CommonDialog
Programación Visual Basic
NYlOn 1 452 Último mensaje 30 Diciembre 2005, 09:37
por wuepe
ayuda con picturebox « 1 2 »
Programación Visual Basic
titan6146 19 3,472 Último mensaje 20 Noviembre 2009, 21:36
por MCKSys Argentina
Ayuda con PictureBox [Vb.Net]
.NET
Keyen Night 1 2,930 Último mensaje 4 Abril 2010, 00:01
por raul338
[Ayuda]Reconocer contornos Picturebox
Programación Visual Basic
79137913 2 908 Último mensaje 6 Diciembre 2010, 11:48
por 79137913
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines