- •Символьный и строковой типы.
- •Операции над символами и строками
- •Преобразование строк
- •Строки в Delphi
- •Множества и операции с ними
- •Модули в Delphi
- •Событийно – ориентированное программирование
- •Объективно-ориентирование программирование
- •Классы и объекты
- •Объявление класса
- •Абстрактные методы
- •Перегружаемые методы
- •Структура проекта Делфи
- •Визуальное программирование
- •Реакция на события.
- •Компоненты Делфи
- •Фокус ввода
- •Общие свойства объектов
- •Модуль Math
- •Класс tLabel
- •Панели и их назначение
- •Обработка исключительных ситуаций
- •Класс tExeption
- •Создание нового класса исключения
- •Компоненты страницы Dialogs
- •Компоненты tOpenDilog, tSaveDialog
- •Графика в Делфи
- •Класс tCanvas
- •Метод класса tCanvas
- •Класс Tpen
- •Класс tFont
- •Класс tBrush
- •Класс tGraphics Tpicture
- •Класс TpaintBox
- •Класс tBitMap
- •Методы BitMap
- •Класс tImage
- •Подрограмма формирования преобразования строк.
- •Класс tForm
- •Печать из программы
- •Работа с файлами
- •Работа с файловой системой Windows.
Графика в Делфи
Растровый способ формирования изображение. Т.е. любая информация представляет собой совокупность светящихся точек – пикселей. Каждый пиксель определен координатами левого угла экрана (0:0) и цветом.
Настройка графика процедур по работе с конкретным адаптером за счет подключения нужного графического драйвера.
Все графические операции сводятся к установке к цвету пикселей на площадке рисунка. Делфи может манипулировать каждым отдельным пикселем.
Каждый цвет определяется конкретным битовым набором 24-х бит. Вся палитра определяется количеством уникальным битовым набором 28=256 224= 16 000 000
Манипулируя палитрой добиваемся нужного цвета
II способ манипулирования основам на понятии истинного цвета, который определяется как 16 млн цветов, полученных совместным сложением всех комбинаций красного, зеленого и синего.
Интенсивность от 0 до 255
2563=16 777 216 При таком подходе исходный цвет определяется от черный белый 0 до 255 R G B 0 0 0 255 255 255
Есть функция RGB с помощью которой можно устанавливать цвет RGB(значение красного, значение зеленого, значение синего)
For,1.Color:=RGB(255,255,255) 255,255,0 желтый 255,0,255 фиолетовый
Можно использовать сложение цветов или комбинации Form1.Color:=7+14; РезультатЖ цвет полученный по битовому сложению 1 1 1 1 0 1 1 1 1
В делфи созданы специальные классы подстройки, упрощеное использование графиков их инструментов (шрифт, перо и кисть) Классы
TCanvas контекст TFont шрифт TPen перо TBrush кисть
Объекты этих классов доступны программисту через свойства.
Класс tCanvas
Область рисунка на форме и другого графического компонента.
Свойство класса TCanvas: property BrushTBrush; property ClipRect:TRect; определяет текущие размеры области нуждающиеся в прорисовке
Property Font:TFont; property Pen:TPen; property PenPos:TPoint; Определяет текущее положение пара в пикселях относительно левого угла конвы графика объекта property Copymode:TCopemode;
Устанавливает способ взаимодействия растрового изображения с цветом фона property Pixels [x,y:integer]:TColor; Чтобы получить доступ к пикселям формы используем свойство формы pixels для canvas. [Form1.Canvas.Pixels[10..10]:=0;
Пр. Используя свойства Pixels нарисовать синусоиду на конве формы
Procedure TForm1.Button1Click (Sender:TObject); var x,y:real; PX,PY:integer; Halfh:integer; begin Halfh:=Form1.Height div 2; For PX:=0 to Form1.Width do begin x:=PX*(2*pi/form1.Width); //масштаб х приводим к 2pi для прорисовки одной волны y:=sin(x); PY:=trunk(0.7*y*halfh)+halfh; Form1.Canvas.Pixels[PX,PY]:=0; end; end. Свойство CopyMode при копировании методом CopyRect; сm MergePaint | And (режим объединения изображения на canvas и копируемое изображение операцией and cm MergeCopy| or cmSrcCopy |
Метод класса tCanvas
Procedure Lineto (x,y:integer); чертит линию от текущего положения пера до координат x,y Procedure Moveto (x,y:integer); без вычерчивания , практически переносит курсор Procedure PolyLine(points:array of TPaint); вычерчивает ломаную по точкам заданым в массива Paints Procedure PolyGone(…); замкнутый многоугольник с заполнением кистью Procedure FloodFill (x,y:integer; Color:TColor; FillStyle:TFillStyle); заливка конвы текущей кистью, начинается с точки (х,у) во все стороны. Если равен FillStyle=fsSurface, то заливка распространяется до точек и этим цветом Color.
Style=fsBorder (до бордюра с цветом)
Procedure TextOut(x,y:integer; const s:string); Выводит текстовую строку S начиная с х,у на канве Form1.Canvas.PolyLine )Point(10,10),Point(100,100),Ponit(50,75),Point(10,10));
Пр. Написать пр. заполнения окна цветом с помощью цикла по всем меняемым в окне.
Var x:integer; begin for x:=0 to Form1.Width do begin Form1.Canvas.Moveto(x,0); Form1.Canvas.Lineto(x,Fomr1.height); end;