Autor Beitrag
Chatfix
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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)

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 31.10.02 16:09 
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: Do 31.10.02 17:55 
ja ok habs.. danke.. ich sag ja schusselfehler :D

_________________
Gehirn: ein Organ, mit dem wir denken, daß wir denken. - Ambrose Bierce
Raphael82
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 31.10.02 18:11 
Gern geschehen, passiert mir auch dauernd.. :wink:

_________________
Share your knowledge to receive perfection!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: 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:
ausblenden Quelltext
1:
2:
3:
for i:=form1.anzahlnamen-1 downto 0 do
 begin
  if listbox1.Selected[i] then

Gruß
TINO
Chatfix Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
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
BeitragVerfasst: 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