Datei per Drag & Drop auf Form der
eigenen Anwendung öffnen
Es wird ShellAPI in
Uses benötigt !
|
private
{ Private-Deklarationen }
procedure WMDROPFILES(var
Msg: TMessage); Message
WM_DROPFILES; |
|
procedure
TForm1.WMDROPFILES(var Msg: TMessage);
var
i, Counts, Size: Integer;
PCharFileName: PChar;
PufferList: TStringList;
begin
inherited;
PCharFileName :=
nil;
Counts:=DragQueryFile(Msg.WParam, $FFFFFFFF,
PCharFileName, 255);
for
i := 0
to
Counts -1
do
begin
Size:=DragQueryFile(Msg.WParam,
i, nil,
0) +1;
PCharFileName:=StrAlloc(Size);
DragQueryFile(Msg.WParam, i,
PCharFileName, Size);
if
(FileGetAttr(String(PCharFileName))
<> faDirectory)
then
// nur Dateien zulassen, Ordner blocken
begin
ShowMessage('Du hast die Datei ' +String(PCharFileName)+'
auf mich gezogen...');
end;
StrDispose(PCharFileName);
end;
DragFinish(Msg.WParam);
end; |
Um Drag&Drop auf der
entsprechenden Form (hier Form1) zu aktivieren muss folgende
Codezeile bei Ereignis OnFormCreate hinterlegt werden.
|
DragAcceptFiles(Form1.Handle, True); |
|