Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.11.2012, 21:34
Аватар для Aleks26
Aleks26 Aleks26 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 32
Репутация: 12
Вопрос О работе с блоком обработки исключений

У меня есть простейший код, в котором я ввожу в два поля TEdit значения переменных, объявленных как целые. Потом, используя IntToStr, считается их сумма. Вокруг каждого IntToStr я ставлю блоки try ... except ... end; В случае ошибочного ввода одного из чисел я очищаю соответствующий Edit и передаю ему фокус. Если неверная запись только в одном поле редактирования, все идет без проблем. Но если оба поля ошибочные, то, проскакивая первый блок обработки исключений, фокус устанавливается на втором. Можно ли как то "притормозить" программу и, пока не будет правильно введено первое поле, не переходить ко второму блоку обработки исключений?
Ответить с цитированием
  #2  
Старый 09.11.2012, 21:42
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

exit;
А вообще, в этой ситуации правильнее использовать TryStrToInt.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Этот пользователь сказал Спасибо PhoeniX за это полезное сообщение:
Aleks26 (10.11.2012)
  #3  
Старый 09.11.2012, 22:40
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Есть еще вариант, ограничение ввода...

PhoeniX, что-то я не понял с выходом, код покаж.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #4  
Старый 10.11.2012, 08:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Код:
  try
    // fail here
  except
    // обработка
    exit; // вываливаемся из процедуры
  end;
  // Сюда мы дойдём, только если не было исключений.
  // ...
ЗЫ: гвозди микроскопом...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj

Последний раз редактировалось PhoeniX, 10.11.2012 в 08:39.
Ответить с цитированием
  #5  
Старый 10.11.2012, 12:45
Аватар для Aleks26
Aleks26 Aleks26 вне форума
Прохожий
 
Регистрация: 19.12.2010
Сообщения: 32
Репутация: 12
По умолчанию

Цитата:
Сообщение от PhoeniX
exit;
А вообще, в этой ситуации правильнее использовать TryStrToInt.
Большое спасибо. С функцией TryStrToInt все без проблем.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:45.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025