Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/39: Рейтинг темы: голосов - 39, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36

Прервать действие функции

12.03.2009, 16:09. Показов 7987. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Требуется, при достижении определенного условия, уточню, if (size<5), прервать действие функции, ну и вообще программы. То бишь, вывести месседж (ну это без проблем, ShowMessage("Бла бла бла, введите корректные данные")) и не продолжать работу программы.

Делается это все в функции. Не используя ф-ию, делал банальное goto. Сейчас, можно конечно передать функции параметр с именем метки, и юзать его там, но хотелось бы узнать, может есть другой способ?

Заранее спасибо)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2009, 16:09
Ответы с готовыми решениями:

Переменная в функции содержащая действие
День добрый. Никак не могу разобраться с образовавшееся проблемой. Создал функцию Authentic(String &amp;load): void __fastcall...

Прервать цикл
Доброго вечера... появилась задача - есть код for(ptrdiff_t i = 0; i &lt; ptrdiff_t(Memo1-&gt;Lines-&gt;Count); i++) ...

Как прервать обработчик?
Здравствуйте, есть такая задача. В обработчике кнопки создается и запускается поток, который завершается по определенному счетчику (числу...

13
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 16:14
Ага... From.close() называется...
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
12.03.2009, 16:14  [ТС]
Vourhey, разве это не закроет форму? хD
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 16:24
прервать действие функции, ну и вообще программы
закрытие формы как раз прервет действие программы.

Добавлено через 54 секунды
Или кто-то неправильно выразился? Тогда return из функции.
1
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
12.03.2009, 16:31  [ТС]
Все-таки я неправильно выразился.
В-общем, нужно остановить работу функции и программы в-целом, но так, чтобы форма никуда не девалась, и пользователь мог снова ввести нужные данные и запустить эту функцию. О как)
А return не помог, поставил его, но он просто прерывает работу функции, так?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 16:35
А что тебе еще-то надо? Да, он выходит из функции. Тогда пиши тут, что значит
"остановить работу программы в-целом".
Или давай сюда код, а то вообще непонятно, че за фантазии у тебя в голове.
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
12.03.2009, 16:46  [ТС]
ну йопт.
сделать так, чтобы после выхода из функции все дальнейшие действия не выполнялись. Просто стоп. Оставить форму и все.
Пример:
C++
1
2
3
4
5
etn in;
in.Func(a, b, c);
 
x=o+p;
блаблабла еще действия
так вот, чтобы при досрочном прерывании функции (по достижению условия) все, что ниже - не выполнялось. А при обычной работе ф-ии (то бишь условие if (size<5), которое мы прописываем в теле функции - не выполнялось) - выполнялось. Тавталогия, мать ее за ногу.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 16:52
Да, йопт, тебе че, не сделать возвращаемое значение из функции по return?
if (in.Func(a, b, c))
{выходим}
бла-бла-бла.

а в Func в одном случае return 0 в другом return 1.
Не учили значения возвращать и проверять... На билдерах пишут, по языку по нулям...
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
12.03.2009, 17:26  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
а в Func в одном случае return 0 в другом return 1.
да что ж вы так блин. В функции этой return x[i], либо прерывание действия. Впрочем, устал Вам объяснять, извините за такой диалог.
Другой тогда вопрос. Собираюсь передать в функцию метку, дабы совершить goto <метка> в самой функции, если такое возможно. Как передается метка?
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 18:00
Вот, блин... Тогда кто тебе мешает передать параметр по указателю/ссылке, а потом проверить его значение?
C++
1
2
3
func(a,b,c, &retval)
if(retval) {i_m_stupid_in_C++}
else {still_stupid}
Добавлено через 33 секунды
Иди нафиг учи матчасть... Читай основы С++, потом за билдер сядешь.
0
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 36
12.03.2009, 18:03  [ТС]
Цитата Сообщение от Vourhey Посмотреть сообщение
Иди нафиг учи матчасть... Читай основы С++, потом за билдер сядешь.
учить матчасть, к сожалению, некогда.
Спасибо за помощь, уважаемый. И товарищеский совет. Не посылайте нафиг, если посланным быть не хотите.
С уважением, Александр.
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.03.2009, 18:08
Торопился. Хотел вот так написать:
"Иди, нафиг, учить матчасть". Вот теперь правильно.
0
1 / 1 / 0
Регистрация: 10.02.2009
Сообщений: 4
17.03.2009, 17:42
Abort();
1
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
18.03.2009, 06:30
2mrtman: мой тебе совет забудь про метки (while и do...while в помощь, например), про метки можно вспомнить, если только ты оказался в глубокой-преглубокой месте... то бишь в нескольких вложенных циклах и тебе надо срочно оттуда выпрыгнуть, а такое бывает весьма редко...
прервать как ты говоришь функцию нельзя (то бишь выскочить из нее по метке)... т.е. возвратить один фиг придется что-нибудь...
и если ты после возвращения (а ты возвращаешь что-то левое типо) хочешь еще узнать что случилось в функции, то заведи переменную (public для формы или глобальную накрайняк), в ней все это описывай и далее по выходе из функции принимай решение...
вроде все просто
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2009, 06:30
Помогаю со студенческими работами здесь

Динамически прервать работу
Как можно прерывать процесс. Например, у меня в цикле идут вычисления, когда я нажимаю кнопку, он прекращает работу

Прервать цикл по условию
помогите найти ошибку, цикл проверяет столько раз сколько записей в листбокс, и столько же раз выводит ShowMessage, как сделать чтоб цикл...

Прервать цикл while через 50 действий
как остоновить цикл через 50 действий вернуть в false или прервать break'ом

Прервать запрос IdHTTP1->(zapros);
Ребята подскажите как программно прервать запрос stroka = IdHTTP1-&gt;Get(zapros); Заранее благодарен. Пробовал так, все равно не...

Как прервать обработчик события?
Доброе время суток. Помогите разобраться. По нажатию кнопки организуется длинный цикл, при этом на форме все элементы становятся...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru