Hab jetzt nur mal auf die Schnelle das Find der TStringList versucht anzupassen und hoffe es stimmt soweit auch.
Delphi-Quellcode:
type TMyArray = array of record X, Y: Integer; end;
function FindLowerXIndex(const Arr: TMyArray; LowX: Integer): Integer;
var
L, H, I: Integer;
begin
L := 0;
H := High(Arr);
while L <= H do
begin
I := (L + H) shr 1;
if Arr[I].X < LowX then L := I + 1 else H := I - 1;
end;
Result := L;
end;
Das Array muß natürlich nach X sortiert sein.