Ver Mensaje Individual
  #1  
Antiguo 09-06-2016
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Reputación: 21
adebonis Va por buen camino
Drag and Drop archivos desde Explorer

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;
    { Private declarations }
  public
    { Public declarations }
  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
Responder Con Cita