Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Внизпочему не работает exit Найти похожие ветки
← →
Ольчик (2007-01-19 14:31) [0]Привет! Подскажите, почему в консольном приложении у меня exit вызывал прерывание текущей процедуры, а в визуальном - нет? В справке написано, что exit - процедура из модуля system, я пыталась добавить его в список модулей, но пишет ошибку, что повторно переопределяется (redecleared), хотя нигде больше system нету.
← →
Комбинатор (2007-01-19 14:33) [1]вызывай закрытие главного окна
← →
Anatoly Podgoretsky © (2007-01-19 14:33) [2]Учти одну вещь, компилятор не ошибается, так что можешь ему верить безоговорочно. А вот люди ошибаются, поэтому им не верь, особенно себе.
← →
Anatoly Podgoretsky © (2007-01-19 14:34) [3]Кстати модуль System подключать не надо, он уже подключен.
← →
Ольга (2007-01-19 14:35) [4]мне не надо закрывать главное окно, мне надо вернуться управление в другую процедуру, откуда эту вызывала
← →
Сергей М. © (2007-01-19 14:36) [5]
> в консольном
> в визуальном
В win32 нет понятия "визуальное приложение".
Либо оно консольное либо оно не консольное.
> exit вызывал прерывание текущей процедуры
ну не ври уже)
Не "прерывание", а завершение выполнения.
ПРиводи проблемный код с подробными комментариями, где и что у тебя там не славабогу ..
← →
Vlad Oshin © (2007-01-19 14:38) [6]Процедуру с приложением не путаете?
Выход из onButtonClick например, но не из приложения. В консольном, возможен, просто выход если IP не в теле процедуры
Код можно посмотреть?
← →
Ольга (2007-01-19 14:38) [7]В одной процедуре
while Possible do
begin
В функции Possible
for i := 1 to n do
if not Visited[i] then
exit;
← →
Ольга (2007-01-19 14:40) [8]путаю, вы все правильно поправляете
← →
Сергей М. © (2007-01-19 14:42) [9]
> В функции Possible
Ну и ?
При вызове Exit в теле ф-ции Possible() происходит, как и положено, ее завершение и возврат управления коду, ее вызвавшему.
А то что ты в своей ф-ции Possible() перед вызовом Exit не удосужилась установить результат ее завершения должным образом - это уже твоя проблема, а не проблема оператора Exit.
← →
Vlad Oshin © (2007-01-19 14:43) [10]а как определили что не выходит из процедуру?
поставте showmessage("");
for i := 1 to n do
if not Visited[i] then exit;
Showmessage("выхода не было");
← →
Ольга (2007-01-19 14:46) [11]У меня полный текст функции Possible был:
possible := True;
for i := 1 to n do
if not Visited[i] then exit;
possible := False
Я думала, что первой строчки достаточно, чтобы установить результат функции даже на случай экзита.
А когда добавила такую строку на then перед exit, все заработало!
Не очень ясно, почему, но, все равно, большое спасибо!
← →
Сергей М. © (2007-01-19 14:51) [12]
> первой строчки достаточно, чтобы установить результат функции
> даже на случай экзита.
Точно так-с.
> когда добавила такую строку на then перед exit, все заработало
Вот этоif not Visited[i] then
exit;
ничем не отличается от
if not Visited[i] then exit;
p.s.
"А был ли мальчик ?" (С)
))
← →
Ольга (2007-01-19 14:53) [13]да нет, я имела в виду, что теперь фукнция выглядит так:
possible := True;
for i := 1 to n do
if not Visited[i] then
begin
possible := True;
exit;
end;
possible := False
← →
Сергей М. © (2007-01-19 14:55) [14]
> Ольга (19.01.07 14:53) [13]
Вот этоpossible := True;
for i := 1 to n do
if not Visited[i] then
begin
possible := True;
exit;
end;
possible := False
принципиально ничем не отличается от
possible := True;
for i := 1 to n do
if not Visited[i] then exit;
possible := False
??
← →
Ольга (2007-01-19 14:56) [15]ну я тоже так думала, но почему-то начало работать.
честно, я больше ничего не меняла.
где-то в голове, наверное, у меня ошибка
← →
Сергей М. © (2007-01-19 14:58) [16]А даже если бы (что совершенно невероятно) и отличалось, нет никаких оснований для возникновения вопроса - Exit как работал, так и работает)
← →
Ольга (2007-01-19 14:59) [17]а больше мне не на что было подумать
← →
Ольга (2007-01-19 15:02) [18]не такой уж я специалист, чтобы хорошо разобраться в чем проблема, но ваша фраза
> не удосужилась установить результат ее завершения должным
> образом
привела к работоспособности программы.
Спасибо
← →
Сергей М. © (2007-01-19 15:02) [19]Есть такое слово - отладчик...
← →
Ольга (2007-01-19 15:05) [20]а почему работает - кто его знает...
отладчик не помог.
вот можете объяснить, почему заработало?
ну и ладно.
не очень-то и хотелось.
← →
Сергей М. © (2007-01-19 15:06) [21]
> Ольга (19.01.07 15:02) [18]
см. [14]
← →
Ольга (2007-01-19 15:06) [22]Но БОЛЬШОЕ СПАСИБО. Я не хотела грубить. Извините.
← →
Сергей М. © (2007-01-19 15:07) [23]
> можете объяснить, почему заработало?
А что не работало-то ?
Еще раз повторяю - Exit как работал, так и работает)
Твоя "проблема" не имеет к корректности работы Exit, даже если в ней усомниться, ни малейшего отношения.
← →
Сергей М. © (2007-01-19 15:12) [24]Анекдот в тему:
Мужик в 12 ночи ползает вокруг фонарного столба на карачках.
- Мужик, ты что там ползаешь ?
- Да вот, ключи потерял ..
- А где потерял-то ?
- А я знаю ? Уходил из дома - были, домой пришел - нету ..
- Ну и какого ж ты ищешь свои ключи именно здесь ?
- А тут светлее !
← →
Ольга (2007-01-19 15:14) [25]:)
Все приоритеты правильно расставил. Где легче - там и надо искать. А я добросовестно искала ошибку 15 минут. Потом форум показался мне более светлым местом, чем моя голова.
← →
Сергей М. © (2007-01-19 15:16) [26]
> Ольга (19.01.07 15:14) [25]
Ну если ты поняла, что с Exit-ом проблем никаких нет (хоть в консольном, хоть не в консольном), то это уже радует)
← →
ors_archangel © (2007-01-19 20:47) [27]
> Сергей М.
> В win32 нет понятия "визуальное приложение".Либо оно консольное
> либо оно не консольное.SUBSYSTEM = DW NT Subsystem required to run this image.
The values are:
o 0000h __Unknown
o 0001h __Native
o 0002h __Windows GUI
o 0003h __Windows Character
o 0005h __OS/2 Character
o 0007h __Posix Character
Консольное, да - Windows Character, но разве Windows GUI - не означает Graphical User Interface, что тоже самое, что визуальный интерфей --> визуальное приложение (а не просто не консольное)? Т.е. программа запускается либо в консолькой подсистеме, либо в графической, запуск в графической разве не означает, что приложение можно отнести к графическому типу?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.041 c