Ваш код (который я подозреваю, что отличается от того, в вопросе) не имеет правильный синтаксис, который является то, что компилятор говорит вам.
Тот факт, что ваш код отличается от кода, который мы видим в вопросе, и что мы не можем сказать, используете ли вы VCL или FMX, делает этот вопрос несколько сомнительным. В другой день я, вероятно, проголосую за закрытие как не по теме, но сегодня я буду пахать независимо, что, вероятно, неосмотрительно. Вот оно.
Код в вопросе (почти) действительный код VCL. Существует дополнительный end
, и я могу только предположить, что это ошибка транскрипции. Очевидно, что ваш фактический код не выглядит так, потому что вы не будете так отступать.
Ваш код недопустим Код FMX, даже после того, как бродячий end
удален. Объекты компилятора в Selected[ii]
с:
[dcc32 Error]: E2149 Класс не обладает свойством по умолчанию
Это другая ошибка от одного вы сообщили. Причиной ошибки является то, что Selected
является неиндексированным свойством типа TListBoxItem
.
Я думаю, что действительно происходит то, что код в вопросе отличается от кода, который вы пытаетесь скомпилировать. Код, который вы пытаетесь скомпилировать, недействителен. Как правило, когда компилятор сообщает вам, что ваш код недействителен, вы должны поверить в это, даже если вы не можете сразу его понять.
Ваша жизнь станет намного проще при прекращении использования with
. Every time you use with
, a puppy dies. Кроме того, ваше пространство имен расширяется с часто неожиданными и непредсказуемыми результатами, поскольку имена из внутреннего пространства имен скрывают их от внешнего пространства имен.
Хотя ясно, что -1 + Items.Count
- это то же самое, что и Items.Count - 1
, вам придется искать по всему миру, чтобы найти программиста, который бы написал первый. Вы могли бы продолжать это делать, но вы будете плавать против прилива. Ваш код будет выглядеть иначе, чем любой другой код, и будет большой импеданс для любых других читателей вашего кода. Я предлагаю вам пойти с потоком на этом.
На какой линии находится отладчик? –
Этот код отлично работает для меня: 'var i: Integer; begin for i: = ListBox1.Items.Count - 1 downto 0 do, если ListBox1.Selected [i] then ListBox1.Items.Delete (i); конец; '. –
Проблема с ** Selected [ii] ** – Dominikis