| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
ZHAX1 Master

Registrado: 09 Mar 2007Mensajes: 191
|
Publicado: Mar 02 Jun, 2009 5:24 pm Asunto: Codigo para arrastrar un archivo a la aplicación porfavor... |
|
|
| Pues es un codigo que tenia y perdí, necesitaba arrastrar cualquier archivo a mi aplicación y obtener su ruta en un cuadro de texto por ejemplo, gracias. |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 02 Jun, 2009 5:32 pm Asunto: |
|
|
| Código: | void __fastcall TForm1::FormCreate(TObject *Sender)
{
// Para aceptar arrastrar archivos.
DragAcceptFiles(Handle,true);
// Asignación del procesador de mensajes para la aplicación y sus ventanas
Application->OnMessage = AppMessage;
} |
| Código: | // Procesar los mensajes de la aplicación
void __fastcall TForm1::AppMessage(tagMSG &Msg, bool &Handled)
{
// Procesar el mensaje WM_DROPFILES, aquí o en otra función a parte...
if(Msg.message == WM_DROPFILES){
char archivo[MAX_PATH];
int n = DragQueryFile((HDROP)Msg.wParam, 0, archivo, sizeof(archivo));
if(n>0) Procesar(archivo); // Funcion que procesa el archivo
DragFinish((HDROP)Msg.wParam);
Handled = true;
}
}
|
Saludos. |
|
| Volver arriba |
|
 |
vizca321 Lt


Registrado: 06 May 2008Mensajes: 83Ubicación: Mexico
|
Publicado: Lun 08 Jun, 2009 7:31 am Asunto: Re: Codigo para arrastrar un archivo a la aplicación porfavo |
|
|
Prueba este codigo haber si te sirve solo que la aplicacion tiene que estar iniciada
En el archivo.cpp
| Código: |
void __fastcall TForm1::WMDropFiles(TMessage Msg){
char pcName[256];
AnsiString tExt;
int iC, iTotal;
// Le pasamos el parámetro -1 para que nos devuelva el total de ficheros arrastrados.
iTotal = DragQueryFile((HANDLE) Msg.WParam, -1, pcName, 255);
for(iC=0; iC<iTotal>Memo1->Lines->LoadFromFile(pcName);
OpenDialog1->FileName=pcName;
}
// Liberamos el bloque de memoria.
DragFinish((HANDLE) Msg.WParam);
}
//La primera llamada a la función DragQueryFile la utilizamos para que nos
//devuelva el número de ficheros que han sido arrastrados.
//Por ultimo la llamada a l a función DragFinish sirve para liberar el bloque
//de memoria asociado. |
en el archivo.h
| Código: |
//crear un Handler para manejar el evento WM_DROPFILES. Para ello
//debemos incluir el siguiente fragmento de codigo
void __fastcall WMDropFiles(TMessage Msg);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_DROPFILES, TMessage, WMDropFiles)
END_MESSAGE_MAP(TForm) |
|
|
| Volver arriba |
|
 |
|