function TControl.Add(const S: String): Integer;
begin
if fCommandActions.aAddItem <> 0 then
begin
Result := Perform( fCommandActions.aAddItem, 0, Integer( PChar( S ) ) );
if Count = 1 then
ItemSelected[ 0 ] := True;
end
ItemSelected[n] := True для обычного ListBox устанавливает текущий выбранный, для MultiSelect - отмечает строку.
Вобщем, KOL под MultiSelect для ListBox не заточен.
[size=-2]------ Добавлено в 19:54
Вот исправленный вариант