Начала объектно-ориентированного программирования в Delphi (уроки 4–7)

Разделы: Информатика


Урок 4: Создание вкладок на языке Delphi.


Для создания нескольких вкладок на одной форме (рис. 1) нужно выполнить следующие действия:

  1. В палитре компонентов выбрать вкладку Win32;
  2. Выбрать компонент PageControl;
  3. Создать на форме объект pageControl нужного размера;
  4. Правой кнопкой мыши вызвать контекстно независимое меню (рис. 2);
  5. выбрать пункт New Page;

После этого появится дополнительная вкладка. Для создания нескольких вкладок п.п. 5-6 выполнить несколько раз.

Для изменения названия вкладки необходимо:

Либо сразу изменить свойство Caption вновь образованной вкладки;

Либо (если сразу не изменили надпись) выбрать нужную вкладку щелчком левой кнопки мыши по её ярлычку и той же кнопкой мыши вызвать свойства указанной вкладки, щелкнув в её тело.

Удалить ненужную вкладку можно клавишей Delete клавиатуры, предварительно выбрав её щелчком левой кнопки мыши.

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

Задания для самостоятельной работы:

  1. Создать проект, содержащий 6 вкладок, на первых трех вкладках реализовать примеры 1, 1_1 и 1_2 (см. уроки 2-3), на следующих трех вкладках – примеры 2, 2_1 и 2_2. Назвать вкладки по смыслу выполняемых действий.
  2. Создать проект «Переменные» (см.учебник Информатика и ИКТ Н.Д.Угринович, стр. 216-218, год издания 2007).

Урок 5-6: Проект «Переменные» на языке Delphi.

1. Создать на форме с помощью компонента PageControl (вкладки Win32) три вкладки на форме.

2. В окне ИНСПЕКТОР ОБЪЕКТОВ в свойстве Caption ввести название для формы Переменные;

3. В окне ИНСПЕКТОР ОБЪЕКТОВ в свойстве Caption ввести названия вкладок: Числовые, Строковые, Логические.

4. На вкладке Числовые разместить:

а) для ввода чисел два текстовых поля Edit1 и Edit2;
б) для вывода результатов надписи Label1, Label2? Label3;
в) для вывода поясняющих текстов пять надписей Label4 – Label8;
г) для создания обработчика события кнопку Button1;
д) задать им следующие свойства:

  • Edit1, Edit2 – Caption – очистить;
  • Label1, Label2, Label3 – Caption – очистить;
  • Label4 – Caption – A;
  • Label5 – Caption – B;
  • Label6 – Caption – Целая часть;
  • Label7 – Caption – Частное;
  • Label8 – Caption – Двойная точность.
  • Button1 – Caption – Разделить А на В.

Для кнопки Button1 записать программный код:

var
A:byte;
B:byte;
C:integer;
D:single;
E:double;

procedure TForm1.Button1Click(Sender: TObject);
begin
A:=StrToInt(Edit1.Text);
B:=StrToInt(Edit2.Text);
C:=A DIV B;
D:=A/B;
E:=A/B;
Label1.Caption := IntToStr(C);
Label2.Caption := FloatToStr(D);
Label3.Caption := FloatToStr(E);
end;

5. На вкладке Строковые разместить:

а) для ввода чисел два текстовых поля Edit3 и Edit4;
б) для вывода результата надпись Label9;
в) для вывода поясняющих текстов три надписи Label10 – Label12;
г) для создания обработчика события кнопку Button2;
д) задать им следующие свойства:

  • Edit3, Edit4 – Caption – очистить;
  • Label9 – Caption – очистить;
  • Label10 – Caption – chrS;
  • Label7- Caption – strS;
  • Label8 – Caption – chrS+strS;
  • Button2 – Caption – Вывести результат.

Для кнопки Button2 записать программный код:

var chrS:pchar;
strS:string;

procedure TForm1.Button2Click(Sender: TObject);
begin
chrS:= PChar(Edit3.Text);
strS:=Edit4.Text;
Label9.Caption := chrS + strS;
end;

6. На вкладке Логические разместить:

