Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Playlist out of Bounds?
Tony-S - Do 07.01.10 00:58
Titel: Playlist out of Bounds?
Hallo Forum ich habe ein kleines Problem bei dem ich einfach nicht weiter weiß :/
Ich habe zwei Listboxen einmal Listbox 1 in der ganze Pfade stehen und einmal Listbox2 in der die Dateinamen stehen sollen,
mit einem Dialog füge ich Dateien hinzu
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| for I := 0 to OpenDialog1.Files.Count-1 do begin
if listbox1.Items.Count < opendialog1.Files.Count then begin listbox1.Items.add(opendialog1.Files[i]) ; Listbox2.Items.add(extractfilename(Listbox1.Items[i])) ; end else if listbox1.Items.Count > 0 then begin listbox1.Items.add(opendialog1.Files[i]) ; listbox2.Clear; i2:=listbox1.Items.Count; end; |
Das einzigste was ich nicht hinbekomme ist der auskommentierte Teil in der vorletzten Zeile
Wenn ich zu erst dateien hinzufüge und listbox1 noch leer ist und 2 Dateien hinzufüge ist I2 quasi 0 und wenn ich jetzt noch 3 Dateien hinzufüge ist I2 5,
weil die Anzahl der items jetzt nunmal 5 ist - also wieso bekomm ich dann diese Meldung :/
Wäre nett wenn mir jemand meinen Fehler sagt, ich komm nicht drauf
Moderiert von
Narses: Bild als Anhang hochgeladen.
Narses - Do 07.01.10 01:47
Moin!
Ehrlich gesagt kapiere ich deinen Code nicht... :gruebel: Möchtest du vielleicht einfach das hier tun: :nixweiss:
Delphi-Quelltext
1: 2: 3: 4:
| for i := 0 to OpenDialog1.Files.Count-1 do begin ListBox1.Items.Add(OpenDialog1.Files[i]); ListBox2.Items.Add(ExtractFileName(OpenDialog1.Files[i])); end; |
Wenn nicht, solltest du nochmal ausführlich (mit Beispiel) erklären, was da genau passieren soll. :?
cu
Narses
jaenicke - Do 07.01.10 02:53
Tony-S hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5:
| i2:=listbox1.Items.Count; end; | |
Nun ja...
Nehmen wir an du hast 3 Einträge in der ListBox: Eintrag 0, 1 und 2.
So, und du greifst jetzt auf Eintrag listbox1.Items.Count zu, das ist aber Eintrag 3, den gibts aber nicht...
Tony-S - Do 07.01.10 10:02
Ah ok ja das stimmt, hab garnicht bedacht das es mit 0 beginnt, gut habe jetzt zwar kein Delphi zu Hand,
aber wenn ich es so schreibe, müsste es gehen wie es soll, ja?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| I2:=listbox1.items.count - 1;
for 0 to i2 do begin Listbox2.Items.add(extractfilename(listbox1.Items[i2])) ; end; |
Ich bedank mich erstmal, muss dann mal zu Hause gucken obs denn so klappt ^^
Edit: Schleifenvariable korrigiert
Tilman - Do 07.01.10 13:46
Die richtige Syntax lautet
Delphi-Quelltext
1:
| for Zaehlvariable := start to ende do befehl; |
(bzw. ende downto start). Wobei du Zaehlvariable dann für deinen Listen-Index verwenden kannst.
Tony-S - Do 07.01.10 20:56
Narses hat folgendes geschrieben : |
Ehrlich gesagt kapiere ich deinen Code nicht... :gruebel: Möchtest du vielleicht einfach das hier tun: :nixweiss:
Delphi-Quelltext 1: 2: 3: 4:
| for i := 0 to OpenDialog1.Files.Count-1 do begin ListBox1.Items.Add(OpenDialog1.Files[i]); ListBox2.Items.Add(ExtractFileName(OpenDialog1.Files[i])); end; | Wenn nicht, solltest du nochmal ausführlich (mit Beispiel) erklären, was da genau passieren soll. :? |
Ehm ja, das war es was ich eigentlich brauchte :/ - naja gut es war spät, ich schieb es mal drauf....., es ging eigentlich hauptsächlich darum die pfade dann in einer txt Datei zu speichern und auch wieder zu laden, deshalb das ganze, die anderen beiden Antworten waren deshalb aber trotzdem nützlich danke :)
Blackheart666 - Do 07.01.10 21:03
Tony-S hat folgendes geschrieben : |
| Ehm ja, das war es was ich eigentlich brauchte :/ - naja gut es war spät, ich schieb es mal drauf....., es ging eigentlich hauptsächlich darum die pfade dann in einer txt Datei zu speichern und auch wieder zu laden, deshalb das ganze, die anderen beiden Antworten waren deshalb aber trotzdem nützlich danke :) |
Dann solltest du dir vieleicht mal TStringlist anschauen.
Moderiert von
Narses: Zitat gekürzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!