drag and drop

0

Witam.
Istnieje możliwość aby przez metodę drag and drop , po przeciągnięciu z windowsa do programu na np panel otrzymać lokalizację pliku?
Proszę o pomoc

0

drag and drop i wiele innych na forum...

0

Ja tylko dodam, że przy właczonym UAC przeciągnie na okno może nie działać. Należy wykryć czy system operacyjny jest równy bądź wyższy wersją od Windows Vista (kod na to spokojnie do wygooglowania na ogromnej ilości stron www) i w takim przypadku użyć takiego kodu, a później już normalnie możemy obsłużyć komunikat WM_DROPFILES.

procedure SetDragAndDropOnSystemsWIthUAC(Wnd : HWND; IsEnabled : boolean);
type
  TChangeWindowMessageFilter = function(Msg : Cardinal; Action : Word) : Bool; stdcall;
const
  Msg_Add = 1;
  WM_COPYGLOBALDATA = $49;
var
  DllHandle : THandle;
  ChangeWindowMessageFilter : TChangeWindowMessageFilter;
begin
  DllHandle := LoadLibrary('user32.dll');
  if DllHandle > 0 then
  begin
    ChangeWindowMessageFilter := GetProcAddress(DllHandle, 'ChangeWindowMessageFilter');
    if Assigned(ChangeWindowMessageFilter) then
    begin
      DragAcceptFiles(Wnd, IsEnabled);
      ChangeWindowMessageFilter(WM_DROPFILES, Msg_Add);
      ChangeWindowMessageFilter(WM_COPYGLOBALDATA, Msg_Add);
    end;
  end;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1