Mir fällt spontan nur ein, die Listbox von vorne durchzugehen und zu prüfen, ob die Zahl am entsprechenden Index Index+1 ist. Ist das nicht der Fall, kannst du Index + 1 einfügen. (Vorausgesetzt, du startest mit 1, und nicht mit 0)
Also:
Delphi-Quellcode:
For i := 0 To ListBox1.Items.Count - 1 Do
If StrToInt(ListBox1.Items[i]) > i+1 Then
break;
//i+1 ist die Zahl, die eingefügt werden muß
//i ist der Index, bei dem eingefügt werden muß
Sollte aber auch so funktionieren.
Delphi-Quellcode:
i := 0;
While (i <= ListBox1.Items.Count - 1) and (StrToInt(ListBox1.Items[i]) = i+1) Do
inc(i);
//i ist die Zahl, die eingefügt werden muß
//i-1 ist der Index, bei dem eingefügt werden muß
Ist aber jetzt alles nur aus dem Kopf schludrig hingeschrieben und kann noch Denkfehler beinhalten.
//Diverse Edits
Kleinere Schreibfehler gefixt und Kleinigkeiten eingefügt
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;