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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 12:07   #1
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
Восклицание Как остановить программу по условию?

В общем вопрос такого характера:
Проверяю на корректность ввода данных в поля Edit, если не корректно вывожу сообщение. Дальше программа должна остановиться и выделить что либо! Но на сегодняшний момент сообщение об ошибки выводится, а дальше программа выполняет последовательно всю процедуру и вылетает с ошибкой! как исправить?
kta87 вне форума Ответить с цитированием
Старый 26.10.2011, 12:15   #2
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Форум телепатов находится по другому адресу.
Хотите ответ - пишите конкретно и с вырезкой из исходников.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 26.10.2011, 12:44   #3
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
По умолчанию

Ну, во-первых, лучше не дать возможности юзеру ввести кривые данные в Edit;
а во-вторых, если каким-то чудом ему это удастся, то для остановки программы пользуйтесь блоком try...except. А чтоб выйти принудительно из процедуры при ошибке используйте процедуру Exit.
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 26.10.2011, 12:49   #4
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

не всегда это возможно: КИП (коэффициент использования парка) ограничиваю символьное ввод в этот Edit всего кроме цифр и "," но это коэффициент должен быть меньше или равен 1, иначе он ошибочен, но это уже ни как не ограничишь...Вот и прошу написать мне работающий кусочек кода по предотвращению работы процедуры в случае неверных данных!

Зачем вы отвечаете с цитированием предыдущего поста ?
Вы не видите кнопку справа от кнопки "Цитата" ? Или вам почему-то не видно пустое окно редактора под последним сообщением ?
За оверквотинг у нас штрафуют, имейте это ввиду. Дабы не нарушать правила, внимательно их почитайте:
http://programmersforum.ru/announcement.php?f=2
А пока - штраф за флуд, за нежелание эти правила соблюдать.
Штраф за флуд вроде бы невелик, но за 5 раз вполне набирается на бан...
Причем автоматически...

Последний раз редактировалось kta87; 26.10.2011 в 16:04.
kta87 вне форума Ответить с цитированием
Старый 26.10.2011, 13:19   #5
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

как вариант проверять значение в Edit в момент потери фокуса. событие называется onExit. в этом событии вставляйте проверку на правильность ввода.
еще можно использовать onKeyPress. тогда можно проверять ввод значения "на лету" т.е по мере ввода символов
Dush вне форума Ответить с цитированием
Старый 26.10.2011, 13:26   #6
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Вот и прошу написать мне работающий кусочек кода по предотвращению работы процедуры в случае неверных данных!
Это может выглядеть следующим образом:
Код:
MessageDlg('Ошибка!', mtError, [mbOK], 0);
exit; // принудительное завершение прцедуры
Вадим Мошев вне форума Ответить с цитированием
Старый 26.10.2011, 13:28   #7
Стелс
Я с вами :-)
Форумчанин
 
Аватар для Стелс
 
Регистрация: 19.10.2008
Сообщений: 110
По умолчанию

Цитата:
Сообщение от kta87 Посмотреть сообщение
В общем вопрос такого характера:
Проверяю на корректность ввода данных в поля Edit, если не корректно вывожу сообщение. Дальше программа должна остановиться и выделить что либо! Но на сегодняшний момент сообщение об ошибки выводится, а дальше программа выполняет последовательно всю процедуру и вылетает с ошибкой! как исправить?
Код:
try
ваш код
except
Application.Terminate;
٩(๏̯͡๏)۶٩(๏̯͡๏)۶٩(๏̯͡๏)۶ моя любимая книга - Окна for чайников . Кодить начал ещё вчера . ......кто там кодит ? Да не кто не кодит это я куякнулся
Стелс вне форума Ответить с цитированием
Старый 26.10.2011, 13:36   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

например по нажатию кнопки вычисления:
Код:
if KIP>1.0 then
 begin
  ShowMessage('КИП должен быть меньше или равен единице.');
  exit;
 end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.10.2011, 13:52   #9
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
Хорошо

отлично ребята, огромное спасибо, ща все попробую, посмотрю что резвее!
kta87 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно создать программу в Паскале по этому условию Кристина) Паскаль, Turbo Pascal, PascalABC.NET 0 17.05.2011 16:17
Как остановить программу Ayubkhon Общие вопросы Delphi 6 05.07.2010 09:59
Как завершить программу по условию Iceman Общие вопросы Delphi 8 14.03.2009 00:46
как программно остановить программу Doget Помощь студентам 3 16.01.2009 07:45
Как остановить поток? Никки Win Api 3 06.12.2007 22:04