Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

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

Тема: Створення елементів інтерфейсу найпростішого графічного редактора.

Мета: Вивчення компонентів ColorGrid, SpinEdit, RadioGroup, ListBox, ColorDialog.

Короткі теоретичні відомості.

ColorGrid - приклад компонента, що використовується для створення таблиці кольорів, в якій користувач вибирає потрібний колір. Компонент візуальний. Властивість GridOrdering визначає зовнішній вигляд сітки (кількість рядків і стовпців). Властивість ForegroundColor визначає колір, вибраний користувачем лівої клавішею, BackgroundColor - правою.

SpinEdit - вікно редагування в комбінації з кнопкою-лічильником. Властивості MinValue і МахValue компонента задають відповідно мінімальне і максимальне значення чисел, властивість Increment задає збільшення числа при кожному натисканні на кнопку. Властивість Value визначає поточне значення числа. Це властивість можна читати, щоб дізнатися, яка кількість задав користувач.

Радіокнопки утворюють групи взаємозалежних індикаторів, з яких зазвичай може бути обраний тільки один. Компонент RadioGroup - панель групи радіокнопок, яка може містити регулярно розташовані стовпцями і рядками радіокнопки. Напис в лівому верхньому кутку панелі визначається властивістю Caption. А написи кнопок і їх кількість визначаються властивістю Items, які мають тип TStrings. Натиснувши на кнопці з трьома крапками близько цієї властивості у вікні Інспектора Об'єктів, ви потрапите в редактор списків рядків. У ньому ви можете занести написи, які хочете бачити близько кнопок, по одній в рядку. Скільки рядків ви запишете - стільки і буде кнопок.

Визначити, яку з кнопок вибрав користувач, можна по властивості ItemIndex, яке показує індекс обраної кнопки. Індекси, як завжди в Delphi, починаються з 0. За замовчуванням ItemIndex = -1, що означає відсутність обраної кнопки.

Компонент ListBox відображає списки рядків. ListBox відображає список в розкритому вигляді і автоматично додає в список смуги прокрутки, якщо всі рядки не поміщаються у вікні компонента.

Основна властивість компонента, що містить список рядків, - Items, що має тип TStrings. Заповнити його під час проектування можна, натиснувши кнопку з трьома крапками близько цієї властивості у вікні Інспектора Об'єктів. Під час виконання працювати з цією властивістю можна, користуючись властивостями і методами класу TStrings - Clear, Add та іншими. Номер вибраного рядка можжно дізнатися з властивості ItemIndex. Якщо жоден рядок не вибрана, то ItemIndex = -1.

Компонент ColorDialog викликає діалогове вікно вибору кольору. Основна властивість компонента ColorDialog - Color. Це властивість відповідає тому кольором, який обрав у діалозі користувач. 

Хід роботи. Частина 1

  1. Запустіть Delphi. При цьому автоматично буде створений новий проект з формою.

  2. Збережіть проект у своїй папці, створивши в ній папку Графічний редактор1. Для чого виконайте команду Save All, Unit назвіть U_grafred1, проект - P_ grafred1.

  3. Дайте назву формою: Графічний редактор.

  4. Помістіть на форму компонент Shape (палітра Aditional) і ColorGrid (палітра Samples). Властивості Shape компонента Shape присвоїти значення stRectangle. Властивості GridOrdering компонента ColorGrid присвоїти значення go8x2.

  5. Розташуйте компоненти на формі наступним чином:

  1. Створіть обробник події OnChange компонента ColorGrid

Shape1.Pen.Color: = ColorGrid1.ForegroundColor;

Shape1.Brush.Color: = ColorGrid1.BackgroundColor;

  1. Запустіть програму і подивіться як вона працює. Лівим клацанням по палітрі вибирається колір контуру (передній колір), правим - колір фону (задній колір).

  2. Використовуючи компонент SpinEdit (палітра Samples) створіть можливість зміни товщини контуру від 1 до 50.

Властивості MaxValue задайте значення 50, MinValue - 1

  1. В обробнику події OnChange компонента SpinEdit запишіть:  shape1.Pen.Width: = SpinEdit1.Value;

  2. Розташуйте компонент Label (властивість Caption - Контур) і SpinEdit, як це показано на малюнку нижче:

  1. Розташуйте на формі компонент RadioGroup.

  2. Надайте його властивості Caption і властивості Items (містить назви рядків списку) значення, як це показано на малюнку пункт 10. Зробіть так, щоб за замовчуванням був обраний перший компонент списку. Для цього властивості ItemIndex компонента RadioGroup задайте значення 0 (нумерація в списку починається з нуля)

  3. В обробнику OnClick для RadioGroup1 запишіть:

if RadioGroup1.ItemIndex = 0 then Shape1.Shape: = stCircle;

{якщо обраний перший елемент списку}

if RadioGroup1.ItemIndex = 1 then Shape1.Shape: = stEllipse;

if RadioGroup1.ItemIndex = 2 then Shape1.Shape: = stRoundRect;

if RadioGroup1.ItemIndex = 3 then Shape1.Shape: = stRoundSquare;

if RadioGroup1.ItemIndex = 4 then Shape1.Shape: = stSquare;

  1. Розташуйте на формі компоненти Label (властивість Caption - Спосіб заливки) і компонент ListBox. В Редакторі списку рядків компонента ListBox (викликається клацанням по властивості Items) введіть значення, як це показано на малюнку пункту 10.

  2. У обробник OnClick компоненту ListBox введемо наступний код:

if ListBox1.Selected[0] then Shape1.Brush.Style:=bsSolid;

if ListBox1.Selected[1] then Shape1.Brush.Style:=bsClear;

if ListBox1.Selected[2] then Shape1.Brush.Style:=bsBDiagonal;

if ListBox1.Selected[3] then Shape1.Brush.Style:=bsFDiagonal;

if ListBox1.Selected[4] then Shape1.Brush.Style:=bsCross;

if ListBox1.Selected[5] then Shape1.Brush.Style:=bsDiagCross;

if ListBox1.Selected[6] then Shape1.Brush.Style:=bsHorizontal;

if ListBox1.Selected[7] then Shape1.Brush.Style:=bsVertical;

  1. Запустіть програму і подивіться як вона працює.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]