Autor |
Beitrag |
Chatfix
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Do 31.10.02 15:14
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
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Raphael82
      
Beiträge: 67
|
Verfasst: 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
_________________ Share your knowledge to receive perfection!
|
|
Chatfix 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Do 31.10.02 17:55
ja ok habs.. danke.. ich sag ja schusselfehler 
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Raphael82
      
Beiträge: 67
|
Verfasst: Do 31.10.02 18:11
Gern geschehen, passiert mir auch dauernd.. 
_________________ Share your knowledge to receive perfection!
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Fr 01.11.02 11:30
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 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: 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
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: 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 
      
Beiträge: 1583
Erhaltene Danke: 10
Win 10, Win 8, Win 7, Win Vista, Win XP
VB.net (VS 2015), MsSQL (T-SQL), HTML, CSS, PHP, MySQL
|
Verfasst: Sa 02.11.02 18:27
oh ja.. stimmt... da muss ich doch die count eigenschaft nehmen...
danke für den hinweis!!
_________________ Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
|
|
|