Einzelnen Beitrag anzeigen

trebor90

Registriert seit: 28. Mai 2009
43 Beiträge
 
#22

Re: Rückgabewert der Funktion undefiniert

  Alt 6. Jun 2009, 23:10
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."
  Mit Zitat antworten Zitat