Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2014, 00:23   #1
Serik2010
Пользователь
 
Регистрация: 26.05.2010
Сообщений: 26
Плохо goto между процедурами

Приветствую всех! Такой вопрос с лейблами.

Есть Процедура1, в которой есть Label endProcess. В ней же есть и блок кода который действует по этому лейблу endProcess: Бла-бла-БЛА
Есть Процедура2, из которой мне нужно прыгнуть как раз на этот лейбл endProcess.

Есть ли в делфи возможность объявить глобально как-то этот Label endProcess; но чтобы сам блок был в какой-то процедуре.

Ну или на крайняк передавать в виде параметра этот лейбл ну или еще как-то...

Заранее спасибо.
Serik2010 вне форума Ответить с цитированием
Старый 07.08.2014, 01:27   #2
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Serik2010 Посмотреть сообщение
...Есть ли в делфи возможность...
Нет, в делфи запрещены прыжки между процедурами и в принципе не поощряется использование goto (в качестве механизма обработки ошибок предлагаются исключения). Допустимо использовать goto в некоторых очень специфических алгоритмах, что-то типа автоматной логики - это позволяет их очень компактно записывать. Спорно использование goto для подъема наверх из пачки вложенных циклов.
Вероятнее всего у вас что-то неправильно спроектировано, было бы неплохо более предметно обсудить задачу: что решается и почему появилось желание использовать goto?
StriderX вне форума Ответить с цитированием
Старый 07.08.2014, 02:17   #3
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,926
По умолчанию

Цитата:
Сообщение от Serik2010 Посмотреть сообщение
Приветствую всех! Такой вопрос с лейблами.

Есть Процедура1, в которой есть Label endProcess. В ней же есть и блок кода который действует по этому лейблу endProcess: Бла-бла-БЛА
Есть Процедура2, из которой мне нужно прыгнуть как раз на этот лейбл endProcess.

Есть ли в делфи возможность объявить глобально как-то этот Label endProcess; но чтобы сам блок был в какой-то процедуре.

Ну или на крайняк передавать в виде параметра этот лейбл ну или еще как-то...

Заранее спасибо.
А что мешает реализовать тот блок кода в виде отдельной процедуры/функции?
Глобально объявить "этот Label" теоретически возможно. Но вот куда должна выйти/перейти программа после выполнения этого блока?
Вам нужно найти и прочитать учебник по основам программирования вообще.
northener вне форума Ответить с цитированием
Старый 07.08.2014, 07:58   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А что мешает реализовать тот блок кода в виде отдельной процедуры/функции?
Полюбому. Это самый надежный вариант.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.08.2014, 08:16   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Любой вычислительный процесс в Делфи разбирается в дерево - оформляйте отдельной функцией. По современным требования крайне не рекомендуется Goto (использование графов).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Goto Avvakymova Паскаль, Turbo Pascal, PascalABC.NET 4 09.05.2011 16:25
goto Serg12 Помощь студентам 12 14.06.2010 17:31
goto gagen Общие вопросы C/C++ 18 05.04.2010 13:24
Передача переменных между процедурами Wi1D Помощь студентам 2 14.12.2008 23:55
передача данных между процедурами Неясыть Общие вопросы Delphi 15 18.11.2007 12:54