- •Лабораторные работы по курсу «Программирование»
- •Составил: Маврин с.А.
- •Общие сведения
- •«Среда разработки Borland Delphi 7»
- •Главное окно
- •Лабораторная работа №1 «Приложение. Модули и формы»
- •Демонстрационный пример
- •Следует запомнить!
- •Общее задание
- •Лабораторная работа № 2 «Компоненты для отображения и редактирования текста Label, Edit, Memo»
- •Пример решения задачи
- •Задачи по вариантам
- •Лабораторная работа № 3 «Класс tStrings. Компоненты для отображения списка строк ListBox, ComboBox»
- •Лабораторная работа № 4 «Работа с компонентами ImageList, ComboBoxEx»
- •Общее задание
- •Лабораторная работа № 5 «Компоненты-оболочки для специализированных окон диалогов»
- •Общее задание
- •Лабораторная работа № 6 «Компоненты – переключатели и флажки, их группирование»
- •Вопрос 1. С какого служебного слова начинается описание модуля в Object Pascal?
- •Вопрос 2. В Object Pascal служебное слово Inherited означает:
- •Вызов унаследованного метода;
- •Вопрос 3. В Turbo Pascal 7 в главной программе невозможно описание вида:
- •Общее задание
- •Лабораторная работа № 7 «Организация меню. Главное и контекстное меню. Компонент tActionList»
- •Лабораторная работа № 8 «Создание компонентов. Графический и оконный элемент управления»
- •Лабораторная работа № 9 «Использование готовых изображений. Компонент Image». «Создание простейших графических примитивов в Delphi»
- •Лабораторная работа № 10 «Компонент Timer Создание простейшей анимации»
- •Лабораторная работа № 11 Создание интерактивной обучающей системы с использованием мультимедийных возможностей Delphi
- •Список рекомендуемой литературы
Следует запомнить!
процесс создания Delphi-программы разбивается на две фазы: фазу конструирования формы и фазу кодирования;
конструирование формы осуществляется с помощью выбора компонентов из палитры и размещения их на форме;
программист может перемещать любой размещенный на форме компонент и изменять его размеры с помощью мыши;
чтобы придать компоненту нужные свойства, используется страница Properties Инспектора объектов;
чтобы компонент мог откликаться на то или иное событие, программист должен создать обработчик события;
обработчик события оформляется в виде процедуры, имеющей составное имя: первая часть имени представляет собой имя класса для формы, вторая часть отделяется от первой точкой и может быть произвольной. Если Delphi автоматически формирует заготовку для обработчика, то вторая часть имени представляет собой объединение имени компонента и имени события без предлога On.
тело процедуры ограничено служебными словами begin ... end и состоит из отдельных предложений (операторов) языка Object Pascal, которые отделяются друг от друга точкой с запятой;
свойства компонента могут изменяться как на этапе разработки приложения, так и во время работы приложения;
в Инспекторе объектов может отображаться лишь часть свойств и событий компонента. Полностью все (кроме частных, 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 позволяет вывести на экран информационное окно со строкой-сообщением.