const
WM_FERTIG = WM_USER + 100;
type
TJvFileListBox =
class(JvDriveCtrls.TJvFileListBox)
private
ListeDateien: TStringList;
procedure DropFiles(
var Msg: TMessage);
Message WM_DROPFILES;
procedure HabeFertig(
var Msg: TMessage);
Message WM_FERTIG;
end;
.
.
.
procedure TJvFileListBox.DropFiles(
var Msg: TMessage);
var
i, Anzahl, Size: Integer;
SourcePfad: PChar;
begin
ListeDateien:= TStringList.Create;
Anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, SourcePfad, 255);
for i := 0
to (Anzahl - 1)
do
begin
Size := DragQueryFile(Msg.WParam, i ,
nil, 0) + 1;
SourcePfad:= StrAlloc(Size);
DragQueryFile(Msg.WParam,i , SourcePfad, Size);
Pfad:= ExtractFilePath(StrPas(SourcePfad));
Dateiname:= Copy(StrPas(SourcePfad),Length(Pfad)+1,Length(StrPas(SourcePfad))- Length(Pfad));
ListeDateien.Add(Dateiname);
StrDispose(SourcePfad);
end;
DragFinish(Msg.WParam);
PostMessage(
Handle, WM_FERTIG, 0, 0);
end;
procedure TJvFileListBox.HabeFertig(
var Msg: TMessage);
var
i: Integer;
begin
SetForegroundWindow(FAnlagenkomponenten.Handle);
if BestatigungK
then
begin
if MessageDlg('
Kopieren von ' + IntToStr(ListeDateien.Count) + '
Dateien nach ' +
FAnlagenkomponenten.DocVerzeichnis.Text + '
?',mtConfirmation, [mbYes, mbNo], 0) = mrNo
then
begin
exit;
end;
end;
for i := 0
to ListeDateien.Count -1
do
begin
Dateiname:= ListeDateien.Strings[i];
CopyFile(PChar(Pfad + Dateiname),PChar(FAnlagenkomponenten.DocVerzeichnis.Text + '
\'+ Dateiname),false);
end;
FAnlagenkomponenten.JvFileListBox1.Update;
ListeDateien.Free;
end;