FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Nombres de archivos seleccionados
Buen dia
quisiera implementar la funcionalidad de que el usuario pueda seleccionar varios archivos desde el explorador de windows y "capturar" los nombres de esos archivos (incluyendo la ubicacion), para agregarlos a una base de datos. No se ni como empezar. Supongo que algo tiene que ver con DRAG and DROP, pero tengo un ejemplo (abajo), pero no hace nada : Código:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,ShellAPI; type TForm1 = class(TForm) Memo1: TMemo; procedure FormCreate(Sender: TObject); public { Public declarations } protected procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Self.Handle, true); end; procedure TForm1.WMDropFiles(var Msg: TWMDropFiles); var DropH: HDROP; // drop handle DroppedFileCount: Integer; // number of files dropped FileNameLength: Integer; // length of a dropped file name FileName: string; // a dropped file name I: Integer; // loops thru all dropped files DropPoint: TPoint; // point where files dropped begin inherited; // Store drop handle from the message DropH := Msg.Drop; try // Get count of files dropped DroppedFileCount := DragQueryFile(DropH, $FFFFFFFF, nil, 0); // Get name of each file dropped and process it for I := 0 to Pred(DroppedFileCount) do begin // get length of file name FileNameLength := DragQueryFile(DropH, I, nil, 0); // create string large enough to store file SetLength(FileName, FileNameLength); // get the file name DragQueryFile(DropH, I, PChar(FileName), FileNameLength + 1); ShowMessage(FileName); Memo1.Lines.Add(Filename); // process file name (application specific) // ... processing code here end; // Optional: Get point at which files were dropped DragQueryPoint(DropH, DropPoint); // ... do something with drop point here finally // Tidy up - release the drop handle // don't use DropH again after this DragFinish(DropH); end; // Note we handled message Msg.Result := 0; end; Última edición por ArtPortEsp fecha: 28-01-2021 a las 21:18:44. |
#2
|
||||
|
||||
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Cita:
Amigo, antes que nada, muchas gracias por la aportación, sin embargo, el código referido tampoco funciona... simplemente no hace nada al arrastrar un archivo, ni al listbox ni a la forma. Estaré pasando alguna propiedad por alto? |
#4
|
||||
|
||||
Revisa el código completo.
Hay que capturar el mensaje(1), asignarlo al componente que recibe los ficheros(2) y configurar en el OnCreate la redirección del mensaje(3). Revisa que tienes las tres cosas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Cita:
en algun evento? |
#6
|
||||
|
||||
Hola a todos,
Revisa también que tu aplicación no esté corriendo con "derechos de administrador": esto también se puede dar si corres la app desde Delphi y has ejecutado este con esos derechos. El caso es que si es así (si tu aplicación tiene "derechos de administrador") no podrás arrastrar archivos desde el Explorador de Windows, al menos si este corre sin dichos derechos, que, me parece que es lo normal, por decirlo así. |
#7
|
||||
|
||||
Hola a todos,
Cita:
Es decir, "DragAcceptFiles" usa el "Handle" del formulario "TformMenuPrincipal", en este caso. |
#8
|
|||
|
|||
Cita:
|
#9
|
|||
|
|||
Tal cual... funciono sin problema al ejecutar la aplicación fuera del IDE (sin permisos de administrador)
Agradezco a todos su ayuda, excelente día, éxito siempre |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como hacer que un DBLookupComboBox muestre un historico de nombres seleccionados? | mematanlimon | OOP | 4 | 28-01-2010 18:00:35 |
Abrir archivos con nombres de archivos de otra codificación. | matabyte | Windows | 2 | 01-05-2008 01:40:13 |
Extensión en nombres de archivos de fuente | Ñuño Martínez | Varios | 6 | 05-07-2007 14:45:56 |
Problemas con los nombres de los archivos | Alcolea | Varios | 4 | 15-02-2007 15:49:05 |
como obtener los nombres de archivos de un directorio | ilichhernandez | Varios | 3 | 14-07-2006 17:49:57 |
|