- procedure TForm1.WMDropFiles(var Msg: TMessage);
- var hDeposer: THandle;
- CompoMemo:Tmemo;
- countFiles, i: integer;
- FileName:array [0..255] of char;
- ddpoint:Tpoint;
- begin
- CompoMemo:=nil;
- filename:='';
- //Récupérer dans hDeposer le handle envoyé par le message WM_DROPFILES
- hDeposer := THandle(Msg.wParam);
- //Récupérer le point où la souris à déposer le où les fichiers
- DragQueryPoint(hdeposer,DDPoint);
- //Récupérer le composant sous ce point
- if FindVCLWindow(ClienttoScreen(DDPOINT)) is tmemo then begin
- Compomemo:=TMemo(FindVCLWindow(ClienttoScreen(DDPOINT)));
- end;
- //nombre de fichier dans le drag
- countFiles := DragQueryFile(hDeposer, UINT(-1), nil, 0);
- if compomemo<>nil then
- for i := 0 to pred(countFiles) do
- begin
- //Déterminer le nom du ième fichier déposé
- DragQueryFile(hDeposer, i,(FileName), length(filename));
- if Filename<>'' then begin
- //Ajouter le nom du fichier
- CompoMemo.Lines.Add(Filename);
- end;
- end;
- DragFinish(hDeposer);
- end;
procedure TForm1.WMDropFiles(var Msg: TMessage);
var hDeposer: THandle;
CompoMemo:Tmemo;
countFiles, i: integer;
FileName:array [0..255] of char;
ddpoint:Tpoint;
begin
CompoMemo:=nil;
filename:='';
//Récupérer dans hDeposer le handle envoyé par le message WM_DROPFILES
hDeposer := THandle(Msg.wParam);
//Récupérer le point où la souris à déposer le où les fichiers
DragQueryPoint(hdeposer,DDPoint);
//Récupérer le composant sous ce point
if FindVCLWindow(ClienttoScreen(DDPOINT)) is tmemo then begin
Compomemo:=TMemo(FindVCLWindow(ClienttoScreen(DDPOINT)));
end;
//nombre de fichier dans le drag
countFiles := DragQueryFile(hDeposer, UINT(-1), nil, 0);
if compomemo<>nil then
for i := 0 to pred(countFiles) do
begin
//Déterminer le nom du ième fichier déposé
DragQueryFile(hDeposer, i,(FileName), length(filename));
if Filename<>'' then begin
//Ajouter le nom du fichier
CompoMemo.Lines.Add(Filename);
end;
end;
DragFinish(hDeposer);
end;