Практична робота №6

Тема:Розробка простих додатків та елементів керування у формах

Мета:Створити програму-тест, у якій на кожне питання потрібно буде вибрати відповідь із перерахованих варіантів. Результати тесту визначаються по кількості вірних відповідей.

Теоретичні відомості

 

У процесі виконання першої частини лабораторної роботи необхідно створити програму-тест, у якій використати радіокнопки. Для цього створити проект та форму, помістити на форму три компоненти групових вікон і у кожне групове вікно додати по одному компоненту мітки. Також додати у кожне групове вікно по одному компоненту - група радіо кнопок. Додати униз вікна кнопку результат і три компоненти мітки. Для кнопки результат потрібно написати процедуру використовуючи умовні речення if…then…else (або...то...інакше). Щоб відповідь на питання можливо було дати одним кліком, на кожній кнопці потрібно написати процедуру неможливості кліка на будь-якій іншій кнопці. Також потрібно написати процедури відключення, кнопок для усіх варіантів відповідей на питання, а також добавити кнопку “Повторити текст” та написати для неї процедуру, якщо потрібно повторити тест ще раз.

Звіт по роботі повинний містити теоретичні відомості зі створення проекту, розміщення на формі кнопок, міток, вікон для редагування, написання процедур відключення кнопок для усіх варіантів відповідей на питання тесту, процедуру вставки у всі редагуємі вікна пустих строк та обробку цих процедур, інформацію про функцію яка преобразує текст у число, та інформацію про зворотню функцію, преобразуючу число в текст, а також лістінги програми та малюнки форм програми.

 

Необхідні теоретичні відомості для практичної роботи:

 

У цій вправі Ви створите програму-тест, у якій на кожне питання треба буде вибрати відповідь із запропонованих варіантів. Результати тесту визначаються по кількості вірних відповідей.

Створіть папку «Тест», Створіть проект. Назвіть форму; «Тест» (властивість Caption). Дайте формі ім'я FormTest (властивість Name), збережіть модуль і проект під іменами відповідно UnitTest і ProjectTest у папці «Тест». Вид форми представлений на рис. 61

Помістіть на форму три компоненти TGroupBox (групове вікно) зі сторінки Standard (стандартні). У властивості Caption (заголовок) для них запишіть: «Перше питання», «Друге питання», «Третє питання». У кожне групове вікно вставте по одному компоненту TLabel (мітка). У властивості Caption (заголовок) для них запишіть: «2x2», «30/5», «15+6». У кожне групове вікно вставте по одному компоненту TRadioGroup (група радіокнопок). У властивості Caption (заголовок) для групи радіокнопок запишіть: «Варіанти відповідей:». У групи радіокнопок вставте по 4 компоненти TRadioButton (радіокнопка). У властивості Caption (заголовок) для радіокнопок запишіть: (3; 7; 4; 5), (7; 6; 4; 5), (24; 22; 25; 21). Отже, правильними будуть відповіді: RadioButton, RadioButton6, RadioButtonl2. Оголосіть перемінну s перемінною цілого типу, яка буде служити лічильником вірних відповідей:

var

FormTest: TFormTest; s:Integer=0;

Перемінній s привласнене значення «0». При кліку на кнопці, що містить правильну відповідь, значення перемінної s буде збільшуватися на одиницю. Для цього подія OnClick (клік) для кнопок RadioButton, RadioButton, RadioButtonl2 повинна містити в тілі процедури наступний оператор: s:=s+l;

