Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Mehrere ausgewählte Dateien löschen (https://www.delphipraxis.net/113775-mehrere-ausgewaehlte-dateien-loeschen.html)

SaFu 14. Mai 2008 14:16


Mehrere ausgewählte Dateien löschen
 
Hi

Wie die Überschrift es schon sagt versuche ich mehrere dateien aus einem Ordner zu löschen aber irgenwie bekomme ich den Fehler überschreitet den ListenIndex

Delphi-Quellcode:
procedure TForm4.Bildloeschen;
Var I :Integer;
begin
  if FileListBox1.FileName <> '' then
   begin
    if Form1.MessageDlgPos2('Wollen Sie dieses Dokument wirklich löschen? ',mtInformation,[mbYes,mbNo],self) = mrYes then
      begin
       for i := 0 to FileListBox1.Items.Count - 1 do
          if DeleteFile(FileListBox1.Items[i]) then
           begin
             FileListbox1.Update; //Aktualisieren
             ImageBilderanzeige.Picture:= Nil;
           end;
      end;
  end
 else
  Form1.MessageDlgPos2('Es ist kein Bild ausgewählt!',mtInformation,[mbOk],Self);
end;
aber irgenwie denke ich das es doch so richtig ist oder??

DeddyH 14. Mai 2008 14:18

Re: Mehrere ausgewählte Dateien löschen
 
Falsch:
Delphi-Quellcode:
for i := 0 to FileListBox1.Items.Count - 1 do
Richtig:
Delphi-Quellcode:
for i := FileListBox1.Items.Count - 1 downto 0 do

SaFu 14. Mai 2008 14:29

Re: Mehrere ausgewählte Dateien löschen
 
Ich glaube ich mach da was falsch jetzt kann ich zwar alles löschen bzieungsweis 1 datei bleib immer übrig

Aber eigentlich wollte ich über die FileListbox ausgewählte Dateien löschen, das heist wenn ich z.b über Multiselect nur 4 Dateien auswähle wollte ich die dann löschen.

DeddyH 14. Mai 2008 14:44

Re: Mehrere ausgewählte Dateien löschen
 
Dann musst Du noch abfragen, ob der Eintrag selektiert ist.
Delphi-Quellcode:
if FileListbox1.Selected[i] then...

SaFu 14. Mai 2008 14:53

Re: Mehrere ausgewählte Dateien löschen
 
das funzt immernoch net so richtig hab ich das richtig eingebaut

Delphi-Quellcode:
procedure TForm4.Bildloeschen;
Var I :Integer;
begin
  if FileListBox1.FileName <> '' then
   begin
    if Form1.MessageDlgPos2('Wollen Sie dieses Dokument wirklich löschen? ',mtInformation,[mbYes,mbNo],self) = mrYes then
      begin
       for i := FileListBox1.Items.Count - 1 downto 0 do
        if FileListbox1.Selected[i] then
         begin
          if DeleteFile(FileListBox1.Items[i]) then
           begin
             FileListbox1.Update; //Aktualisieren
             ImageBilderanzeige.Picture:= Nil;
           end;
         end;
      end;
  end
else
  Form1.MessageDlgPos2('Es ist kein Bild ausgewählt!',mtInformation,[mbOk],Self);
end;

Fussball-Robby 14. Mai 2008 14:58

Re: Mehrere ausgewählte Dateien löschen
 
Zitat:

Zitat von fuknersascha
das funzt immernoch net so richtig hab ich das richtig eingebaut

Fehler? Fehlverhalten? Oder passiert garnichts?

SaFu 14. Mai 2008 15:21

Re: Mehrere ausgewählte Dateien löschen
 
ne jetzt wird nur noch 1 Datei gelöscht obwohl ich mehr ausgewählt habe

Klaus01 14. Mai 2008 15:26

Re: Mehrere ausgewählte Dateien löschen
 
Kann es sein das mit
Delphi-Quellcode:
FileListbox1.Update; //Aktualisieren
die Selection wieder aufgehoben wird?

Grüße
Klaus

SaFu 14. Mai 2008 15:28

Re: Mehrere ausgewählte Dateien löschen
 
nee daran liegts nicht

MSSSSM 14. Mai 2008 15:37

Re: Mehrere ausgewählte Dateien löschen
 
genau, die wird wieder aufgehoben.

du musst den Update befehl Nach der for schleife schreiben, dann gehts, bei mir.

mfg

SaFu 14. Mai 2008 15:42

Re: Mehrere ausgewählte Dateien löschen
 
ja so geht das jetz bei mir auch jetzt hab ich aber ein anderes Problem.

Wenn ich mir bilder in mein Programm lade z.b Beispielbilder von Windows in mein Programm verzeichnis \Bilder\
Und sie dann lösche werden sie aber auch im Beispielordner von Windows gelöscht

MSSSSM 14. Mai 2008 15:49

Re: Mehrere ausgewählte Dateien löschen
 
wie lädtst du die denn in dein Programm verzeichnis?

SaFu 14. Mai 2008 15:53

Re: Mehrere ausgewählte Dateien löschen
 
so
Delphi-Quellcode:
procedure TForm4.Button7Click(Sender: TObject);
var AlterPfad,NeuerPfad :string;
I :Integer;
begin
if OpenPictureDialog1.Execute then
 with Openpicturedialog1.Files do
  for I := 0 to count - 1 do
 begin
  AlterPfad:= OpenPictureDialog1.Files[I];
   NeuerPfad:= Form1.ServerPfad + 'Bilder\'+ ExtractFileName(OpenPictureDialog1.Files[I]);
 if not FileExists(NeuerPfad) then
  begin
   CopyFile(PChar(AlterPfad), PChar(NeuerPfad), true);
   FileListBox1.Items.Add(ExtractFileName(OpenPictureDialog1.Files[I]));
   LabAnzahlBilder.Caption:= 'Bild '+ IntToStr(index)+' von '+ IntToStr(FileListBox1.Items.Count);
  end
 else
  Form1.MessageDlgPos2('Bild ist bereits in der Liste',mtInformation,[mbOk],self);
 end;
end;

Fussball-Robby 14. Mai 2008 15:56

Re: Mehrere ausgewählte Dateien löschen
 
Delphi-Quellcode:
   FileListBox1.Items.Add(ExtractFileName(OpenPictureDialog1.Files[I]));
Du lädst in die FileListBox ja auch die Dateien aus dem alten Ordner. Wieso lädst du überhaupt was in die FileListBox, die Dateien werden dort doch automatisch angezeigt :gruebel:

SaFu 14. Mai 2008 16:00

Re: Mehrere ausgewählte Dateien löschen
 
Ja jetzt gehts stimmt ein FileListbox.Update wäre da angebrachter

Danke für die Antworten


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz