- •Тема 1. Поняття про об’єктно-орієнтоване програмування. Поняття про об’єктно-орієнтоване програмування
- •Інструмент прискореної розробки програм
- •Список файлів проекту.
- •Деякі важливі принципи візуального програмування.
- •Вікна інспектора об'єктів, форми, модуля.
- •Лабораторна робота №1 «Робота в середовищі Delphi»
- •Тема 2. Основи об’єктно-орієнтованого програмування.
- •Лабораторна робота №2 «Створення типового вікна Windows-додатку. Властивості об’єктів форми.»
- •Теоретичні відомості:
- •I. Властивості об’єкту Форма.
- •Теоретичні питання:
- •Тема 3. Особливості ооп: основні концепції
- •Лабораторна робота №3 Робота з формою та компонентами Panel, Label, Edit, Button.
- •Лабораторна робота №4 Робота над проектом «Альбом картинок» (компонент Image вкладки Additional)
- •Тема 4. Структура програми Структура програми складається з:
- •Структура проекту
- •Структура модуля
- •Елементи програми
- •Елементи мови Алфавіт
- •Лексеми
- •Теоретичні питання
- •Лабораторна робота №5 Робота над проектом «Текстовий редактор»
- •Тема 5. Типи даних. Введення та виведення числових даних. Функції перетворення. Математичні функції
- •Прості типи
- •Порядкові типи
- •Цілі типи
- •Введення та виведення числових даних
- •Допомога 1.
- •Допомога 2.
- •Лабораторна робота №6. «Створення програм лінійної структури. Створення програми «Калькулятор»
- •В аріант завдання для вибору:
- •Тема 6. Оператори мови Delphi
- •Лабораторна робота №7 Створення найпростішого Windows-Додатка в Delphi, з використанням умовного оператора та оператора вибору.
- •1 Спосіб розв’язку квадратного рівняння
- •2 Спосіб розв’язання квадратного рівняння
- •Створити додатки за вказаним варіантом та записати блок-схему алгоритму:
- •Лабораторна робота № 8 «Створення програм з використанням операторів циклів»
- •Лабораторна робота № 9 «Розробка графічного інтерфейсу програми. Основні керуючі елементи.»
- •1. Програмування об’єкту – перемикач (tRadioButton).
- •Програмування об’єкту – прапорець (tCheckBox).
- •Тема 7. Масиви
- •Лабораторна робота № 10 «Структуровані типи даних»
- •Тема 8. Робота з файлами
- •Лабораторна робота №11 «Файлові типи даних»
- •Тема 9. Допоміжні алгоритми
- •Лабораторна робота № 12 «Створення програм з використанням процедур та функцій»
- •Тема 10. Работа з графікою та мультимедіа
- •Реалізація мультимедійних технологій. Відтворення відеокліпів
- •Внимание!
- •Лабораторна робота № 13 «Створення проекту «Побудова графіка функцій»»
- •Тема 11. Створення анімації в Delphi
- •Лабораторна робота № 14 «Створення проекту «Графічний конструктор»»
- •Лабораторна робота № 15 Створення багатовіконного проекту «Тест з географії»
- •Форма «Тестування» — модуль f_Test
- •Форма «Результат» — модуль fRes
- •Форма «Домопога» — модуль fInstr unit f__lnstr;
- •Тема 12. Організація роботи з таблицями та базами даних. Лабораторна робота №16. Розробка проекту «Рейтинг країн за результатами олімпійських змагань»
- •Лабораторна робота № 17 Створення проекту «Довідник по країнах»
- •Лабораторна робота № 18 Створення проекту «Телефонна книга»
- •Лабораторна робота № 19 Створення проекту «Довідник по тваринах»
- •Лабораторна робота № 20 Створення довідкової системи
- •Хід роботи
Если Вы хотите отменить прорисовку
фона текста, а фон задается и выполняется
Delphi отдельно для каждого
компонента, следует отменить стиль
кисти для объекта Font
непосредственно перед печатью
текста:
Brush.Style:=bsClear;Внимание!
У прикладі еліпс заповнюється малюнком, зразок якого зберігається у файлі rs.bmp. Напис виконується з виключенням текстового фону.
Лістинг програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class (TForm) procedure FormPaint (Sender: TObject); private (Private declarations) public (Public declarations) end; var Form1: TForm1; implementation ($ R *. dfm) procedure TForm1.FormPaint (Sender: TObject); var rs: TBitmap; begin rs: = TBitmap.Create; rs.LoadFromFile ( 'rs.bmp'); with Form1.Canvas do begin Brush.Bitmap: = rs; // стиль кисті передається наступному об'єкту Ellipse (20,20,180,80); Brush.Style: = bsClear; (стиль кисті ( «підкладка» написи) очищаємо, залишаючи Windows тільки параметр виводу тексту:) Font.Color: = clYellow; Font.Size: = 16; Font.Style: = [fsBold]; TextOut (70,40, 'ТСО-2005'); end; end; end.
Лабораторна робота № 13 «Створення проекту «Побудова графіка функцій»»
Мета: 1. Навчитися створювати графічні малюнки з використанням об’єкта Canvas.
2. Навчитися використовувати методи побудови простих графічних об’єктів в мові програмі Delphi.
Розробка проекту «Побудова графіка функції»
Завдання. Створити програму, результатом роботи якої буде побудова на екрані графіка функції
f(x) = 2sin x-e5
на інтервалі [0; 25]
Аналіз проекту. Для побудови графіків функцій використовується властивість Pixels об'єкта Canvas. Наприклад оператор Formal. Canvas. Pixels [10,10] : =clRed; виводить на канву точку з координатами (10,10) червоного кольору.
Розмір графічної площини форми визначається значеннями властивостей ClientWidth та ClientHeight. Лівій верхній точці робочої області відповідає елемент Pixels [0,0], а правій нижній — Pixels[ClientWidth-1, ClientHeight-1].
Розглянемо порядок побудови графіка на канві форми.
Як правило, графік будується на основі формули. Межі діапазону зміни аргументу функції є вхідним даними. Діапазон зміни значень функції можна обчислити. Виходячи з цих даних, можна визначити масштаб, що дасть змогу побудувати графік таким чином, щоб він займав усю область форми.
Наприклад, якщо деяка функція f(x) може набувати значення від 0 до 1000 і для виведення її графіка використовується область заввишки 250 пікселей, то масштаб вісі Оу обчислюється за формулою:
m = 250/1000.
Отже, значенню f(x) = 1000 відповідатиме точка області з координатою у = 0, оскільки
y = 250 –f(x) * m= 250 - 1000 • (250/1000). Значенню f(x) = 70 відповідатиме точка з координатою y = 233, то у = 250 - 70 • (250/1000) (тут значення заокруглене через те, що координата може бути тільки цілим числом).
Алгоритм розробки проекту
Створити папку D:\DeIphi\Pract_12.
Створити новий проект.
У програмному модулі в розділі Implementation (розділ опису процедур і функцій модуля) після директиви {$R *.dfm} створити процедуру GrOfFunc — побудова графіка функції. В цій процедурі спочатку обчислюється максимальне (у2) та мінімальне (у1) значення функції на відрізку [х1; х2], а потім, враховуючи значення висоти та ширини області виведен ня графіка, обчислюється масштаб для осей Ox (mx) та Оу (mу):
procedure GrOfFunc;
var
x,у,{аргумент та значення функції}
xl,yl, {[х1; х2] — відрізок, на якому будується функція}
х2,у2, {[у1; у2 ] — інтервал значень функції}
dх, {приріст функції}
mx,my:real; {масштаб}
1,b,{лівий нижній кут області виведення графіка}
h,w,{висота та ширина області виведення графіка}
х0,у0:integer; {точка початку координат}
function f (х:real):real;
begin
f:=2*sin(x)*exp(x/5); end;
begin
l:=10;
b:=Forml.ClientHeight-20; h:=Forml.ClientHeight-40;
w:=Forml.ClientWidth-40;
xl:=0;x2:=25;
dx:=0.001;
yl:=f(xl);y2:=f(x2);
x:=xl;
repeat y:=f(x);
if y<yl then yl:=y;if y>y2 then y2:=y;
x:=x+dx;
until (x>=x2);
my:=h/abs(y2-yl);mx:=w/abs(x2-xl) {масштаби по координатних вісях};
х0:=1;
y0:=b-abs(round(yl*my));
with Forml.Canvas do
begin
Moveto(l,b);lineto(l,b-h-13);
Moveto(x0,y0);lineto(x0+w,y0);
TextOut(1+5,b-h,FloatToStrF(y2,ffgeneral,6,3));
TextOut(1+5,b,FloatToStrF(yl,ffgeneral,6,3));
x:=xl;
repeat y:=f(x);
Forml.Canvas.Pixels [x0 + round(x*mx) , y0 -round(y*my)]:=clblack;
x:=x+dx;
until (x>=x2); end; end;
Для виклику процедури GrOfFunc створити процедуру обробки події OnPaint для об'єкта Form1. Ця процедура забезпечить накреслення графіка після відкриття форми в результаті запуску програми.
Для накреслення графіка після зміни розмірів форми створити процедуру обробки цієї події OnCanResize для об'єкта Forml. У цій процедурі виконати очистку поля форми, а потім викликати процедуру GrOf Func для побудови графіка відповідно до нових розмірів форми:
with Forml do Canvas.FillRect(Rect (0,0, ClientWidth, clientHeight) ) ; GrOfFunc;
Завдання для самостійного виконання
1.Змінити програму так, щоб осі виводились зеленим кольором, а графік функції— синім. Підписати осі координат. Підказка. Перед виведенням осей координатної площини встановити колір пера clGreen та для підпису осей виконати дії:
Font.Name:='arial';
Font.Size:=10;
Textout(x0+5,y0+5,'y=2*sin(x)*exp(x/5)');
Textout(x0+w-5,y0-8,'>’);
Textout(x0+w-5,y0+5, ' X') ;
Textout(l-3,b-h-15,'/\ Y');
Для виведення графіка синіми пікселями встановити колір clBlue.
2.На форму з графіком вивести аналітичний вигляд функції, графік якої побудовано.
Лістинг програми:
unit Unitl;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;
type
private
public
end;
var
Forml: TForml;
implementation
{$R *.dfm}
procedure GrOfFunc; {тут розміщається текст процедури GrOfFunc — див. вище}
end;
procedure TForml.FormPaint(Sender: TObject);
begin
GrOfFunc; {виклик процедури GrOfFunc }
end;
procedure TForml.FormCanResize(Sender:TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean);
begin
{поновлення побудови на формі нового розміру}
with forml do Canvas.FillRect(rect (0,0, ClientWidth, clientHeight));
GrOfFunc;
end; end.