У нижній частині форми розташуйте кнопку «Результат» (властивість Caption для кнопки) і три компоненти TLabel (мітка). Дайте імена двом міткам: lb_Sum і lb_Text. Використовуйте для цього властивість Name (ім'я) для міток. У властивості Visible (видимий) міток виберіть значення: False (неправда).

 

Рис. 61. Вікно форми «Тест»

 

При кліку на кнопці будуть відбуватися наступні події: в об'єкті lb_Sum буде відображатися кількість вірних відповідей, в об'єкті lb_Text будуть відображатися слова: «Молодець!», «Нормально», «Погано» чи «Дуже погано» у залежності від того, скільки дано правильних відповідей. Для третьої мітки у властивості Caption (заголовок) запишіть: «Кількість вірних відповідей:». Дайте кнопці «Результат» ім'я bt_Rez і запишіть для неї процедуру:

procedure TFormTest.bt_RezClick(Sender: TObject);

begin

lb_Sum.Visible:=True;

lb_Sum.Caption:=IntToStr(s);

if s=3 then

begin

lb_Text.Visible:=True;

lb_Text.Caption:='Молодець!';

end

else

if s=2 then

begin

lb_Text.Visible:=True;

lb_Text.Caption:='Нормально';

end

else

if s=l then

begin

lb_Text.Visible:=True;

lb_Text.Caption:='Погано';

end

else

if s=0 then

begin

lb_Text.Visible:=True;

lb_Text.Caption:='Дуже погано';

end;

end;

Збережіть зміни, запустіть програму і спробуйте з нею попрацювати. Ви бачите, що при відповіді на питання можна кілька разів натискати різні кнопки. Для того щоб відповідь на питання складалась з єдиного кліка, треба для кліка на кожній кнопці написати процедуру неможливості кліка на будь-якій іншій кнопці. Далі наведено приклад такої процедури для кнопки RadioButtonl:

procedure TFormTest.RadioButtonlClicMSender: TObject);

begin

FormTest.RadioButton2.Enabled:=False; FormTest.RadioButton3.Enabled:=False; FormTest.RadioButton4.Enabled:=False;

end;

Слідуючи аналогії потрібно написати процедури і для інших кнопок варіантів відповіді на перше питання.

Тепер, після відповіді на перше питання тестуємий буде змушений перейти до другого питання. Напишіть процедури відключення кнопок для усіх варіантів відповідей на питання. Перевірте роботу програми. Ви бачите, що тепер варто зняти обмеження для кнопок, якщо Ви хочете використовувати тест ще раз. Додайте на форму кнопку, яку назвіть: «Повторити тест». Дайте кнопці ім'я: bt_Povtor. Запишіть наступну процедуру кліка на цій кнопці:

procedure TFormTest.bt_PovtorClick(Sender: TObject);

begin

s:=0;

lb_Sum.Visible:=False;

lb_Text.Visible:=False;

FormTest.RadioButtonl.Enabled:=True; FormTest.RadioButton2.Enabled:=True; FormTest.RadioButton3.Enabled:=True; FormTest.RadioButton4.Enabled:=True; FormTest.RadioButton5.Enabled:=True; FormTest.RadioButton6.Enabled:=True; FormTest.RadioButton7.Enabled:=True; FormTest.RadioButton8.Enabled:=True; FormTest.RadioButton9.Enabled:=True; FormTest.RadioButtonl0.Enabled:=True; FormTest.RadioButton11.Enabled:=True; FormTest.RadioButton12.Enabled:=True; FormTest.RadioButtonl.Checked:=False; FormTest.RadioButton2.Checked:=False; FormTest.RadioButton3.Checked:=False; FormTest.RadioButton4.Checked:=False; FormTest.RadioButton5.Checked:=False; FormTest.RadioButton6.Checked:=False; FormTest.RadioButton7.Checked:=False; FormTest.RadioButton8.Checked:=False; FormTest.RadioButton9.Checked:=False; FormTest.RadioButtonl0.Checked:=False; FormTest.RadioButton11.Checked:=False; FormTest.RadioButton12.Checked:=False;

end;

У цій процедурі обнуляється лічильник, виключається відображення суми правильних відповідей і оцінки, виключається обмеження кліка на кнопці, виключається сам клік на кнопці.

 

Контрольні питання:

1. Опишіть принципи роботи компонента F1book та процедуру забезпечення синтаксично правильного виводу текстових та цмфрових даних.

2. Охарактеризуйте масиви та їх використання у оболонці Delphi.

3. Опишіть компоненти відображення заголовків.

4. Опишіть компоненти відображення ієрархічних даних TreeView, OutLine, ListView.

5. Охарактеризуйте роботу з компонентом Memo та пошуком даних в масивах.

6. Опишіть компоненти відображення графічної інформації.

7. Опишіть методи сортування масивів.

  1. Охарактеризуйте компонент Image та Paintox.
  2. Опишіть процедуру побудови графіків та діаграм.

 


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 6: ПРОГРАМУВАННЯ З ГРАФАМИ. ВІЗУАЛЬНІ КОМПОНЕНТИ. БАЗИ ДАНИХ

ТЕМА 6.2: Візуальні компоненти

Лекція №36 –Загальна характеристика візуальних компонентів

План заняття

1. Характеристика властивостей візуальних компонентів Тор; Width; Height.

