
- •Лабораторные работы по курсу «Программирование»
- •Составил: Маврин с.А.
- •Общие сведения
- •«Среда разработки 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
- •Список рекомендуемой литературы
Общее задание
Создать приложение с использованием диалогов открытия и сохранения графических изображений (OpenPictureDialog, SavePictureDialog). Для отображения графики необходимо использовать компонент Image.
Лабораторная работа № 6 «Компоненты – переключатели и флажки, их группирование»
Компоненты RadioButton (радиокнопка или переключатель) и CheckBox (флажок) – это оконные элементы управления, предназначенные для организации выбора действий в приложении. Располагаются они на вкладке Standard палитры компонентов Delphi.
Компонент RadioButton, как правило, используется в группе с несколькими компонентами своего типа. Причем если эти компоненты располагаются в одном родительском окне, то выделен, может быть лишь один из них – при выделении одного из переключателей, выделение у всех остальных снимается (Рис. 1).
Рис. 1. Группа компонентов RadioButton
Программно узнать, выделен компонент RadioButton или нет, а также принудительно выделить его – можно, обратившись к свойству Checked логического типа.
Компонент CheckBox может использоваться как в группе с несколькими компонентами своего типа, так и один (Рис. 2). Пользователь в любой момент может выделить флажок или отменить его выделение. Причем, это не зависит от того, используется он в группе таких же компонентов, или нет. Программно узнать, выделен флажок CheckBox или нет, а также принудительно выделить его – можно также, обратившись к свойству Checked логического типа.
Рис. 2. Компоненты CheckBox
Для группировки переключателей и флажков может использоваться любой компонент, являющийся оконным элементом управления (на этапе разработке только окна-контейнеры: ScrollBox, Form, GroupBox, Frame и т.д.).
Создадим приложение с использованием рассмотренных нами компонентов. Приложение позволит автоматизировать процесс педагогического тестирования по информатике.
Тест по программированию будет состоять из пяти вопросов:
Вопрос 1. С какого служебного слова начинается описание модуля в Object Pascal?
Main_proc ();
Global_module
Module
Unit
Вопрос 2. В Object Pascal служебное слово Inherited означает:
Вызов унаследованного метода;
подключение DLL;
подключение модуля.
Вопрос 3. В Turbo Pascal 7 в главной программе невозможно описание вида:
var D:array[1..100] of integer;
var F:integer
var HC:integer=0.
Вопрос 4. (15 mod 3)=
3
5
0
Вопрос 5. (57 div 2)=
23,5
23
28
Создадим новое приложение, выбрав File > New > Application. Обратимся к вкладке Win32 и поместим на форму компонент PageControl. Создадим пять страниц в элементе управления, вызвав его контекстное меню правой кнопкой мыши над ним, и выбрав New Page. (Рис. 3). Выделим компонент PageControl, щелкнув левой кнопкой мыши в область заголовка этого компонента и в Инспекторе объектов настроим его свойства:
Top=0
Left=0
Width=400
Height=300
Выберем первую страницу TabSheet1, щелкнув левой кнопкой мыши на ее заголовок и щелкнув в ее графическую область. Свойству Caption страницы TabSheet1 установим значение «Вопрос №1». Поместим на страницу четыре компонента типа RadioButton (если компонент помещен на страницу, то он при перетаскивании он не будет выходить за ее пределы). Свойствам Caption компонентов типа RadionButton установим значения в соответствии с ответами на первый вопрос теста. Выделим первую радиокнопку, установив в ее свойство Checked значение true. Поместим на страницу TabSheet1 компонент Label, и его свойству Caption установим значение, являющееся текстом первого вопроса теста (Рис. 4).
Рис. 3. Редактируемая форма. Компонент PageControl.
Подобным образом, в соответствие с вопросами теста заполним остальные четыре страницы TabSheet2, TabSheet3, TabSheet4, TabSheet5.
Рис. 4.
Поместим на форму компонент Memo. Он необходим нам для вывода результатов тестирования (статистики тестирования).
Установим значения свойств компонента Memo1:
Left=400
Top=0
Width=100
Height=300
Lines (В редакторе свойства необходимо удалить все строки)
ReadOnly = true (Только для чтения)
Поместим на форму компонент Button (Рис. 5) и установим значения его свойств:
Caption = Показать результат тестирования
Left=0
Top=300
Width=500
Height=25
Рис. 5. Редактируемая форма. Компонент Button1.
Создадим обработчик события OnClick компонента Button1:
procedure TForm1.Button1Click(Sender: TObject);
begin
// очищаем редактор текста от предыдущих результатов
Memo1.Lines.Clear;
// так как в первом вопросе верным ответом является четвертый, а ответ реализован компонентом
// RadioButton4, то проверяем, отмечен ли четвертый переключатель и заносим в Memo
// соответствующую информацию
if RadioButton4.Checked then memo1.Lines.Add('Вопрос №1 Ok')
else memo1.Lines.Add('Вопрос №1 No');
…
…
…
…
end;