Компоновка. Запуск программы. Ошибки времени выполнения.
В листинге 2.3 приведена функция обработки события Onclick на командной кнопке Вычислить. В функцию включены инструкции обработки исключений.
Листинг 2.3. Обработка исключений.
void __fastcall TForml::ButtonlClick(TObject *Sender) { float u; // напряжение float r; // сопротивление float i; // ток // получить данные из полей ввода // возможно исключение – ошибка преобразования строки в число try { u = StrToFloat(Editl › Text); г = StrToFloat(Edit2 › Text); } catch (EConvertError &e) ( ShowMessage("При вводе дробных чисел используйте запятую."); return; } // вычислить ток // возможно исключение – деление на ноль try { i = u/r; } catch (EZeroDivide &e) { ShowMessage("Величина сопротивления не должна быть равна нулю"); Edit2 › SetFocus(); // курсор а поле Сопротивление return; } // вывести результат в поле метки Label4 › Caption = "Ток: " + FloatToStrF(i,ffGeneral,7.3); }
В приведенной функции для вывода сообщений в случае возникновения исключений использована функция ShowMessage, которая выводит на экран окно с текстом и командной кнопкой ОК. Инструкция вызова функции ShowMessage выглядит так:
ShowMessage(Сообщение);
Где сообщение – строковая константа (текст, который надо вывести). На рис. 2.36 приведен вид окна сообщения, полученного в результате выполнения инструкции:
ShowMessage("Величина сопротивления не должна быть равна нулю.");
Рис. 2.36. Сообщение, выведенное функцией ShowMessage
Следует обратить внимание на то, что в заголовке окна сообщения, выводимого функцией ShowMessage, указывается название приложения. Название приложения задается на вкладке Application окна Project Options. Если название приложения не задано, то в заголовке будет имя исполняемого файла.
Для вывода сообщений можно использовать функцию MessageDlg. Функция MessageDlg позволяет поместить в окно с сообщением один из стандартных значков, например "Внимание", задать количество и тип командных кнопок и определить, какую из кнопок нажал пользователь. На рис. 2.37 приведено окно, выведенное в результате выполнения инструкции:
MessageDlg("Файл c:\Xtemp\\test.txt будет удален.", mtWarning, TMsgDlgButtons() << mbOK << mbCancel, 0);
Рис. 2.37. Пример окна сообщения