а) для вывода логических выражений две надписи Label13, Label14;
б) для вывода результата надпись Label15;
в) для вывода поясняющих текстов три надписи Label16 – Label18;
г) для создания обработчика события кнопку Button3;
д) задать им следующие свойства:

  • Label13 – Caption – 5>3;
  • Label14 – Caption – 2*2 = 4;
  • Label15 – Caption – очистить;
  • Label16 – Caption – A;
  • Label17 –Caption – B;
  • Label8 – Caption – А&В;
  • Button3 – Caption – Определить А&В.

Для кнопки Button3 записать программный код:

var
L1: boolean;
L2: boolean;
L3: boolean;

procedure TForm1.Button3Click(Sender: TObject);
begin
L1 := 5 > 3;
L2 := 2 * 2 = 5;
L3 := L1 and L2;
Label15.Caption := BoolToStr(L3,True);
end;

7. Запустить проект на выполнение, проверить его работоспособность.

Урок 7: Использование разветвляющихся структур. Объект Application. Процедура Val.

Задание: Создать проект для перевода градусной меры угла в радианную.

В итоге реализации проекта должна быть использована форма вида:

 

Выполнение проекта:

1. Создадим визуальный интерфейс приложения (см. рис.6), для этого поместим на форму следующие компоненты:

  • Label1 и Label2 для вывода пояснений,
  • Edit1 для ввода градусной меры угла,
  • Edit2 для вывода радианной меры угла,
  • Button1 для запуска процедуры перевода.
Name MainF
Caption Перевод из градусной меры угла в радианную

Изменить свойства формы:

Изменить свойства компонентов в соответствии с таблицей:

элемент свойство значение
Label1 Caption Введите градусную меру угла
Label2 Caption Радианная мера угла
Edit1 Text 0
Edit2 Text
Enabled
0
False
Button1 Caption Перевести

Свойство Enabled (доступность) элемента Edit2 устанавливается в значение False для того, чтобы нельзя было ввести в это поле никакую информацию, так как данный элемент используется для вывода результата.

2. Создадим программный код.

Создадим обработчик события для кнопки Button1.

Нужно взять информацию, введенную в компонент Edit1, преобразовать в соответствии с математической формулой:

Радианная мера угла = Градусная мера угла * Пи / 180 и отобразить результат в компоненте Edit2.

При выполнении этих действий неминуемо возникнет проблема преобразования форматов данных, так как в Edit1 вводится строковая переменная, а нам необходимо использовать её для вычислений как число. Для преобразования строки в вещественное число воспользуемся процедурой Val:

Procedure Val(S; var V; var Code: integer),

Где S – строковое представление числа, V – параметр, в котором процедура сохраняет преобразованную строку в целом или вещественном числе, Code – если строка S не является представлением числа (содержит посторонние символы), то параметр Code будет сохранять номер ошибочного символа.

Итак, введем следующую последовательность операторов в обработчике события OnClick кнопки Button1:

procedure TMainF.Button1Click(Sender: TObject);
var Ad, Ar: real;
            Error: integer;
begin
Val(edit1.Text,Ad,Error);
if Error=0 then
begin
            Ar:=Ad*Pi/180;
            Edit2.Text:=FloatToStr(Ar);
end
else
begin
Application.MessageBox('Ошибка при вводе градусной меры угла','Ошибка',MB_OK);
Edit1.Text:='0';
Edit2.Text:='0';
end;
end;

3. Поясним операторы обработчика события:

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

Если параметр Error равен нулю, то ошибок при вводе числа нет. В этом случае получаем радианную меру угла, функция FloatToStr преобразует вещественное число в строку. В противном случае воспользуемся методом объекта Application для отображения диалогового окна об ошибке и восстановим нулевые значения в компонентах Edit1 и Edit2.

Объект Application.MessageBox ('Ошибка при вводе градусной меры угла','Ошибка',MB_OK); позволяет выдавать на экран новое окно, название которого ‘Ошибка’, сообщение в окне ‘Ошибка при вводе градусной меры угла’. Параметр MB_OK обозначает, что в окне имеется кнопка ‘OK’.

Задания для самостоятельного решения:

  1. Создайте проект, производящий обратное преобразование – из радианной меры угла в градусную, результат округлять до целых.
  2. Создайте проект, определяющий корни квадратного уравнения по его коэффициентам.