СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как перетащить файлы из проводника в мою программу?

Ответ

TMainForm = class(TForm)
    …
private
    procedure WMDROPFILES(var Message: TWMDROPFILES); message WM_DROPFILES;
    procedure ProcessFile(Filename: string);
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
    DragAcceptFiles(MainForm.Handle, TRUE); // enable drag&drop
end;

procedure TMainForm.ProcessFile(Filename: string);
begin
// any actions
end;

procedure TMainForm.WMDROPFILES(var Message: TWMDROPFILES);
var
    Files : Longint;
    I : Longint;
    Buffer : array[0..MAX_PATH] of Char;
begin
    Files := DragQueryFile(Message.Drop,$FFFFFFFF,nil,0); // Get count of files
    for I := 0 to Files — 1 do begin
        DragQueryFile(Message.Drop,I,@Buffer,SizeOf(Buffer)); // Get N file
        ProcessFile(Buffer); // do something with the file
    end;
    DragFinish(Message.Drop); // end drag loop
end;


Anatoly Podgoretsky



Copyright © 2000-2004 Сообщество Чайников
Контактная информация