Wenn du dir nicht sicher bist, welche Indizes du benutzen musst, dann ist es am einfachsten wenn du so was in der Art benutzt:
for i:=Low( Feld) to High( Feld)
Low liefert den niedrigsten und High den Höchsten Index eines Arrays zurück.
Dein Source hat aber noch eine kleine Lücke, da man den Wert der Edits ja zwischen dem generieren und dem Suchen ändern kann. Also solltest du für den Suchdurchlauf die Anzahl der Einträge in deiner Liste abfragen:
Delphi-Quellcode:
procedure TForm1.BSuchenClick(Sender: TObject);
var Ergebnis, laenge : integer;
begin
laenge:= lb1.Items.Count; //strtoint(EEnde.text)-strtoint(EAnfang.text);
//function aufrufen, result in Ergebnis speichern
Ergebnis:=BinSuche(StrToInt(EKey.Text),laenge);
EErgebnis.text:=inttostr(Ergebnis);
end;
MfG