![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 29.01.2012
Сообщений: 11
|
![]()
Доброго утра, дня или вечера! Кому как.
![]() Не могу разобраться с циклом: Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
- последний break вообще ни к чему.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 29.01.2012
Сообщений: 11
|
![]() |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
Я считаю, что неправилен сам подход: в цикле нужно модифицировать какую-то логическую переменную, а после исполнения цикла, в зависимости от значения этой переменной, уже работать с самой формой3.
Напр: bool isdeleted; for(...){.. isdeleted=true;}; if(!isdeleted) Form3->Show; |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
У Вас цикл организован как i=sl->Count-1, а внутри цикла размер массива sl изменяется. Если действительно хотите менять размер массива, тогда нужно это делать через while.
Код:
Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 30.01.2012 в 11:09. |
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 29.01.2012
Сообщений: 11
|
![]() Цитата:
. |
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
никаких парадоксов, - если Вы собираетесь удалять две предшествующие строки, то ограничивать цикл надо не i>=0, а i>1 или внутри цикла сделать анализ, чтоб не обращаться к несуществующим (с отрицательным индексом) строкам компонента.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 29.01.2012
Сообщений: 11
|
![]() Код:
Помогите найти ошибку =( |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 14.10.2011
Сообщений: 267
|
![]()
- просто надо душевнее к циклам относиться... - Вы и запись в файл, и открытие новой формы - все выполняете, не выйдя из цикла. Тут любой компилятор взбесится.
После x=true; я бы еще добавил i = i-2: для коррекции индекса (Вы ж три последние в цикле строки "снесли"...) и закрыл фигурную скобку. Потом - анализ х: если истина - ... ну, и дальше по тексту - иначе - ShowMessage. |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 29.01.2012
Сообщений: 11
|
![]()
Вот весь код кнопки, при выполнении условия if в первом цикле всё работает нормально, ошибок не вылетает. Но если выполняется else {ShowMessage("Not Found");}, то после нажатия в этом сообщении на "Ок" вылетает "raised exception class EStringListError with message List index out of bounds (-1)"
Код:
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с циклом. | glebast | Помощь студентам | 1 | 20.01.2012 16:41 |
Работа с циклом ( находим сумму) - не могу понять , где ошибся ) | zipo666 | Помощь студентам | 3 | 01.11.2011 12:51 |
работа с циклом | alekstav | Общие вопросы Delphi | 1 | 31.12.2010 09:18 |
Задача в паскале. Работа с циклом while do. | Йохан Шмидт | Помощь студентам | 12 | 28.07.2010 10:43 |
Работа с циклом в StringGrid-e | artemavd | Общие вопросы Delphi | 2 | 20.07.2009 22:27 |