Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы_Инф_Анг.doc
Скачиваний:
26
Добавлен:
20.11.2019
Размер:
5.19 Mб
Скачать

Следует запомнить!

  1. процесс создания Delphi-программы разбивается на две фазы: фазу конструирования формы и фазу кодирования;

  2. конструирование формы осуществляется с помощью выбора компонентов из палитры и размещения их на форме;

  3. программист может перемещать любой размещенный на форме компонент и изменять его размеры с помощью мыши;

  4. чтобы придать компоненту нужные свойства, используется страница Properties Инспектора объектов;

  5. чтобы компонент мог откликаться на то или иное событие, программист должен создать обработчик события;

  6. обработчик события оформляется в виде процедуры, имеющей составное имя: первая часть имени представляет собой имя класса для формы, вторая часть отделяется от первой точкой и может быть произвольной. Если Delphi автоматически формирует заготовку для обработчика, то вторая часть имени представляет собой объединение имени компонента и имени события без предлога On.

  7. тело процедуры ограничено служебными словами begin ... end и состоит из отдельных предложений (операторов) языка Object Pascal, которые отделяются друг от друга точкой с запятой;

  8. свойства компонента могут изменяться как на этапе разработки приложения, так и во время работы приложения;

  9. в Инспекторе объектов может отображаться лишь часть свойств и событий компонента. Полностью все (кроме частных, private) свойства компонента могут быть доступны при обращении к ним программно.

Общее задание

Добавить в рассмотренный нами проект код, организующий вызов остальных трех форм: Form2, Form3, Form4. Вызов должен происходить при нажатии на соответствующую кнопку: Button2, Button3, Button4. Каждая кнопка должна иметь надпись согласно вызываемой форме: «Форма2», «Форма3», «Форма4».

Лабораторная работа № 2 «Компоненты для отображения и редактирования текста Label, Edit, Memo»

Используя стандартные компоненты для отображения и редактирования текста (Label, Edit, Memo), создайте приложение, позволяющее организовать решение данной в варианте задачи. При решении задачи необходимо обрабатывать числовые данные. Перевод числа в строку для обработки, в целях решения задачи, недопустим!

Пример решения задачи

Задача. Составьте программу, выясняющую является ли число N простым.

При загрузке, Delphi автоматически создает новый проект приложения. Создадим отдельную папку (назовем ее Task1) и сохраним файлы проекта в эту папку, выбрав в среде разработки Delphi меню File > Save All. Delphi автоматически предложит сохранить все файлы проекта.

Переходим на вкладку Standard палитры компонентов Delphi и помещаем на форму компоненты: Memo (многострочный редактор текста, оконный элемент управления), Label (графический элемент управления для отображения однострочного текста), Edit (однострочный редактор текста, оконный элемент управления), Button (обычная кнопка, оконный элемент управления).

Назначим значения свойств компонента Memo1:

  • Align = alTop (выравнивание компонента по верхнему краю);

  • Height = 120 (высота компонента);

  • BorderStyle = bsNone (отсутствие графических рамок у компонента);

  • Alignment = taCenter (выравнивание текста по центру);

  • Enabled = false (компонент не доступен пользователю).

В редакторе свойства Lines компонента Memo1, напечатаем текст задачи (Рис. 1).

Рис. 1. Редактор свойства Lines компонента Memo1.

Назначим значения свойств компонента Label1:

  • Caption = Введите число N (текст компонента);

  • Left = 16 (положение от левого края формы);

  • Top = 144 (положение от заголовка формы);

Назначим значения свойств компонента Edit1:

  • Text = 123 (текст компонента);

  • Left = 16 (положение от левого края формы);

  • Top = 160 (положение от заголовка формы);

  • Width = 265 (ширина компонента).

Назначим значения свойств компонента Button1:

  • Caption = Выполнить (надпись на кнопке);

  • Left = 288 (положение от левого края формы);

  • Top = 160 (положение от заголовка формы);

  • Width = 75 (ширина компонента).

Назначим значения свойств компонента Form1 (формы):

  • Caption = Пример решения задачи (заголовок формы);

  • Color = clWhite (белый цвет формы);

  • Width = 545 (ширина формы);

  • Height = 239 (высота формы);

  • BorderStyle = bsSingle (форма с неизменяемым размером);

  • Position = poScreenCenter (показывать форму в центре экрана).

Форма будет выглядеть следующим образом (Рис. 2):

Рис. 2. Редактируемая форма

Исходные данные (число N) пользователь должен будет ввести при помощи однострочного редактора текста (компонент Edit1). Далее при нажатии на кнопку (компонент Button1), введенные данные обрабатываются согласно условию задачи, и в отдельном информационном окне выводится результат.

Так как нам в задаче требуется в качестве исходных данных получить число, а компонент Edit1 работает только с текстом, т.е. данными типа string, то нам понадобится специальная процедура преобразования типа Val. Эта процедура позволяет преобразовать строку в число, и предотвратить ошибку перевода (например, в ситуации, когда текст не будет состоять только из цифр).

Создадим обработчик события OnClick компонента Button1. Для этого выделим компонент Button1, обратимся к вкладке Events инспектора объектов (Object Inspector). Далее при «двойном щелчке» в области значения события OnClick, Delphi автоматически создаст обработчик этого события и покажет окно редактора кода (Рис. 3).

Рис. 3. Окно редактора кода. Модуль формы. Обработчик события OnClick компонента Button1.

В обработчике события OnClick компонента Button1 поместим программный код решения нашей задачи. Обработчик будет выглядеть следующим образом:

procedure TForm1.Button1Click(Sender: TObject);

var N,ErrorCode,t,i:integer;

Nx:string;

begin

// переменной Nx присваиваем значение – текст

// компонента Edit1

Nx:=Edit1.Text;

// переводим текст (Nx) в число (N)

Val(Nx,N,ErrorCode);

// если при переводе не произошло ошибок, то

if ErrorCode=0 then

begin

// решение задачи

if (N<>1)and(N<>0) then

begin

t:=0;

for i:=1 to N do

if N mod i=0 then t:=t+1;

if t=2 then showmessage('Простое!')

else showmessage('Составное!');

end

else showmessage('Ни простое и не составное!');

end

else showmessage('Введенное значение не является числом!');

end;

Примечание. Процедура ShowMessage позволяет вывести на экран информационное окно со строкой-сообщением.