Tema: Drag Drop
Ver Mensaje Individual
  #8  
Antiguo 16-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lepuke.

No dispongo de Windows XP para probarlo, pero podrías intentar de este modo:
Código Delphi [-]
...
uses ShellApi;

const
  MSGFLT_ADD = 1;

var
 ChangeWindowMessageFilter: function (msg: Cardinal; dwFlag : Word):BOOL; stdcall;

procedure TForm1.DragDropFiles(var Msg: TMessage);
var
  Cont,i : integer;
  FName : array [0..MAX_COMPUTERNAME_LENGTH+MAX_PATH] of char;
begin
  Cont:= DragQueryFile(Msg.WParam, $FFFFFFFF, FName, 255)-1;
  if (Win32MajorVersion = 6)and(Win32MinorVersion > 0) then
    for i:= 0 to Cont do ChangeWindowMessageFilter (i, MSGFLT_ADD);
  for i := 0 to Cont do
  begin
    DragQueryFile(Msg.WParam, i, FName, 255);
    ListBox1.Items.Add(FName);
  end;
  DragFinish(msg.WParam);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if (Win32MajorVersion = 6)and(Win32MinorVersion > 0) then
  begin
    @ChangeWindowMessageFilter:= GetProcAddress(LoadLibrary('user32.dll'),'ChangeWindowMessageFilter');
    if Assigned (ChangeWindowMessageFilter) then
    begin
      ChangeWindowMessageFilter (WM_DROPFILES, MSGFLT_ADD);
      ChangeWindowMessageFilter (WM_COPYDATA, MSGFLT_ADD);
      ChangeWindowMessageFilter ($0049, MSGFLT_ADD);
    end;
  end;
  DragAcceptFiles(Handle, True);
  ListBox1.Items.Clear;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 16-04-2014 a las 03:31:44.
Responder Con Cita