Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи КПЗ.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆

Лабораторна робота № 4 Тема: "Створення шаблонів компонентів"

Ціль роботи: отримати практичні навички по створенню й повторному використанню шаблонів компонентів

 

Хід роботи

 

1. На формі створіть групу компонентів для форматування тексту:

 

 

Рамка, на якій розташовуються всі компоненти форматування, автоматично прив’язується до правої частини форми.

Перший список дозволяє вказати шрифт, другий - розмір символів, третій - колір символів.

Перший список автоматично заповнюється шрифтами, установленими в Windows і не може бути порожнім.

Другий список заповнений довільними цілими значеннями. Користувач може ввести власні значення, але тільки числа. Список не може бути порожнім.

Третій список дозволяє вибрати один зі стандартних кольорів або вибрати користувацький колір з палітри.

Кнопка застосовує обране форматування до компонента типу Tmemo.

 

Вказівки: Для створення рамки на формі розмістіть компонент Groupbox (Standard) і задайте властивості: Align=alright, Caption=Формат.

На рамку нанесіть три компоненти Label (Standard) і у властивості Caption укажіть потрібні тексти написів для списків.

 

Список Шрифт

На панель нанесіть компонент Combobox (Standard) і задайте властивість Text=MS Sans Serif. Список повинен заповнюватися переліком шрифтів Windows. Для заповнення скористаємося подією списку Ondropdown. Ця подія наступає, коли список розкривається.

 

procedure Tform1.Combobox1Dropdown(Sender: Tobject);

begin

    //список заповнюється переліком шрифтів   

    combobox1.items:=screen.fonts;

end;

 

Список не може бути порожнім. Якщо при виходу зі списку він виявиться порожнім, потрібно відобразити в ньому деяке значення за замовчуванням. При виході зі списку для нього наступає подія Onexit.

 

procedure Tform1.Combobox1Exit(Sender: Tobject);

begin

    //якщо при виході поле списку порожнє

    if combobox1.text='' then

        //якщо список містить перелік значень (count - кількість елементів)

        if combobox1.Items.Count >0 then

            //відображаємо в списку перше значення (нумерація з 0)

            combobox1.itemindex:=0

        //інакше, якщо в списку немає значень (count=0)

        else

            //відображаємо в списку конкретну назву шрифту

            combobox1.Text:='MS Sans Serif';

end;

 

Список Розмір

На панель нанесіть компонент Combobox (Standard) і задайте властивість Text=8. Список повинен заповнюватися конкретним переліком розмірів символів, тому у властивості Items списку введіть потрібні розміри.

Список не може бути порожнім. Якщо при виході зі списку він виявиться порожнім, потрібно відобразити в ньому деяке значення за замовчуванням. При виході зі списку для нього наступає подія Onexit.

 

procedure Tform1.Combobox2Exit(Sender: Tobject);

begin

    //якщо список порожній

    if combobox2.text='' then

        //відображаємо в ньому перший елемент (нумерація з 0)

        combobox2.itemindex:=0;

end;

 

Поле списку можна заповнювати із клавіатури, але вводити допускається тільки цілі числа. У події Onkeypress списку напишемо це обмеження.

 

procedure Tform1.Combobox2Keypress(Sender: Tobject; var Key: Char);

begin

    //якщо введений символ не цифра й не Backspace (#8)  

    if not (key in['0'..'9',#8]) then

        //то символ заміняється на порожній (не відображається в полі)       

        key:=#0;

end;

 

Список Колір

Нанесіть на форму компонент Colorbox (Additional). За замовчуванням список містить стандартний набір кольорів. Щоб користувач міг указати будь-який відтінок, для списку вкажіть властивість Style - cbcustomcolor=true. У результаті в списку першим рядком з'явиться елемент Custom, який викликає на екран вікно діалогу вибору кольору.

 

Кнопка Застосувати

Нанесіть на форму компонент Button (Standard) і задайте властивість Caption = Застосувати.

Кнопка повинна застосовувати указані параметри форматування до будь-якого компонента типу Tmemo. Для кнопки напишемо універсальну процедуру:

 

procedure Tform1.Button1Click(Sender: Tobject);

//змінна для лічильника циклу

var i:integer;

begin

    //у циклі проходимо по всіх компонентах форми   

    for i:=0 to controlcount-1 do

    begin

        //якщо i-й компонент це компонент типу Tmemo       

        if controls[i].Classname ='Tmemo' then

        begin

            //застосовуємо до i-ого компонента параметри форматування           

            tmemo(controls[i]).Font.Name:=combobox1.Text;

            tmemo(controls[i]).Font.Size:=strtoint(combobox2.Text);

            tmemo(controls[i]).Font.Color:=colorbox1.Selected;

            //достроково завершуємо роботу циклу           

            exit;

        end;

    end;

end;

 

2. Необхідно зберегти створену групу компонентів як шаблон.

 

Вказівки: Виділіть створену панель і виконайте команду Component - Create Component Template...

З'явиться вікно, у якому введіть ім'я шаблону, укажіть ім'я закладки, де шаблон буде розміщений і за допомогою кнопки Custom укажіть малюнок для іконки шаблону (рисунок розмір 24х24 і формат BMP).

 

 

На малюнку шаблон буде мати ім'я Format і буде розмісщений на закладці Standard.

 

3. Створіть програму для демонстрації використання шаблону.

 

Вказівки: За допомогою команди File - New - Application створіть новий проект. На формі розмістіть створений вами шаблон і компонент Memo, для якого задайте властивості: Align = alclient, Lines очистити. Переконайтеся, що не написавши ні одного рядка коду, функція форматування тексту працює автоматично.

 

4. Повторіть створення ще для однієї подібної програми й переконайтеся, що новий додаток також працює без написання коду.