Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - Drag and Drop
Forum - Delphi - Drag and Drop

Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 23:28
Venerdì, 16/07/2010
salve,
ho una listbox o un Tmemo e vorrei che trascinando un file qualsiasi sopra,
mi apparisse dentro uno di questi due oggetti, il percorso del file.

ho anche un Timage e vorrei che trascinandoci sopra un file di immagine
venga caricato subito nel componente.

come devo fare?

PM Quote
Avatar
Saladino (Member)
Pro


Messaggi: 90
Iscritto: 30/05/2010

Segnala al moderatore
Postato alle 12:03
Sabato, 17/07/2010
All'evento OnCreate, o a qualcun'altro, associ :
Codice sorgente - presumibilmente Delphi

  1. dragAcceptFiles( Handle, True ); // permette di accettare file trascinati



Metti questo nella parte private della tua classe form

Codice sorgente - presumibilmente Delphi

  1. private
  2.  
  3. procedure OnDroppedFiles( var Msg : TMessage ); message WM_DROPFILES; // per accettare file trascinati



Poi,

Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.OnDroppedFiles(var Msg: TMessage);
  2. const
  3.    MAXCHARS = 254;
  4. var
  5.    hDroppedFile : tHandle; //è l'identificatore del nostro file
  6.    bFilename : Array[ 0..MAXCHARS ] of char;// il nome del file
  7.    intNFiles : integer;
  8.    intCounter : integer;
  9.    strFilename : String;
  10. begin
  11.  
  12.    strFilename := '';
  13.    hDroppedFile := Msg.wParam;
  14.    intNFiles := dragQueryFile( hDroppedFile, uint(-1),
  15.                                bFilename, MAXCHARS );
  16.       for intCounter := ( intNFiles - 1 ) downto 0 do
  17.       begin
  18.  
  19.          dragQueryFile( hDroppedFile, intCounter,
  20.                         bFilename, MAXCHARS ); //bFileName è il percorso
  21.         ShowMessage(bFileName);
  22.       end;  
  23.    dragFinish( hDroppedFile );
  24. end;



Ricordati di includere shellapi.

PM Quote
Avatar
systemgvp (Normal User)
Expert


Messaggi: 296
Iscritto: 14/04/2008

Segnala al moderatore
Postato alle 15:07
Sabato, 17/07/2010
grazie, era proprio ciò che serviva a me

PM Quote