![]() |
![]() |
![]() |
|
![]() |
|
Avast! Edition Familiale 4 v4.8
29 Avr 2011
L'iPhone 4 blanc désormais en vente
06 Avr 2011
Des développeurs font marcher GMail Motion, le poisson d'avril de Google
25 Fév 2011
Mac OS X Lion : le roi de la jungle pointe le bout de son nez
09 Fév 2011
OVH lance sa no!Box : l'offre Simple Play la plus simple du marché
01 Fév 2011
Twitter et Google s'unissent pour parer à la censure égyptienne
Google : le maître des noms de domaines
La nouvelle version de GMail en images !
Barème de rémunération pour les disques durs multimédias
Comparer strings sans tenir compte des accents
Drag & Drop à partir d'une fenêtre Windows
SMTPCLIENT et SMTPMESS : Envoyer des mails
+10 visiteurs en ligne
Auteur : Thwilliam
Catégorie : Trucs & astuces
Niveau : Débutant
Déposé le : 22 Avril 2010 à 11h44
Dans une fenêtre Windows d'exploration, vous sélectionnez un ou plusieurs fichiers. Comment, par drag and drop, récupérer les noms de ces fichiers dans votre programme ? Très simple en utilisant la fonction API DragQueryFile (unit ShellApi).
Remarques :
- récupère aussi les noms de répertoires.
- drag and drop possible à partir du bureau : récupération du raccourci.
Voici un exemple de récupération dans un TListBox.
1 23 45 67 89 1011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 3637 3839 4041 4243 4445 4647 4849 5051 5253 5455 5657 | unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, StdCtrls, ShellApi; type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private procedure WMDropFiles(var msg : TWMDropFiles) ; message WM_DROPFILES; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(ListBox1.Handle, true); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin DragAcceptFiles(ListBox1.Handle, false);end; procedure TForm1.WMDROPFILES(var Msg: TWMDropFiles); const MAXFILESIZE = 32767; var FileName: PChar; I, NbFiles: integer;begin try NbFiles := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, 0); for I := 0 to NbFiles - 1 do begin GetMem(FileName, MAXFILESIZE); DragQueryFile(Msg.drop, I, FileName, MAXFILESIZE); ListBox1.Items.Add(string(Filename)); FreeMem(FileName); end; finally DragFinish(Msg.drop); end; Msg.Result:= 0;end; end. |
Soyez le premier à commenter cette ressource !
Ajoutez votre commentaire & avis sur la ressource :
Vous n'êtes pas connecté !
Rejoignez dès maintenant la communauté en 3 clics et exprimez votre avis !
J'ai déjà un compte