- •Лабораторная работа №2 .
- •1.Отличие ObjectPascal ( Delphi ) от tPascal.
- •Функции преобразования типов.
- •Константы, определяющие тип сообщения.
- •Текст на кнопках.
- •1.3 Изучение элементов страницы Стандарт: поле метки tLabel и однострочного текстового редактора tEdit, их свойств и методов.
- •Использование компонентов и их свойства.
- •Компнент tLabel
- •Однострочный текстовый редактор tEdit
- •1.4 Создать приложение Калькулятор.
- •1.5 Контрольное задание: Создать приложение »Нахождение корней квадратного уравнения».
- •1.6 Отчет:
- •1.7 Контрольные вопросы:
- •Литература
1.3 Изучение элементов страницы Стандарт: поле метки tLabel и однострочного текстового редактора tEdit, их свойств и методов.
.
Использование компонентов и их свойства.
Компнент tLabel
Property:
Name <имя переменой>-имя объекта в программе, задается по правилам задания имен. .Стирать нельзя.
Caption: string- текст на метке.
Autosize: Boolean- автоизменение размера метки в зависимости от длины текста.
Wordwrap: Boolean –разрешает разрыв строки на границе слова. Используется для вывода многострочных надписей.Autosize должен быть = True.
LayOut : TtextLayout, где
TtextLayout (Tltop, Tlcentral, Tlbutton).
- выравнивание по верху, центру и низу соответственно
Однострочный текстовый редактор tEdit
Однострочный текстовый редактор, позволяет вводить или отображать строки.
Property
Text: string- текст на элементе.
Borderstyle : TBorderStyle=( bsNone, bsSingle). Это свойство определяет стиль оформления элемента. BsNone без оформления и BsSingle оформление линией.
Autosize - то же, что у Label.
Maxlength: integer- максимальная длина строки. 0- длина неограничена.
Passwordchar: char- символ, заданный в этом свойстве, заменяет собой любой символ текста при отображении в окне ввода. Используется для ввода паролей.
Readonly: Boolean- можно/нельзя менять текст в окне.
Enabled: Boolean- разрешает или запрещает доступ к компоненту.
Visible: Boolean- определяет будет ли компонент отображаться на форме.
Procedure:
Selectall - выделяет весь текст.
Clearselection- удаляет выделенный текст.
Clear – очищает компонент.
1.4 Создать приложение Калькулятор.
Задание:
Написать программы: Простейшего калькулятора. Предусмотреть возможность деления на ноль и извлечения корня из отрицательного числа. Ненужные поля скрыть. В приложении Калькулятор сообщения об ошибках: деление на ноль и извлечение квадратного корня из отрицательного корня, - вывести с помощью окна сообщения.
Калькулятор:
Порядок выполнения:
Дважды щелкнуть на кнопке +. В открывшемся программном коде набрать следующий текст:
Procedure Tform1.BtPlus(Sender:TObject);
var
a, b, c : real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c := a+b;
Edit3.Text := FloatToStr(c);
end;
Аналогично выполнить для вычитания, умножения, деления, извлечения квадратного корня.
Для деления, извлечения квадратного корня предусмотреть, что могут возникнуть критические ситуации (деление на ноль, извлечение корня из отрицательного числа). При извлечении корня элемент Edit2 сделать невидимым. Для проверки правильности ввода через Edit используют оператор обработки исключений:
try
A: = strtoint (edit1.Text);
except
showmessage ('Не заданы параметры');
exit
end;
Программа выполняет действия между служебными словами Try и except, если возникает ошибка, выполняются действия между служебными словами except и end, если выполнение операций завершилось успешно, выполняются действия далее по программе., а действия между служебными словами except и end – игнорируются.
Чтобы установить разрешение ввода только десятичных цифр, нужно использовать следующую процедуру обработки события OnKeyPress:
Procedure TForm1.Edit1KeyPress(Sender:TObject; var Key :Char);
begin
if (Key<’0’) or (Key>’9’) then Key:=#0;
end;
Чаще всего нажатие клавиши Enter служит признаком окончания ввода информации в поле редактора, после чего следует перейто к другому элементу управления, т.е. передать ему фокус управления с помощью метода SetFocus. Задание реакции на нажатие клавиши Enter может выглядеть так:
Procedure TForm1.Edit1KeyPress(Sender:TObject; var Key :Char);
begin
if (Key=#13) then
begin
Key:=#0;
Edit2.SetFocus;
end;
end;
Procedure TForm1.Edit2KeyPress(Sender:TObject; var Key :Char);
begin
if (Key=#13) then
begin
Key:=#0;
Edit3.SetFocus;
end;
end;
Procedure TForm1.Edit3KeyPress(Sender:TObject; var Key :Char);
begin
if (Key=#13) then Key:=#0;
end;
Информация последовательно вводится в три поля, являющихся компонентами поля Edit1, Edit2, Edit3. При окончании ввода в первое или второе поле по нажатии клавиши Enter автоматически активизируется очередное поле. Из третьего поля фокус управления автоматически не передается.
Procedure AllEditsKeyPress(Sender:TObject; var Key :Char);
begin
if (Key=#13’) then
begin
form1.SelectNext(Sender as TWinControl, true, true);
Key:=#0;
end;
end;
Для этого нужно включить ее нужно включить процедуру в описание формы и указать в качестве обработчика события OnKeyPress:
Procedure TForm1.FormCreateSender:TObject);
begin
Edit1.OnKeyPress:=AllEditsKeyPress;
Edit2.OnKeyPress:=AllEditsKeyPress;
Edit3.OnKeyPress:=AllEditsKeyPress;
end;