Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Теоретические сведения. Компонент TEdit (поле редактирования)




Компонент TEdit (поле редактирования)

Компонент Edit используют для ввода/вывода пользователем ряда символов с клавиатуры. Поле редактирования помещается на форму c помощью кнопки на стандартной панели инструментов. При необходимости преобразования полученной строки (свойство Text) в число и наоборот используют стандартные функции преобразования. Кроме известных, поля редактирования обладают свойствами приведенными в табл.13.7.

Таблица 13.7. Свойства TEdit

Свойство Описание свойства Примеры значений
CharCase Вид набираемых символов в поле ecNormal — обычные, ecUpperCase — прописные, ecLowerCase — строчные
Ctl3D Объемное представление компонента True, False
PasswordChar Символ для ввода пароля # 0 — прямое отображение текста, * — текст будет отображаться звездочками, 0 — текст будет нулями
ReadOnly Возможность изменять текст (доступность поля) True — текст нельзя изменить, False — текст можно изменить
Hint Текст подсказки, которая появляется при наведении курсора мыши «Введите число» — произвольный ряд символов
ShowHint Показывать/Не показывать подсказку True, False
Text Текст в поле редактирования «89,3» — произвольный ряд символов

Компонент TRadioButton (переключатель)

Компонент TRadioButton позволяет пользователю выбрать один из предложенных вариантов. Когда пользователь устанавливает один из переключателей, все остальные автоматически снимаются.

Переключатель помещается на форму с помощью кнопки на стандартной панели инструментов. Некоторые свойства переключателей приведены в табл. 14.2.

Таблица 13.8. Свойства TRadioButton

Свойство Описание свойства Примеры значений
Checked Состояние переключателя True — включен, False — выключен
Сарtion Текст, видимый справа от переключателя «Доллары» — произвольный ряд символов

Пример 14. 1. При нажатии на кнопки «Ответ» в окне появляется строка, соответствующая выбранному переключателю (рис. 14.1)

 

 

 

Рис. 14.1. Пример использования компонента TRadioButton (переключатель)Вид формы примера 14.1.

Обработка события, вызванного нажатием на кнопку, имеет такой вид:

procedure TForm1.Button1Click(Sender: TObject);

begin

if RadioButton1.Checked then Edit1.Text:='Ваш возраст - до 20 лет.';

if RadioButton2.Checked then Edit1.Text:='Ваш возраст - от 21 до 30 лет.';

if RadioButton3.Checked then Edit1.Text:='Ваш возраст - от 31 до 40 лет.';

if RadioButton4.Checked then Edit1.Text:='Ваш возраст - от 41 до 50 лет.';

if RadioButton5.Checked then Edit1.Text:='Ваш возраст - от 51 до 60 лет.';

if RadioButton6.Checked then Edit1.Text:='Ваш возраст - после 60 лет.';

end;

Процедуры и функции, реализующие диалоговые окна

Delphi предлагает ряд специальных процедур и функций для отображения простых диалоговых окон общего назначения:

¾ Procedure ShowMessage (const Msg: string);
отображает окно сообщения с кнопкой OK. Заголовок содержит название исполняемого файла приложения, а строка Msg выводится как текст сообщения (рис. 14.2);


 

