Buenos días.
Ya se que es un tema recurrente, pero estoy intentando que una aplicación permita arrastrar archivos desde el Explorador de Windows.
Utilizo Delphi 2007 y Windows 8.1
El caso es que al arrastrar un archivo el código del procedure, en este caso,
AcceptFiles no se ejecuta.
Esta es la Form que utilizo:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellApi, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
private
procedure AcceptFiles(var msg: TMessage); message WM_DROPFILES;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;
procedure TForm1.AcceptFiles(var msg: TMessage);
const
cnMaxFileNameLen = 255;
var
i, nCount: integer;
FileName: array[0..cnMaxFileNameLen] of char;
begin
nCount := DragQueryFile( msg.WParam, $FFFFFFFF, FileName, cnMaxFileNameLen);
for i := 0 to nCount-1 do begin
DragQueryFile(msg.WParam, i, FileName, cnMaxFileNameLen);
memo1.Lines.add(FileName);
end;
DragFinish(msg.WParam);
end;
end.
Gracias de antemano.
Adolfo de Bonis