Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

Простейший графічний редактор

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Canvas (канва, полотно) — це властивість компонента Image, що представляє з себе поверхню висновку графіки. І на цій поверхні метод LineTo (Лінія в) буде викреслювати пряму лінію від точки поточної позиції з точку з координатами, де виявиться курсор при натисканні кнопки миші. Запустіть додаток, порисуйте мишкою. Очевидний недолік такого малювання — ви можете поставити початкову точку траєкторії… Читати ще >

Простейший графічний редактор (реферат, курсова, диплом, контрольна)

Простейший графічний редактор

Владимир Коробицын.

Реакция докладання різні кнопки миші. Побудова системи меню. Управління принтером

Рассмотрим деякі графічні можливості з прикладу побудови докладання «Альбом для рисования».

На стартовою формі Form1 розмістіть компонент Image1 з вкладки Additional. У компонента Form1 щодо його властивості Color встановіть значення clWhite (Колір білий). Властивості Caption цього компонента встановіть значення «Альбом для малювання». У функцію обробки FormMouseDown (При натисканні кнопки миші) запишіть строку:

Image1->Canvas->LineTo (X, Y); //малювати линию.

Canvas (канва, полотно) — це властивість компонента Image, що представляє з себе поверхню висновку графіки. І на цій поверхні метод LineTo (Лінія в) буде викреслювати пряму лінію від точки поточної позиції з точку з координатами, де виявиться курсор при натисканні кнопки миші. Запустіть додаток, порисуйте мишкою. Очевидний недолік такого малювання — ви можете поставити початкову точку траєкторії руху олівця! Щоб вийти з цієї проблеми використовуємо метод MoveTo (Переміщення в), що у роботі програми переміщати поточну крапку у нову позицію без малювання лінії. Виникає інша проблема — як за допомогою миші користувач зможе повідомити: малювати далі або взагалі почати з нової позиції? Благо, що мишка має як дві кнопки. Навчимо додаток відчувати відмінність між лівої і правої кнопками миші. І тому доведеться функцію обробки FormMouseDown трохи усложнить:

if (Button == mbLeft) Image1->Canvas->LineTo (X, Y);

if (Button == mbRight) Image1->Canvas->MoveTo (X, Y);

Button — кнопка миші. Перше умова if (якщо) дозволяє лівої кнопці миші малювати лінію. Друге умова дозволяє правої кнопці перенести точку малювання на нову позицію. Подивіться, що тепер працює приложение.

Пока у розпорядженні користувача єдиний колір олівця. Розширимо можливості докладання. Виберіть з палітри компонентів у вкладке Standard компонент MainMenu (Система меню) і розмістіть його за формі під назвою MainMenu1, запропонованому середовищем З++ Builder за умовчанням. Клікніть стосовно цього об'єкта мишкою двічі: з’явиться вікно, имитирующее вид форми із майбутньою системою меню, і є наочний редактор меню. На початку редактор покаже один прямоугольник-заготовку пункту меню. Для перетворення заготівлі у пункт меню потрібно властивості Caption надати значення довільного необхідного назви, наприклад, «Файл». Після цього внизу з’явиться прямокутник першої команди меню, а справа прямокутник наступного пункту меню. Побудуйте систему меню, оскільки показано на малюнках. Будь-яка команда може викликати вторинне (дочірнє) меню. Щоб вибудувати вторинне меню клікніть по необхідної команді, потім відпрацюйте клавішний акорд Ctrl+Right (Одночасне натискання Ctrl і курсору «Вправо»). А щоб цю систему меню запрацювала, необхідно написати функції обробки подій натискання на пункти та команди меню.

Начнем з написання функції обробки команди меню «Колір малювання». І тому як створення докладання клікніть мишею за пунктом меню «Режим», та був за командою цього пункту «Колір малювання». У вікні редагування програмного коду з’явиться заготівля функції обробки команди меню «Колір малювання». Наповніть цю функцію обробки програмним кодом:

//вызов вікна діалогу КОЛІР для вибору кольору рисования.

ColorDialog1->Execute ();

//передача кольору перу полотна з вікна на діалогу ЦВЕТ.

Image1->Canvas->Pen->Color = ColorDialog1->Color;

Pen (Перо) — властивість поверхні Canvas. Color (Колір), це властивість об'єкта Pen. Запустіть додаток виконання і порисуйте різними квітами. Тепер у розпорядженні користувача палітра з великою числом квітів. Ця кількість лише можливостями відеокарти вашого комп’ютера. Якщо відеокарта 16-битная, то глибина кольору на екрані дисплея становить 16 біт, а кількість можливих квітів одно 216 = 65 536. Сучасні відеокарти є, зазвичай, 32-битными, тому число можливих квітів виявляється рівним 232 = 4 294 967 296.

Команда «Товщина лінії» меню «Режим» дозволить користувачеві змінювати товщину сліду малювання. У цю команду викликатиме вторинне (дочірнє) меню, що містить команди що задають розмір сліду малювання. Команди вторинного меню мають назви «1», «2», «5», «10» і «20». Клікніть, наприклад, на команду «5» і що з’явилася заготівлю функції обробки запишіть инструкцию:

Image1->Canvas->Pen->Width = 5; //поставити ширину пера рівну пяти Здесь Width (Ширина), це властивість об'єкта Pen. Інші команди вторинного меню оживете аналогічними інструкціями. Тепер процес малювання стане цікавіше. Випробуйте нові можливості приложения.

Обработайте команду «Зберегти» меню «Файл» щодо можливості записи малюнка на диск в графічний файл. Функція обробки цієї команди може бути так:

//вызов вікна діалогу ЗАПИС ГРАФІЧНОГО ФАЙЛА.

SavePictureDialog1->Execute ();

//изображение з поля Image1 записати в файл.

Image1->Picture->

SaveToFile (SavePictureDialog1->FileName + " .bmp ");

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

Обработайте таку команду меню «Файл» — «Відкрити». У цю команду дозволить користувачеві вважати з диска свій чи чужій малюнок, щодо його перегляду чи редагування. Функція обробки цієї команди меню може містити програмний код:

//вызов вікна діалогу ВІДКРИТТЯ ГРАФІЧНОГО ФАЙЛА.

OpenPictureDialog1->Execute ();

if (OpenPictureDialog1->FileName ≠ «») //тоді як вікні діалогу є файл.

{.

//загрузка файла на полі Image1 з диска.

Image1->Picture->LoadFromFile (OpenPictureDialog1->FileName);

//ширину Image1 зрівняти із шириною загружаемого изображения.

Image1->Width = Image1->Picture->Width;

//высоту Image1 зрівняти з висотою загружаемого изображения.

Image1->Height = Image1->Picture->Height;

}.

Составной знак «≠» означає - «не одно». Дві поруч розташовані лапки означають порожній безліч. Умова if (якщо) перевіряє наявність файла на полі вікна діалогу «Відкриття графічного файла». Якщо умова виконується, йде завантаження файла і центровка зображення на екрані, інакше інструкції в фігурних дужках не виконуються. Функція LoadFromFile (Завантажити з файла) дозволяє зчитувати інформацію з диска. Перевірте працездатність новоствореної команди меню.

Список литературы

Для підготовки даної роботи було використані матеріали із російського сайту internet.

Показати весь текст
Заповнити форму поточною роботою