Recent

Author Topic: Drag & Drop file  (Read 15216 times)

Fabio

  • New Member
  • *
  • Posts: 13
Drag & Drop file
« on: October 15, 2011, 12:10:03 pm »
Xinyiman ( orca che nick che hai, mi si intrecciano le dita a scriverlo ), ho visto che hai aperto un thread ( http://www.lazarus.freepascal.org/index.php/topic,10375.msg51244.html#msg51244 ) l'anno scorso per questioni che riguardavano il drag & drop, hai poi risolto qualcosa ?

Io ho un toolino per sistemi Windows fatto a cui non dispiacerebbe la cosa di mangiarsi i nomi dei file solo trascinandoseli sulla pancia invece di usare lo sfoglia ogni volta.

In pratica ho un TListView che popolo dopo aver prima scelto il file con un TOpenDialog, potessi infilarci i file con il Drag&Drop risparmierebbe un 10-12 apri-scegli-clicca ogni volta.

Ho trovato alcune soluzioni in giro che fanno tutte riferimento a codici Delphi ma non sono riuscito ad implementarne nemmeno una e poi mi sono rotto le scatole :D

Se ci hai già sbattuto il naso una dritta è ben accetta.
« Last Edit: October 15, 2011, 05:33:58 pm by Fabio »

xinyiman

  • Hero Member
  • *****
  • Posts: 2256
    • Lazarus and Free Pascal italian community
Re: Drag & Drop file
« Reply #1 on: October 16, 2011, 10:45:43 am »
SI avevo risolto, solo che ora non ho il codice sotto mano. Appena lo trovo tra oggi e domani provvedo ok! Ti faccio poi anche un esempio semplice così lo puoi implementare.

Ciao
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

xinyiman

  • Hero Member
  • *****
  • Posts: 2256
    • Lazarus and Free Pascal italian community
Re: Drag & Drop file
« Reply #2 on: October 17, 2011, 08:24:25 am »
Eccoti un esempio:

crea un'applicazione nuova con un oggetto Memo che si chiama Memo1 (nome default) e nell'evento OnShow della form immetti questi dati

var
   i: integer;
begin
     Memo1.Clear;
     Memo1.Append('Programma: ' + ParamStr(0));
     Memo1.Append('Numero parametri: ' + IntToStr(ParamCount));
     for I := 1 to ParamCount do
         Memo1.Append('Parametro ' + IntToStr(i) + ': ' +  ParamStr(I));
end;

Poi compili e provi e dimmi se è quello che volevi. Su Win32 funziona, per ora ho fatto test solo su win xp sp3. Fammi sapere!
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

Fabio

  • New Member
  • *
  • Posts: 13
Re: Drag & Drop file
« Reply #3 on: October 17, 2011, 08:53:33 am »
Ah spe mi sa non ci siamo capiti, ho poi riletto anche bene il tuo post originale e a te serviva si il D&D ma sopra l'icona dell'applicativo, io intendo a programma avviato trascinare un file sulla finestra del programma e che venga aggiunto automaticamente alla TListView.

xinyiman

  • Hero Member
  • *****
  • Posts: 2256
    • Lazarus and Free Pascal italian community
Re: Drag & Drop file
« Reply #4 on: October 17, 2011, 09:35:23 am »
Mi dispiace, ho fatto delle prove. Ma non sono riuscito, fossi in te proverei a chiedere qui sul forum in inglese. Anche perchè ho fatto delle prove con un evento della form che si chiama FormDropFiles ma non mi lascia trascinare nessun file nemmeno sulla form. Quindi mi sa che è volutamente bloccato. Però tentar non nuoce. Se risolvi fammi sapere come che potrebbe sempre tornarmi utile.
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

Fabio

  • New Member
  • *
  • Posts: 13
Re: Drag & Drop file
« Reply #5 on: October 17, 2011, 10:26:39 am »
O mamma che boiata ... io che cercavo le cose assurde e poi era una cagata ...

Creato un nuovo progetto, nel form ho messo la proprietà AllowDropFile a true, e ho attivato l'evento FormDropFiles

Li ritorna l'array di stringhe FileNames con nome e percorso completo del file trascinato sul form

Ci avrò perso penso 2 giorni quando facevo prove e bastavano 7 secondi scarsi :D

Shebuka

  • Sr. Member
  • ****
  • Posts: 427
Re: Drag & Drop file
« Reply #6 on: October 17, 2011, 10:33:12 am »
O mamma che boiata ... io che cercavo le cose assurde e poi era una cagata ...

Creato un nuovo progetto, nel form ho messo la proprietà AllowDropFile a true, e ho attivato l'evento FormDropFiles

Li ritorna l'array di stringhe FileNames con nome e percorso completo del file trascinato sul form

Ci avrò perso penso 2 giorni quando facevo prove e bastavano 7 secondi scarsi :D
Se ne era già discusso: http://www.lazarus.freepascal.org/index.php/topic,11041.msg55170.html#msg55170

poi su Mac OS X è un altro discorso: http://web.me.com/macpgmr/ObjP/MacXPlatform_Part8.html#DropFiles

Fabio

  • New Member
  • *
  • Posts: 13
Re: Drag & Drop file
« Reply #7 on: October 17, 2011, 10:44:15 am »
Questo thread non l'ho visto, si vede che cercando "drag drop file" non usciva, infatti avevo tutti post vecchi mi pareva alquanto strano.

xinyiman

  • Hero Member
  • *****
  • Posts: 2256
    • Lazarus and Free Pascal italian community
Re: Drag & Drop file
« Reply #8 on: October 17, 2011, 10:46:51 am »
Perfetto, può essere molto utile per come argomento per farci un How To.

Bravo
Win10, Ubuntu and Mac
Lazarus: 2.1.0
FPC: 3.3.1

 

TinyPortal © 2005-2018