Détendez vous un peu :D



DragDrop de fichiers

 

Tout d'abord c'est quoi comme Animal un DragDrop:

Il à une aile plus courte que l'autre, Un nez de cochon, il est bleu, il à une seule patte (c'est pour ça qu'il est bleu car il n'arrête pas de tomber).
Et il vit dans les contrées sauvages de votre imagination. LOL! c'était une blague.

Le DragDrog c'est quand vous glissez un fichier dans un Form ou un composant du form,
ce qui engendre une action.
Les Composants aussi peuvent être 'draggé'.

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

* D'abord il faut déclarer Shellapi et Messages dans USES.

* Puis créer une Procédure pour traiter l'action que fera votre DragDrop, et mettre l'événement Message:

private
procedure
FileIsDropped(var Msg: TMessage);
message WM_DropFiles;
// C'est le message DragDrop
{ Private déclarations }
public
{ Public déclarations }
end;

 

* Dans FormCreate Designer l'endroit ou le DragDrop sera fait :

DragAcceptFiles(ListBox1.Handle, true); // ici on désigne la List

 

* Puis on met le code de la Procédure que nous avons créer :

procedure TForm1.FileIsDropped(var Msg: TMessage);
var
Drop: THandle; // Variable qui accueilleras le Handle Du Drop
FileName: array[0..254] of Char; // Ici on mettra le chemin du fichier 'Droppé'

begin
Drop:= Msg.WParam; // Drop contient le Handle du drop

DragQueryFile(Drop, 0, FileName ,254); // On traite le Drop (Handle, Numero du Drop,fichier,Buffer)

ListBox1.Items.Add(FileName);
// On ajoute le chemin du fichier dans la List
Beep;
DragFinish(Drop); // Finir le DragDrop
end;

 

PS : Si vous voulez traitez plusieurs fichiers dans un Drop, mettez un variable
et une boucle pour le 0 de DragQueryFile.

Télécharger l'exemple

 

Haut de page