ie Einträge sind komplett identisch, wie aus meinen vorigen Beiträgen hervor gehen müsste: Ich sagte ja bereits, dass ich einmal Dateien per Drag'n'Drop hineinziehe und dass sie beim zweiten Reinziehen (sprich gleiche Dateien) nicht nochmal hinzugefügt werden ...
Die Dateien werden weiterverarbeitet, und da wäre es dämlich, sie mehrmals zu bearbeiten, weil sie inner Listbox mehrmals stehen ...
Hier die komplette Drag'n'Drop-Routine ... Sicherlich auch von irgendwo hier geklaut
Delphi-Quellcode:
const DF_NUMBEROFFILES=$FFFFFFFF;
procedure TForm1.WMDROPFILES(var Msg: TMessage);
var i,j,l,a,r,anzahl,size:Integer;
Dateiname:PChar;
Pfad,Pfadneu,s:string;
begin
inherited;
Dateiname:=PChar('');
Pfad:=edit1.text;
//Ermitteln des Pfades der neuen Dateien durch Einlesen der neuen Dateien
//in Listbox4
anzahl:=DragQueryFile(Msg.WParam, DF_NUMBEROFFILES, Dateiname, 255);
for i:=0 to (anzahl-1) do
begin
size:=DragQueryFile(Msg.WParam,i,nil,0)+1;
Dateiname:=StrAlloc(size);
DragQueryFile(Msg.WParam,i,Dateiname,size);
Listbox4.Items.Add(StrPas(Dateiname));
StrDispose(Dateiname);
end;
DragFinish(Msg.WParam);
//Herausfiltern des Pfades
s:=listbox4.items[0];
l:=length(s);
for j:=l downto 1 do
begin
if s[j]='\' then
begin
Pfadneu:=copy(s,1,j);
Break;
end;
end;
a:=listbox4.items.count;
//Messagebox, wenn Listbox nicht leer und Pfade der neuen/alten Dateien ungleich
if ((listbox1.items.count<>0) and (Pfad<>Pfadneu) and (Pfad<>'')) then
if Application.MessageBox ('Sie können nur Dateien des gleichen Ordners nummerieren!'#13'Wenn Sie Dateien eines anderen Ordners in die Liste ziehen, werden die anderen Elemente entfernt.','Hinweis',MB_OKCANCEL +MB_ICONINFORMATION +MB_SETFOREGROUND)=mrok then listbox1.items.clear
else a:=0;
//Neue Dateien in Listbox1
for r:=1 to a do
//if schonda(listbox4.items[r-1])=false then
if listbox1.items.indexof(listbox4.items[r-1])=-1 then
begin edit2.text:=inttostr(listbox1.items.indexof(listbox4.items[r-1]));
listbox1.items.add(listbox4.items[r-1]); end;
listbox4.items.clear;
Dateinamenkurz();
Form1.ActiveControl:=listbox1;
BitBtn1.enabled:=false;
BitBtn2.enabled:=true;
Button2.enabled:=true;
BitBtn3.enabled:=false;
BitBtn5.enabled:=true;
Button6.enabled:=true;
listbox2.items.clear;
listbox3.items.clear;
listbox1.itemindex:=0;
SetLBHScrollbar(Listbox1);
end;
PS: Was macht inherited ... Ich verstehs immer noch nicht ...
"Es amüsiert mich immer wieder, wenn Menschen all ihr Unglück dem Schicksal, dem Zufall oder dem Verhängnis zuschreiben, während sie ihre Erfolge oder ihr Glück mit ihrer eigenen Klugheit, ihrem Scharfsinn oder ihrer Einsicht begründen."