Drag & Drop para obtenr nombre y ruta de archivo
Hola. Nunca he realizado esto y no logro entenderlo :confused:
Quisiera arrastrar un archivo cualquiera, sea texto, video o imagen a un TImage y que la ruta de este, aparezca en un TEdit. Ayuuuuuuda!!! |
¿Arrastrar texto o "lo que sea" a un TImage?
|
Cita:
|
Add ShellAPI and Messages to your project's uses:
Add a method to your form that handles the WM_DROPFILES message. For example, the following would be placed in the TForm1 declaration in the protected section: Drag 'n' drop are activated by calling: and deactivated by calling: It is normal to activate drag 'n' drop in the OnCreate event, and deactivate it in the OnClose or OnDestroy events: This first procedure will enable you to drop files one at a time:
|
Antes de usar DragAcceptFiles y DragQueryFile deberías deshabilitar el filtro para los mensajes WM_DROPFILES y WM_COPYGLOBALDATA con la API ChangeWindowMessageFilterEx.
Saludos. |
Cita:
No es complicado. Entendiendo los pasos, con unas pocas líneas se puede conseguir. Necesitas un componente que reciba los ficheros; En este ejemplo he usado un panel, pero puede ser un TImage, el formulario completo,... En este caso admite varios ficheros; En ese caso llamará varias veces al procedimiento AddFiles. Añado el ejemplo completo al FTP del Club. He colocado un panel en el formulario y le he llamado pnlArrastrar. Y te adjunto el código necesario con los comentarios necesarios.
|
Aunque ya se ha respondido, te amplio algo que yo utilizo, por si te esclarece más, que yo la primera vez me costó un poco:
Por ejemplo, para que el receptor del drag-and-drop sea un tmemo en tu form, puedes ampliar la clase TMemo con
y estos metodos escribirlos:
con esto, cualquier tmemo que incluyas en tu form podra ser receptor de drag and drop, por ejemplo para cargar en el el contenido del fichero si es de tipo texto. Tambien podrías cambiarlo para aplicarlo sobre un tedit y que el receptor fuera el tedit.... |
Neftali, hemos 'chocado'.
Pero ¿porque no se ve mi codigo bien? cuando he previsualizado lo veía bien antes de enviarlo..... |
Cita:
Cita:
Es un error antiguo de vBulletin. A veces cuando se usa la vista previa, se hace un lío con las etiquetas... |
Cita:
|
La franja horaria es GMT +2. Ahora son las 01:22:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi