Sección de códigos , trucos y ejemplos para visual basic
<Volver> - Anterior - Siguiente
Contenido
Ejemplo actualizado para poder arrastrar ficheros y directorios hacia nuestra aplicación utilizando un módulo de clase
El proyecto tiene un formulario que permite arrastrar los archivos hacia un ListBox. también tiene dos funciones para poder recuperar el ícono asociado mediante el Api ExtractAssociatedIcon, y la descripción del mismo usando la función Api SHGetFileInfo
Nota: El drag se puede realizar solo en controles que posean la propiedad Hwnd
Para usar el módulo se debe instanciar con WithEvents para poder usar el evento que se dispara cuando se están colocando archivos en el control.
Para obtener los elementos arrastrados se debe usar el evento DragFiles, que tiene como parámetro el Path, el Hwnd del objeto, y un parámetro opcional para saber el tipo : : Directorio, Archivo o Root Path
Para iniciar la operación de arrastre, ejecutar el método InitDrag, y para detener el método TerminateDrag, pasándole a las dos funciones los hwnd de los controles
Ejemplo que muestra como podemos por ejemplo arrastrar archivos desde Windows hacia un ListBox, y que aparezcan las rutas de los mismos en el control.
Las funciones Api que se utilizan para realizar esto son: DragAcceptFiles, DragQueryFile, SetWindowLong y CallWindowProc
Formulario con las rutas al hacer el drag de los archivos y directorios
Ejemplo
Código fuente en un módulo bas
Código fuente en un formulario
Este ejemplo utiliza los eventos de vb, en este caso el evento Ole_DragDrop. El evento Ole_DragDrop posee un parámetro llamado Data. Este es un objeto que contiene, entre otros, una colección con los archivos que se están arrastrando. Entonces si ocurre el evento de Drag, se recorre mediante un bucle For Each Next, y se añaden a un control ListBox
Ejemplo
Este ejemplo es idéntico al anterior, pero antes de añadirlos al control listbox, se agregan las rutas de los archivos a una colección. Como cada item tiene una clave, si se intenta añadir una clave que ya existe se producirá el error 457 "El item ya se encuentra asociado a un elemento de la colección" , en ese caso se ignora y no se añade para evitar los elementos repetidos.
Buscar en Recursos vb
Recursos visual basic - Buscar - Privacidad - Copyright © 2005 - 2009 - www.recursosvisualbasic.com.ar