Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - problem mit listbox, löschen (und noch mehr)
Chatfix - Do 31.10.02 15:14
Titel: problem mit listbox, löschen (und noch mehr)
hallo, hab mal seit langen wieder ein problem, es scheint mir ziemlcih einfach zu lösen nur ich glaub ich hab in meiner hektik wieder irgendwas vergessen.. zu den programminfos..
es können mitarbeiter eingegeben werden, die in einer ini (name1=, name2=) usw. gespeichert werden.
die namen werden beim programmstart zusätzlich in die stringlist
form2.namen eingelesen. die anzahl der namen wird in der ini, und im programm unter
anzahlnamen gespeichert.
nun habe ich folgendem code, um einen mitarbeiter zu löschen (die mitarb. werden in einer listbox angezeigt)
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| for i:=form1.anzahlnamen-1 downto 0 do begin if listbox1.Selected[i] then begin listbox1.Items.Delete(i); form2.namen.Delete(i); form1.anzahlnamen:=form1.anzahlnamen-1; deletefile(form3.path+'\mitarb.ini'); namenini:=Tinifile.Create(form3.path+'\mitarb.ini'); try for j:=1 to form1.anzahlnamen do begin namenini.WriteString('Namen','name'+inttostr(j),form2.namen.Strings[j]); end; finally namenini.Free; end; break; end; |
es kommt immer Listenindex überschreitet das maximum...
ka was cih vergessen hab.. fällt euch was ein?
ps sorry wegen dem titel, mir is nix eingefallen
Raphael82 - Do 31.10.02 16:09
Quelltext
1: 2:
| try for j:=1 to form1.anzahlnamen do |
In der ersten Schleife hast du noch "anzahlnamen-1" geschrieben, da der Listenindex bei 0 beginnt. Wahrscheinlich ist das der Fehler.
MfG, Raphael
Chatfix - Do 31.10.02 17:55
ja ok habs.. danke.. ich sag ja schusselfehler :D
Raphael82 - Do 31.10.02 18:11
Gern geschehen, passiert mir auch dauernd.. :wink:
Tino - Fr 01.11.02 11:30
Titel: Re: problem mit listbox, löschen (und noch mehr)
Chatfix hat folgendes geschrieben: |
die anzahl der namen wird in der ini, und im programm unter anzahlnamen gespeichert. |
Warum nimmst Du nicht die Eingenschaft
Count der StringList um die Anzahl der Einträge zu erhalten?
Gruß
TINO
Chatfix - Fr 01.11.02 15:12
weil es auch einträge gibt die in der listbox nicht dargestellt werden, und diese müssen beim löschen auch berücksichtigt werden, das ist ja nur ein kleiner code-schnipsel der noch erweitert wird
Tino - Fr 01.11.02 21:12
Chatfix hat folgendes geschrieben: |
weil es auch einträge gibt die in der listbox nicht dargestellt werden |
Ich gehe mal davon aus das Du damit meinst das die Items in der ListBox nicht exsistieren. Wenn es so ist kann dieser Code aber Probleme machen:
Quelltext
1: 2: 3:
| for i:=form1.anzahlnamen-1 downto 0 do begin if listbox1.Selected[i] then |
Gruß
TINO
Chatfix - Sa 02.11.02 18:27
oh ja.. stimmt... da muss ich doch die count eigenschaft nehmen...
danke für den hinweis!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!