Einzelnen Beitrag anzeigen

Spynx

Registriert seit: 23. Okt 2006
15 Beiträge
 
#7

Re: EStringListError

  Alt 8. Mai 2008, 22:38
Leider habe ich die Selbe Fehlermeldung auch an einer 2. Stelle (diesmal mit dem Wert 2) wobei ich jedoch nichts lösche...

Zur Erläuterung: Mein Programm soll aus einem Spielerpool selbst einigermaßen faire Teams erstellen, und diese später in einen Turnierbäume eintragen. Dabei gibt man eine pro Spieler eine Wertung ein (max. 4 Stellige Zahlen) und einen Spielernamen. Vor die Spielerwertung werden automatisch die entsprechende Anzahl Nullen gestellt. Nun soll das Programm die Spielerwertung durchgehen, per zufall einen der Spieler mit der besten Wertung bestimmen. Hinterher soll diesem "besten" Spieler dann ein schlechter Spieler nach dem selben prinzip zugeordnet werden.


Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var letzter,Spieler1,Spieler2,i,i2,i3,i4,gleichcounter,rest,skill,skill2,choose:integer; check,check2,choosenname,choosenname2,choosenname3:string;
begin
 gleichcounter:=0;
if ListBox2.Items.Count mod strtoint(edit5.text) = 0 then begin

  choosenname2:='';
  choosenname:='';
  gleichcounter:=0;
  status.caption:='Spielerzahl passt';
  for i:=0 to (ListBox2.Items.Count)
     do begin
        [color=#ff001f]check:=listbox2.items[i-1];[/color] //<--hier wird der Fehler angezeigt - ersten Namen samt Wertung holen
        for i2:= 1 to 4 do
        skill:= skill + strtoint(check[i2]); // Wertung isolieren

        if i<listbox2.items.count-1 then
        begin
            check2:=listbox2.items[i+1]; // Wertung des nächsten auslesen
            for i3:= 1 to 4 do
            skill2:= skill2 + strtoint(check2[i3]); // Wertung isolieren

            if skill=skill2 then //Wertung vergleichen
            gleichcounter:=gleichcounter+1 // Anzahl gleicher Wertungen
            else
            begin // sobald der nächste Spieler eine andere Wertung hat, wird unter jenen mit gleicher Wertung gelost
                  choose:=random(gleichcounter)+1;
                  choosenname:=ListBox2.Items.Strings[choose-1]; //choosenname ist Wertung + Name des auserwählten

                  for i4:=6 to length(choosenname) do // Auserwählten Name wird von Wertung isoliert
                  choosenname2:= choosenname2 + choosenname[i4];


                                         


 //........


                 end;
            end;
     end;



  end
  else
  status.caption:='error';
  showmessage('Unpassende Spieleranzahl!');

end;
Sry für die Smileyflut...
  Mit Zitat antworten Zitat