Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Codigo para arrastrar un archivo a la aplicación porfavor...

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Codigo para arrastrar un archivo a la aplicación porfavor... Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: Codigo para arrastrar un archivo a la aplicación porfavo Responder citando

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
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.