2. Огляд елементів керування візуальних компонентів

3. Поняття фокусу та події

Как уже было отмечено, компоненты делятся на две категории –визуальные и невизуальные. Невизуальные компоненты характери­зуются тем, что при работе программы они просто невидимы. С дру­гой стороны, визуальные компоненты после запуска программы ви­димы, если их специально не скрывают. Как правило, внешний вид визуальных компонентов на этапе разработки и в процессе выполне­ния программы совпадает, хотя и может изменяться динамически в зависимости от различных условий. Визуальные компоненты назы­вают элементами управления. Все компоненты Delphi являются по­томками класса Tcomponent.Класс Tcontrolявляется базовым классом для визуальных компонентов. У класса Tcontrolесть два наследника, определяющие две группы компонентов – имеющие оконный ресурс (TwinControlи его потомки) и не имеющие этого ресурса (TgraphicControlи его потомки). Оконный ресурс пред­ставляет собой специальный ресурс Windows, используемый для соз­дания окон, а также для получения и обработки сообщений Windows. Другими словами, только компоненты-потомки класса TwinControlмогут получать и обрабатывать сообщения Windows. К компонентам с оконным ресурсом относятся однострочные и многострочные редак­торы, кнопки, линейки скроллинга, переключатели и т.д., а также различные панели и группирующие элементы управления, в которых размещаются другие компоненты. Элементы графического типа не имеют оконного ресурса. К ним относятся метки, геометрические фигуры, рамки, изображения, панели для рисования и т.д.

О внешнем виде компонента имеет смысл говорить только для элементов управления, так как внешний вид невизуальных компо­нентов либо отсутствует, либо сугубо индивидуален.

Рассмотрим самые общие свойства, которые имеются у всех визуальных компонентов.

Свойства. Управление положением компонента на экране и его размерами осуществляется с помощью четырех его свойств Left– горизонтальная координата левого верхнего угла;

Тор– вертикальная координата левого верхнего угла;

Width– ширина;

Height– высота.

Для всех компонентов эти свойства задаются в пикселях отно­сительно координат клиентской части родительского компонента {клиентской частью компонента называется его внутренняя об­ласть, за исключением заголовка, рамки и меню). Изменение этих свойств возможно как на этапе конструирования, так и на этапе выполнения программы, что приводит к немедленному изменению размеров и расположения компонентов. Пусть, к примеру, на форме находятся две кнопки – Buttonlи Button2класса Tbutton,высота которых 25 пикселей, а ширина 75. Для того чтобы размеры кнопки Button2стали* в два раза больше, можно увеличить разме­ры кнопки в Инспекторе объектов либо в обработчике нажатия кнопки Buttonlнаписать две строки:

 

Button2.Width:=150; Button2.Height: =50;

 

В первом случае размеры кнопки изменятся на этапе конструи­рования (и сохранятся на момент запуска программы), а во втором случае изменение произойдет при выполнении программы.

Все элементы управления имеют свойство Enabled,которое управляет доступностью компонента в тот или иной момент вре­мени. Другими словами, данное свойство определяет, должен ли этот элемент реагировать на события клавиатуры, таймера или мыши. При значении этого свойства Falseэлемент управления считается отключенным и изображается серым цветом.

Свойство Parentтакже доступно для всех элементов управ­ления. В этом свойстве содержится ссылка на родительский эле­мент управления, который содержит данный элемент.

Способ выравнивания элемента управления внутри своего ро­дительского компонента задает свойство Align.Возможные ва­рианты выравнивания описаны в табл. 4.1. Всем элементам управ­ления это свойство доступно во время выполнения программы, и большинству компонентов оно доступно также на этапе конст­руирования (Tlabel, Tpanel, Tmemoи другие).

Цвет и стиль заливки элемента управления задается свойством Brush,которое доступно только во время работы программы и только для чтения.

В Windows компоненты с оконными ресурсами называются родительскими, а связанные с ними неоконные – дочерними. Сле­дует отметить, что оконные компоненты тоже могут быть дочер­ними по отношению к родительскому оконному элементу. Не­оконный элемент может быть только дочерним и не может играть роль родительского. Родитель с дочерними элементами рассмат­ривается в Windows как единое целое. Другими словами, при по­явлении родителя на экране появляются и его дочерние компо­ненты. А при закрытии родителя его дочерние элементы также исчезают вместе с ним. К тому же дочерние компоненты не могут выходить за границы родителя. Хотя, как правило, эти требования выполняются автоматически, о них следует помнить и соблюдать неукоснительно, иначе программы могут выдавать непредсказуе­мые результаты.

 

