Free Tools CodeS-SourceS.com
Programmez!
PCInfo Web


Sélection logiciels

Media Coder v0.7.5.4702

Hotspot Shield v1.37

Miracle Tweet v1.0

Lingoes v2.7.1

Avast! Edition Familiale 4 v4.8


En bref

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


Les derniers dossiers


Les ressources Delphi et C/C++

Music Pro

Dessin de texte sur un canvas

Comparer strings sans tenir compte des accents

Drag & Drop à partir d'une fenêtre Windows

SMTPCLIENT et SMTPMESS : Envoyer des mails


Membres en ligne

+10 visiteurs en ligne


Nos partenaires

Espacerezo

KilaSoft



Vous êtes ici : AccueilDelphiSnippets › Drag & Drop à partir d'une fenêtre Windows

Drag & Drop à partir d'une fenêtre Windows

Informations sur la source :

Auteur : Thwilliam

Catégorie : Trucs & astuces

Niveau : Débutant

Déposé le : 22 Avril 2010 à 11h44

0 commentaire sur ce snippet


Description

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.


Code Source

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.


Autres contributions de Thwilliam


Commentaires sur le snippet

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