Moin,
nur am Rande:
Tauchen Objekte in der Signatur deiner Funktion auf, dann solltest du die Klasse mit der größtmöglichen Abstraktion verwenden. Da du in der Funktion InList() auf keine andere Eigenschaft der ListBox zugreifst, solltest du gleich die Items übergeben. Deren abstrakte Klasse ist TStrings, was zu einer Anpassung des Funktionsnamens führt. Wenn du dann noch deinen Code etwas vereinfachst, dann bleibt nicht mehr viel übrig.
Delphi-Quellcode:
function StrExists(items: TStrings; s: string): Boolean;
begin
Result := items.IndexOf(s) >= 0;
end;
Wenn du die Funktion benutzt, dann gibt es zwei Gründe es anders zu tun als du es zeigst: Zum einen ist IF FALSE einfach eleganter als IF FALSE = TRUE, zum anderen gibt es mehrere Möglichkeiten einen Speicherbereich als boolesche Variable zu interpretieren, was gelegentlich zu Überraschungen führen kann. In deinem Fall besteht keine Gefahr, aber besser du gewöhnst es dir garnicht erst so an. Dass du deine Daten in einer ListBox anzeigst, ist sicherlich okay. Speichern solltest du sie aber in einer nicht-visuellen Klasse - aber das hat Dani dir schon geschrieben.
Delphi-Quellcode:
begin
Log(RequestedDocument);
if StrExists(DocumentList, RequestedDocument) then
RequestedDocument := 'index.html';
end;
Grüße vom marabu