Свойство Visibleпозволяет управлять отображением эле­мента на экране (если True,то компонент виден).

Для того чтобы узнать, отображается оконный элемент управ­ления на экране во время выполнения программы или нет, исполь­зуется свойство Showing.Это свойство доступно только для чте­ния и имеет значение True,если свойство Visibleимеет значе­ние True,либо False,если Visible = False.

Сделать элемент управления или форму видимыми можно при помощи вызова метода Show,который присваивает свойству Visibleзначение True.Метод Hideделает невидимым элемент управления, присваивая свойству Visibleзначение False.

Цвет фона большинства элементов управления задается свой­ством Color, которое доступно как на этапе разработки, так и в момент выполнения программы.

Характеристики шрифтов, которыми будет отображаться текст визуальных компонентов, задаются свойством Font.

Свойство Cursorпозволяет изменять форму указателя мыши, когда он находится над элементом управления.

Текст краткой всплывающей подсказки устанавливается свой­ством Hint,а свойство ShowHintопределяет, будет ли данная справка отображаться на экране в момент выполнения программы.

Размещаемый в элементе управления текст задастся либо свойством Text,либо свойством Caption.

Для элементов управления оконного типа используется свой­ство Ctl3D(эффект трехмерного изображения). Свойством HelpContextзадается номер раздела справочной системы, вы­водимой на экран при нажатии клавиши F1.

Свойства ParentColor, ParentFont, ParentShowHint, ParentCtl3Dиспользуются для совместимости с родительски­ми элементами.

Фокус. Из всех элементов управления, расположенных на форме, в процессе работы программы один компонент всегда отличается от других. Этот элемент называется активным и может быть только элементом оконного типа. Если элемент активен, то говорят, что он «имеет фокус». С помощью клавиши Tabфокус поочередно перехо­дит к каждому объекту формы. Для того чтобы элемент управления стал активным, необходимо выполнение нескольких условий:

■ все его родительские компоненты, а также он сам должны быть видимы на экране (у всех них свойство Visiblдолжно быть True);

■ свойство Enabledвсех этих компонентов должно быть True(значение этого свойства говорит о том, что компо­нент может быть активным);

■ он должен находиться в активной форме;

■ элемент управления должен быть активизирован либо мышью, либо программно (метод SetFocus),либо кла­вишей Tab.

Следует также отметить, что фокус могут иметь только эле­менты с оконным ресурсом.

События. У всех без исключения компонентов Delphi, как и у объектов реального мира, существует свое поведение – набор откли­ков на события, происходящие с ними. Список событий для каждого «компонента, на которые он реагирует, представлен в Инспекторе объектов на странице Events. Поведение объекта определяется тем, какие обработчики и для каких событий он имеет. Создание прило­жения в Delphi заключается, прежде всего, в настройке свойств ис­пользуемых объектов и создания обработчиков событий с примене­нием соответствующих методов. Все действия пользователей при работе с приложением сводятся к нажатию клавиш, кнопок мыши и перемещению мыши по экрану (кроме этого существуют еще собы­тия, не инициируемые пользователем, например, поступление сигна­лов от таймера). На все эти действия приложение должно реагиро­вать соответствующим образом, для чего должны быть предусмотре­ны необходимые процедуры обработки событий.

 

Контрольні питання

1. Навести характеристику властивостей візуальних компонентів Тор; Width; Height.

2. Охарактеризувати елементи керування візуальними компонентами

3. Надати поняття фокусу та події

 


АУДИТОРНЕ ЗАНЯТТЯ

ЗМІСТОВИЙ МОДУЛЬ 6: ПРОГРАМУВАННЯ З ГРАФАМИ. ВІЗУАЛЬНІ КОМПОНЕНТИ. БАЗИ ДАНИХ

ТЕМА 6.2: ВІЗУАЛЬНІ КОМПОНЕНТИ

Лекція №37 – Події миші

Лекція №38 – Події клавіатури

План заняття

1. Обробка подій від клавіатури та миші

2. Розпізнання витоку події, при натисканні кнопок або клавіш, координат курсора








Дата добавления: 2014-12-01; просмотров: 1031;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.025 сек.