Drag'n Drop filer og mapper

Tags:    delphi

Jeg bruger nedstående kode til at drag'n drop mapper over i min listbox og tilføjer alle file der ender på txt og txt2. Men det virker ikke når jeg drag'n dropper en enkel fil! kun mapper!. Hvordan kan jeg få den til at virke med at drag'n drop en enkel fil og mappe(r)?


type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure AcceptFiles( var msg : TMessage );
message WM_DROPFILES;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles( Handle, True );
end;


procedure TForm1.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
files : array [0..cnMaxFileNameLen] of char;
Ext : string;

procedure ListDir(Path: String);
var
Sr: TSearchRec;
begin
if FindFirst(Path + '\\*.*', faAnyFile and not faHidden, Sr) = 0 then
begin
repeat
if (sr.Name <> '.') and (sr.Name <> '..') then
begin
if sr.Attr and faDirectory <> 0 then
begin
ListDir(Path + '\\' + Sr.Name)
end else begin
Ext := ExtractFileExt(Path + '\\' + Sr.Name);
if (ext = '.txt') or (ext = '.txt2')
begin
FileList.AddItem(Sr.Name, nil);
end;
end;
end;
until FindNext(Sr) <> 0;
FindClose(Sr);
end;
end;

begin
// find out how many files we're accepting
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
files,
cnMaxFileNameLen );

// query Windows one at a time for the file name
for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
files, cnMaxFileNameLen );
ListDir(Files);
end;
DragFinish( msg.WParam );
end;



3 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Fandt lige dette eksempel på nettet:
http://www.chami.com/tips/delphi/111196D.html
Der kunne du evt. prøve at kigge.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------



Fandt lige dette eksempel på nettet:
http://www.chami.com/tips/delphi/111196D.html
Der kunne du evt. prøve at kigge.

Mvh.
Rune Jensen
---------------------------------------------------------------------------
##The one who laugh last is the one who think slowest!##
---------------------------------------------------------------------------


Ja, det er den samme kode som jeg har brugt og har ændret lidt på! men den kode kan du kun drag drop filer og IKKE mapper. med min kan jeg drag drop mapper og sub mapper men IKKE filer. skal have den til at gøre begge dele



fandt selv ud af det.

lukker



t