Лаби IT - ЛабаDelphi2

Лабораторна робота №2. Робота в DELPHI

Робота з буфером обміну, малювання мишею,

контекстне меню, компонент Memo

Завдання 1 Навчимося працювати з буфером обміну поміщаючи та витягуючи звідти графічні зображення.

Скиньте на форму такі компоненти: Image1 іImage2 (палітраAdditional), OpenDialog1 (палітраDialogs), і навіть 3 кнопкиButton, із заголовками ними оскільки зазначено на рис. 1.

лабаdelphi2

Призначення кнопок цієї програми буде наступним:

Обробник клацання Button1 – Відкриє картинку в Image1.

Обробник клацання Button2 - Копіює картинку в буфер обміну - об'єкт Clipboard.

Обробник клацання Button3 – Завантажить картинку в Image2.

Також для обох компонентів Image за допомогою ObjectInspector встановіть їх властивість Stretch у значення True, щоб малюнок підлаштовувався під їх розмір.

формі

В обробнику клацання Button1 напишіть таке:

opendialog1.execute; //запустити діалог вибору файлів

В обробнику клацання Button2 напишіть таке:

// Метод Assignкопіює в буфер обміну графічні

//Об'єкти класів TGraphic,TBitmap,TPictureі т.д.

І нарешті в обробнику клацання Button3 напишіть таке:

Запустіть програму. Спочатку клацніть на Button1, у діалозі, що з'явився, виберіть який - небудь графічний файл з розширенням *.bmpабо *.jpg. Після цього зображення з нього відобразиться на вашій формі в Image1. Далі клацніть Button2 – скопіювавши картинку з Image1 в буфер. І як завершальний етап зробіть клацання на Button3 - помістивши зображення з буфера в Image2. Програма повинна працювати правильно.Поверніться в режим програмування (РП).

Завдання 2.1 Малювання мишею.

Досить часто цікавийзвичайне малювання мишею на формі, причому з допомогою малюнка іноді потрібно виділити, деяку область на формі, поруч із кнопкою тощо. Покажемо, що малювання на формі в Delphi досить просте завдання.

Створіть новий проект. Визначимо глобальну змінну булевського типу під назвою Drug. Вона матиме значення “Істина” якщо рух є і “Брехня” інакше.

лаби

Встановіть початкове значення Drug: = False (руху немає) в обробнику події on Create для форми.

Щоб організувати операцію «клацніть і перетягни»потрібно 3 послідовні події і відповідно 3 обробники цих подій.

Перша подія “Натиснути кнопку миші”переходимо в обробник подіїonMouseDownнатискання кнопки миші для форми, пишемо:

Drug: = True; // встановлюємо що рух має бути

Canvas.MoveTo(X,Y); // встановлюємо координати початку малювання

Зверніть увагу, що в цьому обробнику

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

Передаються XіY: типу Integer – це координати поточного покажчика миші на формі.

Всі графічні операції виконуються в контексті властивості Canvas, що міститься в більшості компонентів. Canvas є повноцінним об'єктом, який має свої методи (тобто функції та процедури).

Метод MoveTo(X,Y) передаються координати поточного покажчика миші на формі, сам даний метод встановлює координати, з яких почнеться малювання на формі>

Друга подія “Рух миші”переходимо в обробник подіїonMouseMoveруху миші на формі, і пишемо там наступне:

if Drug=true then Canvas.LineTo(X,Y)

Третя подія “Відпускаємо кнопку миші”, і переходимо вобробник події

onMouseUpформи відпускання кнопки миші і пишемо там наступне:

Drug: = False; // встановлюємо що рухи не повинно бути

Запустіть програму. Переконайтеся у правильності її роботи.Поверніть режим програмування.

Завдання 2.2 Змінюватимемо товщину і колір ліній, що малюються мишкою

Тут же скиньте на форму кнопку Button1 та наступні компоненти: