АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Крок 2. Написання коду для малювання ліній

Читайте также:
  1. Базис. Лінійний підпростір. Ранг матриці
  2. Геноми майже всіх відомих РНК-вмісних вірусів – це лінійні молекули, які можна розділити на 3 групи.
  3. Довідково-інформаційні документи. Доповідна, пояснювальна, службова записки. Правила їх написання.
  4. Захист електричних металевих кабельних ліній передач магістральної і внутрішньозонових мереж зв'язку
  5. Захист оптичних кабельних ліній передач магістральної і внутрішньозонових мереж зв'язку
  6. Крок 2. Написання коду
  7. Лінійний гармонічний осцилятор
  8. Лінійний пошук
  9. Методика написання наукової статті
  10. МЕТОДИЧНІ РЕКОМЕНДАЦІЇ ДО НАПИСАННЯ КУРСОВИХ РОБІТ
  11. Реквізити документів та вимог до їх написання.

Деякі візуальні компоненти надають у розпорядження програміста полотно (Canvas), призначене для малювання. Наприклад, щоб намалювати на формі Form1 лінію з поточної позиції графічного курсору (PenPos) у точку (100, 100), необхідно записати:

Form1.Canvas.LineTo(100, 100);

Де LineTo є одним із методів вбудованого у форму полотна Canvas.

Для того, щоб на полотні компонента залишався слід у процесі переміщення вздовж нього покажчика миші, необхідно згенерувати для компонента процедуру оброблення події OnMouseMove (при переміщенні миші).

У дочірню форму нашого додатка вмонтований компонент Image, що також має полотно для малювання. Згенеруйте процедуру оброблення події OnMouseMove для компонента Image і вставте туди наступний рядок:

Image.Canvas.LineTo(X, Y);

Перегляньте результати програмування. Зверніть увагу, як параметри X і Y (координати миші) передаються в згенеровану процедуру оброблення ImageMouseMove.

Ще одним параметром процедури ImageMouseMove є Shift: TShiftState, тобто набір, що містить стан натиснутих кнопок миші та клавіатури. Якщо необхідно, щоб лінія малювалася при натиснутій лівій кнопці миші, то процедуру оброблення події OnMouseMove треба змінити на наступну:

If ssLeft in Shift Then

Image.Canvas.LineTo(X, Y);

Операція in перевіряє, чи міститься елемент ssLeft у наборі Shift, тобто, чи була натиснута ліва кнопка миші.

Для того, щоб змінити колір лінії при малюванні на полотні, треба вибрати олівець (Pen):

Image.Canvas.Pen.Color:= clRed;

Цей запис встановлює колір (Color) олівця (Pen) у червоний (clRed). Додайте цей рядок в процедуру оброблення і перегляньте результати програмування. Після цього видаліть рядок.

Примітка. Зверніть увагу, що у випадку необхідності компонент Image самостійно перерисовує (відновлює) зображення: наприклад, якщо форму згорнути та розгорнути, то малюнок компонента Image зберігається. Це і є основною перевагою використання компонента Image для малювання (при малюванні на полотні інших компонентів зображення треба відновлювати програмно при виникненні події OnPaint).

Крок 3. Малювання графічних примітивів

Додайте на панель інструментів ще одну кнопку швидкого доступу, назвіть її Circle (коло). Властивість GroupIndex установіть в 1: тепер кнопка кольору Color і кнопка малювання кола Circle відносяться до різних груп і їх поведінка незалежна. Властивість AllowAllUp установіть в true, що дозволить використовувати кнопку Circle як перемикач (натиснутий/віджатий стан).

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

Введіть у модулі ChildUnit дві нові глобальні змінні, які визначать координати кола:

xc, yc: Integer;

Згенеруйте для Image процедуру оброблення події OnMouseDown і введіть туди наступний код:

//Якщо натиснута кнопка Circle


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)