delphi drag & drop from shell (IDropTarget interface)
Per permettere a un applicazione in windows di accatere drag end drop bisogna obbligatoriamente pasare per la tecnologia com e astrarre l’interfaccia IDROP_TARGET. Questa procedura seppur non complicata descritta molto bene nei suoi aspetti per le applicazioni delphi dall’articolo riportato : http://pasotech.altervista.org/delphi/articolo87.htm permette di fare cose notevoli. Sicuramente la procedura seppur non difficile comporta qualche conoscenza specifica ed inserisce non poco codice all’interno della nostra applicazione, per comodità esiste un componente semplicisimo dei JEDI il TjvDropTarget che ci permette di fare esattemente la stessa cosa con uno sforzo estremamente ridotto. Basta implementare il metodo DRAGDROP del componente ad esempio :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TForm1.JvDropTarget1DragDrop(Sender: TJvDropTarget;var Effect: TJvDropEffect; Shift: TShiftState; X, Y: Integer); Var List : TStringList; i : integer; begin List := TStringList.Create; try JvDropTarget1.GetFilenames(List); for i := 0 to List.Count - 1 do memoDin.Text := List.Text; // DoOpenFile(List[i]); finally List.Free; end; |
a presto ivan