- •Лабораторна робота №2 розробка інтерфейсу програми зі змінними розмірами панелей
- •1. Теоретичні відомості
- •1.1. Створення інтерфейсу вікна з використанням панелей
- •1.2. Шаблони використання груп кнопок
- •1.3. Шаблони компонування списків
- •2. Порядок виконання лабораторної роботи Завдання для варіантів V 1...V 100
- •Контрольні запитання та завдання
- •Список використаної літератури
1.3. Шаблони компонування списків
У багатьох прикладних задачах потрібно копіювати або переміщувати елементи двох або більшої кількості списків. Користувач може виконувати таке компонування списків за допомогою шаблона
3. Шаблон № 76. Компонувальник списків (List Builder). Використовується в тому випадку, коли потрібно створити новий список на основі значень існуючого списку. Для зручності користувача списки потрібно розміщувати поряд (рис. 1.2), наприклад, в одному вікні програми. При цьому потрібно чітко виділити два режими компонування списків: переміщення або компонування елементів.
Рис. 1.2. Переміщення елементів списків між двома папками у MS Windows XP
В середовищі Borland Delphi списки створюються за допомогою компонентів ListBox, а для перетягування елементів списків для відповідних компонентів потрібно встановити властивість DragMode = dmAutomatic. Для компонента-приймача слід написати обробник події OnDragOver (встановити Accept = true), а також обробник події OnDragDrop, в якій дані приймаються за допомогою команди: TListBox(Sender).Items.Insert(ip,TListBox(Source).Items[id]),
де Sender – приймач, Source – джерело даних,
ip = TListBox(Sender).Count – номер рядка приймача, після якого потрібно вставити елемент списку,
id = TListBox(Source).ItemIndex – номер виділеного рядка джерела.
Видалення елементу списку в джерелі виконати командою: TListBox(Source).Items.Delete(id).
Дозвіл на перетягування елементів списків встановити за допомогою умов, наприклад
(TListBox(Sender)=ListBox1) and (TListBox(Source)=ListBox2).
2. Порядок виконання лабораторної роботи Завдання для варіантів V 1...V 100
1. В середовищі розробки створити програму „PIK_Panel_1_V” (V – номер варіанта), призначену для створення інтерфейсу програми зі змінними розмірами панелей. Ширину головної форми програми вибрати рівною 600 + 10·V0 пікселів (де V0 – молодша цифра номеру варіанта V).
2. Створити головне меню програми (при використання середовища Borland Delphi – за допомогою компонента MainMenu). У вікні редактора головного меню створити пункти меню, встановити їх назви і заголовки (рис. 2.1).
3. Швидкі кнопки (компонент SpeedButton) розмістити на інструментальній панелі (компонент ToolBar) у верхній частині вікна (рис. 2.1). Створені швидкі кнопки повинні відповідати пунктам Головного меню.
4. На формі розмістити три панелі, розміри яких можна змінювати під час виконання програми (рис. 2.1). Для зміни розмірів панелей між ними потрібно встановити компоненти Splitter, ліві панелі вирівняти вліво (align = alLeft), а праву – на весь вільний розмір форми (align = alClient). Компоненти Splitter теж потрібно вирівняти вліво. Панелі і розділювачі (Splitter) створювати у тому ж порядку, в якому вони повинні бути розміщені на формі. На кожній панелі розмістити списки (компонент ListBox) з даними про комп’ютерну техніку (назву і параметри моделі пристрою) (табл. 2.1).
Рис. 2.1. Структура головної форми програми
5. Головне меню повинно містити пункти: „Списки”, „Вигляд” та „Вихід”. Пункт „Списки” – підпункти „Відкрити”, „Закрити” для кожного списку, які дозволяють або забороняють видимість відповідного списку. Пункт „Вигляд” має містити підпункти, що дозволяють змінювати вигляд списків на формі: зменшити або збільшити розмір шрифту, змінити його колір. Швидкі кнопки повинні дублювати основні команди головного меню.
6. Контекстне меню для кнопки „Параметри” повинно дублювати опції розділу „Вигляд” головного меню. Контекстне меню створити з допомогою компонента PopupMenu, після чого для властивості PopupMenu відповідної кнопки потрібно встановити назву компонента контекстного меню.
7. Забезпечити перетягування елементів списків між списками з допомогою мишки за наступними правилами (табл. 2.2).
8. Екранні форми програми та програмний код з поясненнями додати до звіту.
9. Додаткове завдання. Дозволити одночасне перетягування багатьох елементів списку (використати властивість MultiSelect компонента ListBox).
Таблиця 2.1
Тематика списків для варіантів V
(V1= V; якщо V >20, то V1 = V - 20)
V1 |
Список № 1 |
Список № 2 |
Список № 3 |
1 |
Монітори |
Процесори |
Принтери |
2 |
Материнські плати |
Сканери |
Відеокарти |
3 |
Жорсткі диски |
Мережеві плати |
Звукові плати |
4 |
Процесори |
Принтери |
Монітори |
5 |
Сканери |
Відеокарти |
Відеокамери |
6 |
Мережеві плати |
Звукові плати |
Жорсткі диски |
7 |
Принтери |
Монітори |
Процесори |
8 |
Відеокарти |
Відеокамери |
Сканери |
9 |
Звукові плати |
Жорсткі диски |
Мережеві плати |
10 |
Жорсткі диски |
Монітори |
Процесори |
11 |
Процесори |
Принтери |
Монітори |
12 |
Сканери |
Відеокарти |
Смартфони |
13 |
Мережеві плати |
Звукові плати |
Жорсткі диски |
14 |
Принтери |
Монітори |
Процесори |
15 |
Відеокарти |
Материнські плати |
Сканери |
16 |
Звукові плати |
Жорсткі диски |
Мережеві плати |
17 |
Монітори |
Процесори |
Принтери |
18 |
Відеокамери |
Сканери |
Відеокарти |
19 |
Жорсткі диски |
Мережеві плати |
Звукові плати |
20 |
Монітори |
Процесори |
Жорсткі диски |
Таблиця 2.2
Допустимий порядок перетягування елементів списків
(0 – перетягування заборонено, 1 – дозволено) для варіантів V
(V1 = V; якщо V > 20, то V1 = V - 20)
V1 |
Список №1–№2 |
Список №1–№3 |
Список №2–№1 |
Список №2–№3 |
Список №3–№1 |
Список №3–№2 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
2 |
0 |
0 |
1 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
0 |
0 |
1 |
4 |
0 |
0 |
1 |
0 |
1 |
0 |
5 |
0 |
0 |
0 |
1 |
0 |
1 |
6 |
0 |
1 |
0 |
1 |
1 |
0 |
7 |
0 |
1 |
0 |
0 |
0 |
1 |
8 |
0 |
1 |
0 |
0 |
1 |
0 |
9 |
0 |
1 |
1 |
1 |
0 |
1 |
10 |
0 |
1 |
1 |
1 |
1 |
0 |
11 |
1 |
0 |
1 |
0 |
0 |
1 |
12 |
1 |
0 |
1 |
0 |
1 |
0 |
13 |
1 |
0 |
0 |
1 |
0 |
1 |
14 |
1 |
0 |
0 |
1 |
1 |
0 |
15 |
1 |
0 |
0 |
0 |
0 |
1 |
16 |
1 |
1 |
0 |
0 |
1 |
0 |
17 |
1 |
1 |
1 |
1 |
0 |
1 |
18 |
1 |
1 |
1 |
1 |
1 |
0 |
19 |
1 |
1 |
1 |
0 |
0 |
1 |
20 |
1 |
1 |
1 |
0 |
1 |
0 |