¾ Function MessageDlg (const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;

отображает окно сообщения в центре экрана и позволяет получить ответ пользователя. Параметр Msg содержит отображаемое сообщение. Окно сообщения может относиться к различным типам и наряду с сообщением содержать картинки. Тип окна определяется параметром DlgType, который может принимать следующие значения:

· mtWarning;

· mtError;

· mtInformation;

· mtConfirmation;

· mtCustom.

Параметр Buttons является множеством, определяет набор кнопок окна и может принимать любые комбинации следующих значений:

· mbYes — кнопка Yes;

· mbNo — кнопка No;

· mbOK — кнопка OK;

· mbCancel — кнопка Cancel;

· mbHelp — кнопка Help;

· mbAbort — кнопка Abort;

· mbRetry — кнопка Retry;

· mbIgnore — кнопка Ignore;

· mbAll — кнопка All.

Для значения параметра Buttons имеются константы, задающие предопределенный набор кнопок:

mbYesNoCancel=[ mbYes, mbNo, mbCancel];

mbOKCancel=[ mbOK, mbCancel];

mbYesAllNoAllCancel = [mbYes, mbYesToAll, mbNo, mbNoToAll, mbCancel];

mbOKCancel = [mbOK, mbCancel];

mbAbortRetryIgnore = [mbAbort, mbRetry, mbIgnore];

mbAbortIgnore = [mbAbort, mbIgnore].

При нажатии любой из указанных кнопок (кроме Help) диалоговое окно закрывается, а результат (свойство ModalResult) возвращается функцией MessageDlg. Различные виды окон сообщений, созданные этой функцией, показаны на рис. 14.3;

¾ function MessageBox (const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;

отображает окно сообщения с заголовком Caption и позволяет получить ответ пользователя. Параметр Text содержит отображаемое сообщение. Параметр Flags задает кнопки окна и может принимать значения:

· MB_ABORTRETRYIGNORE (кнопки Abort, Retry,Ignore)

· MB_OK (кнопка OK, определена по умолчанию).

· MB_OKCANCEL (кнопки OK, Cancel)

· MB_RETRYCANCEL (кнопки Retry, Cancel)

· MB_YESNO (кнопки Yes, No)

· MB_YESNOCANCEL (кнопки Yes, No, Cancel)

В зависимости от выбора пользователя, функция возвращает значения:

IDOK =1 выбрана кнопка OK;

IDCANCEL =2 Cancel;

IDABORT =3 Abort;

IDRETRY =4 Retry;

IDIGNORE =5 Ignore;

IDYES =6 Yes;

IDNO =7 No.

 

 

 

 

Рис. 14.3. Виды окон сообщений функции MessageDlg

Обработчики исключений

В Object Pascal предусмотрены средства перехвата наиболее распространенных ошибок, возникающих при выполнении программы в виде исключений. В приложениях, использующих модуль SysUtils, исключение генерируется, когда происходит ошибка или другое событие, нарушающее нормальную работу программы. Сгенерированное исключение передает управление обработчику исключения, т.е. фрагменту кода, выполняющемуся при наступлении ошибки. Синтаксис операторов защиты от ошибок имеет вид

Try

{Защищенные операторы}

Except

{операторы обработки исключения}

[ Else

{ операторы обработки исключения по умолчанию}

]

End;

Операторы, следующие за ключевым словом try, называются защищенными операторами и реализуют нормальную логику программы. Если при выполнении защищенных операторов происходит ошибка, то генерируется исключение и выполняются операторы, расположенные за ключевым словом except. Таким образом, раздел except выполняется, если исключение произошло при выполнении раздела try. Обработчик исключений, возникших в защищенных операторах, обрабатывает также исключения, появившиеся в программах, вызванных из защищенного фрагмента.

Когда защищенный оператор генерирует исключение, управление немедленно передается в раздел except. Затем приложение пытается определить обработчик, применимый для текущего исключения. Если поиск успешен, то выполняются его операторы, после этого объект исключения автоматически уничтожается. Если применимый обработчик не найден, то выполняется раздел else, содержащий обработчик по умолчанию (если он есть). Затем выполнение программы продолжается начиная с оператора, следующего за блоком except (т.е. расположенного за ключевым словом end).

Оператор on определяет обработчик заданного типа исключений. Операторы on располагаются в разделе except блока try.. except. Общий синтаксис оператора on имеет следующий вид

on [идентификатор_исключения:] тип_исключения do begin

[операторы_обработки_исключения; ] end;

Необязательный идентификатор исключения используется для ссылки на объект исключения, тип которого задан в операторе on. Типы исключений перечислены в приложении.

Чтобы обработчик исключений не прерывал выполнения программымог выполняться в среде разработки Delphi (которая сама перехватывает ошибки), нужно отключить режим интегрированной отладки: меню Tools→Debugger Options... (Инструменты→Параметры отладки...), активизировать вкладку Language Exceptions (Исключения языка), снять флажок IStop [BP2] on Delphi Exceptionntegrated debugging (Интегрированная отладкаПерехват исключений средой разработки) и нажать кнопку ОК (рис. 14.4).

 
 
Рис. 14.4. Окно Debugger Options с флажком Integrated debugging

 

 


Кроме блока try…except в Delphi есть конструкция
try.. finally, имеющая следующую форму:

Try

// Операторы, выполнение которых может вызвать ошибку

Finally

// Операторы, которые должны быть выполнены даже в случае ошибки

end;

Она применяется для выполнения всех необходимых действий перед передачей управления на следующий уровень обработки ошибки или глобальному обработчику. В результате таких действий может произойти, например, освобождение опера­тивной памяти или закрытие файла. Эта конструкция не обрабатывает объект исключительной ситуации и не удаляет его, а выполняет действия, которые должны быть осуществлены даже в случае возникновения ошибки.

Работает конструкция try … finally следующим образом: если в любом из операторов блока try возникает исключительная ситуация, то управление пере­дается первому оператору блока finally. Если же исключительная ситуация не возникла, то последовательно выполняются все операторы обоих блоков.

Пример 14.2. Вычислить значение функции . Экранная форма программы показана на рис. 14.5.

Рис. 14. 5. Вид формы в примерае вычисления функции с обработкой исключительных ситуаций14.2

Вычисление функции и обработка возможных исключений происходят при нажатии кнопки . Обработка этого события имеет вид:

procedure TFrm.BtnResultClick(Sender: TObject);

var y:real;

begin

try

y:=sqrt(StrToFloat(EdtX.Text))/StrToFloat(Edtb.Text);

EdtY.Text:=FloatToStr(y);

except

On EZeroDivide do

MessageDlg('Ошибка. Деление на 0!!!',mtError,[mbCancel],0);

on EMathError do

MessageDlg('Ошибка. Корень от отрицательного числа не существует!!!',mtError,[mbCancel],0)

Else

MessageDlg('Ошибка!!!',mtError,[mbCancel],0);

end;

end;

При вычислении функции возможны исключения: деление на ноль, корень от отрицательного числа и ошибка, связанная с преобразованием символов в число. Эти исключения обрабатываются в блоке try…except, а соответствующие окна с сообщениями изображены на рис. 14.6.

 

 

 

 
 
Рис. 14.6. Экранные формы с сообщениями об ошибках в исключительных ситуацияхпримера 14.2

 


Порядок выполнения работы

1. Создать форму без заголовка. Разместить на форме:

· текстовые поля с указанием номера лабораторной работы, номера варианта и постановкой задачи;

· поля ввода исходных данных. Поля ввода должны снабжаться подсказками;

· кнопки «Вычислить» и «Выход». При нажатии кнопки «Вычислить» должно вычисляться выражение согласно варианту (табл. 14.1) с выводом результата в поле редактирования, которое не должно быть доступно для ввода. При нажатии кнопки «Выход» должно закрываться окно программы;

· переключатели, определяющие выполнять контроль исключительных ситуаций или нет.

2. При выполнении обработки исключительных ситуаций выводить соответствующие диалоговые окна.

Возможный вид главной формы и диалоговых окон показаны на рис. 14.7.

 

Рис. 14. 7. Пример Ээкранныхе формы для лабораторной работы №14

Варианты

Таблица 14.1. Функции для вычисления

Номер варианта Арифметическое выражение Номер варианта Арифметическое выражение
   
   
   
   

 


 

Продолжение табл. 14.1.

Номер варианта Арифметическое выражение Номер варианта Арифметическое выражение
   
   
   
   
   
   
   
   

 


Окончание табл. 14.1.

Номер варианта Арифметическое выражение Номер варианта Арифметическое выражение
   
   
   

Контрольные вопросы

1. Компонент TEdit. Основные свойства.

2. Встроенные процедуры вывода диалоговых окон.

3. Обработка исключительных ситуаций.

4. Обработка исключений во вложенных подпрограммах

Лабораторная работа № 15
Программирование циклов.
Компоненты: флажок, группа компонентов, главное меню, контекстное меню, список действий, область просмотра

Цель работы: изучение компонентов TCheckBox, TGroupBox, TMainMenu, TPopupMenu, TActionList, TMemo и их основных свойств.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных