Boolsche Variablen nicht mit Wahrheitswerten vergleichen: "if ListBox1.Selected[i] then" reicht völlig!
Bei Delphi Dank seiner strikten Typisierung ist das halb so schlimm, "TRUE" kann als Konstante angesehen werden, gegen die ich andere boolsche Variablen bedenkenlos und fehlerfrei vergleichen kann. Kritischer wird es bei anderen Programmiersprachen, die i.A. lediglich "FALSE" als konstanten Wert "0" annehmen und jeden beliebigen Wert <> "0" als "TRUE" behandeln.
//edit: Ich möchte dies keinesfalles als schönen Stil propagieren - doch ist es mir wichtig, bei solchen Aussagen wie "mache nie dies oder jenes" wenigstens eine kurze Erläuterung zu liefern.
Daniel R. Wolf
mit Grüßen aus Hamburg