![]() |
Senden an
Moin,
ich befasse mich grad mit den CheckListboxen. Und da ich eben noch einen Code zum auslesen des Pfades der SpecialFolder gefunden hab, dachte ich, ich mach ein Progrämmchen, um das Senden an... Menü zu modifizieren. Mein Hauptproblem ist jetzt, wie ich die markierten Einträge löschen kann. Habs hiermit versucht: Checklistbox1.Items.Delete(i); Bekomme dann aber die Meldung: Listenindex überschreitet das Maximum(6):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s, path: string; i: integer; stl: tstringlist; begin path := (GetSpecialFolder(Handle, CSIDL_Sendto) + '\*.*'#0); s := path; CheckListBox1.Perform(LB_DIR, DDL_READWRITE, LongInt(@s[1])); Checklistbox1.ItemIndex:=0; stl := tstringlist.Create; try for i := 0 to Checklistbox1.items.Count - 1 do begin stl.Add(CheckListbox1.items.strings[Checklistbox1.itemindex]); Checklistbox1.itemindex := Checklistbox1.itemindex+1; end; Checklistbox1.items.CommaText := stl.commatext; label3.caption := inttostr(i) + ' Einträge vorhanden'; label1.Caption := s; label2.caption := path; finally stl.free; end; end; procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin for i := 0 to Checklistbox1.Items.Count-1 do begin if Checklistbox1.checked[i] then begin Checklistbox1.Items.Delete(i); end; end; end; |
Re: Senden an
Kuck dir deine Schleife doch mal genau an: Was machst du denn da? Nehmen wir mal an du hast 3 Einträge. Deine Schleife wird also dreimal durchlaufen. Jetzt löscht du einen Eintrag und du hast nur noch zwei Einträge. Aber deine Schleife läuft trotzdem noch bis drei. Aber den dritten gibt es ja gar nicht mehr, ergo crasht es. Lösung: Du musst die Schleife runterzählen lassen mit downto.
Delphi-Quellcode:
for i := Listbox1.Items.Count downto 0 do
|
Re: Senden an
Zitat:
Delphi-Quellcode:
Verwendest du das -1 nicht wird der Code schon wieder crashen.
for i := Listbox1.Items.Count-1 downto 0 do
Greetz alcaeus |
Re: Senden an
Thx, klappt wunderbar, aber die Verknüpfungen sind nicht gelöscht.
Der löscht die nur aus der CheckListbox raus, nicht aber aus dem Ordner. |
Re: Senden an
@sui: Davkn war auch niergens in deinem Posting die Rede. Desweiteren neues Problem, neuer Thread.
@alcaeus: Eingebauter Ciopy & Paste Schutz. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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