Autor Beitrag
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Do 07.01.10 00:58 
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

ausblenden 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;
        
        // Fehler
        // Listbox2.Items.add(extractfilename(listbox1.Items[i2])) ;
        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 :/

fehler

Wäre nett wenn mir jemand meinen Fehler sagt, ich komm nicht drauf

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen.
Einloggen, um Attachments anzusehen!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 07.01.10 01:47 
Moin!

Ehrlich gesagt kapiere ich deinen Code nicht... :gruebel: Möchtest du vielleicht einfach das hier tun: :nixweiss:
ausblenden 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

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 07.01.10 02:53 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
        i2:=listbox1.Items.Count;
        
        // Fehler
        // Listbox2.Items.add(extractfilename(listbox1.Items[i2])) ;
        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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: 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?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
I2:=listbox1.items.count - 1;


for 0 to i2 do
// oder for 0 to listbox1.items.count - 1 do
// 1. Zeile würde dann entfallen
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Do 07.01.10 13:46 
Die richtige Syntax lautet
ausblenden 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.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Do 07.01.10 20:56 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Ehrlich gesagt kapiere ich deinen Code nicht... :gruebel: Möchtest du vielleicht einfach das hier tun: :nixweiss:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 07.01.10 21:03 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
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 user profile iconNarses: Zitat gekürzt.