Einzelnen Beitrag anzeigen

Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#32

Re: Markierte Checklistbox Einträge kopieren

  Alt 8. Jul 2004, 22:42
Hi,
dein Problem liegt darin, dass du den Name, der in der CheckListBox steht als Quelle nimmst. Aber die Quelle ist ja ganz anders. Ich hab hierzu eine kleine Hilfsfunktion geschrieben. Diese sucht anhand des Namens in der CheckListBox nach dem Pfad inklusive Dateiname des Cookies:

Code:
// "Dateiname" ist der Name in der CheckListBox
function FindeItem(Dateiname: PAnsiChar): PAnsiChar;
var
  icei    : PINTERNETCACHEENTRYINFO;
  dwSize  : DWord;
  hSearch : DWord;
begin
  dwSize := 65536;
  icei   := AllocMem(dwSize);
  try
    hSearch := FindFirstURLCacheEntry(Dateiname,icei^,dwSize);
    if hSearch = 0 then
    begin
      ShowMessage(SysErrorMessage(GetLastError)+' '+IntToStr(dwSize));
      exit;
    end;
    if hSearch <> 0 then
    begin
      result := icei^.lpszLocalFileName;
    end;
  finally
    FreeMem(icei,65536);
  end;
end;
Den Kopiervorgang startest du nun mit folgendem Befehl:

Code:
CopyFile(FindeItem(PChar(Form1.CheckListBox1.Items[i])), PChar(Pfad + ExtractFileName(FindeItem(PChar(Form1.CheckListBox1.Items[i])))), true);
Eigentlich ist es ineffizient FindeItem 2x aufzurufen. Ich hab aber versucht den result in ner Variable zu speichern und da hat mir ExtractFileName nur den Anfang des Namens kopiert (kann daran liegen, dass mein Windows-Benutzername aus 2 Wörtern besteht).

Ich hoffe das hilft dir weiter. Auf jeden Fall sollte es so funktionieren.


mfG Niels
  Mit Zitat antworten Zitat