Dankesehr für die Antworten.
Das dürfte historisch bedingt sein.
Das war auch meine Vermutung.
Somit konnten Funktionen wie Pos/IndexOf usw. -1 als Ergebnis zurück liefern, wenn ein Element/Zeichen nicht in einem Array/String vorhanden war. Auch kann man so leichter Fehler in der Index-Berechnung erkennen.
Für alle Pos/Index ist das richtig, aber Length ?
Ich vermute Du meinst Pos/Length, oder wo hilft das bei Length Fehler zu Erkennen ?
Was daran blöd ist:
Wenn ich bewusst Cardinal benutze, um Fehleingaben (< 0) im Keim zu Ersticken,
und dann Length() mit Cardinal vergleiche:
Delphi-Quellcode:
var
LMaxLen : Cardinal;
...
if Length( LArray) <= LMaxLen then
begin
....
dann bekomme ich immer ein Warning, das ich wegcasten muss obwohl es unnötig wäre.