
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
§14. Графическая подсистема Delphi Класс tImage
Предназначен для хранения изображений любого из распространенных графических форматов (bmp, jpg и др).
Свойство |
Тип |
Пояснение |
Примечание |
Picture |
TPicture |
Изображение |
Может загружаться через инспектор объектов |
Некоторые методы, связанные со свойством Picture
Метод |
Пояснение |
Пример |
LoadFromFile(filename) |
Загрузка текста из файла filename |
Image1. Picture. LoadFromFile(’C:\a.jpg’) |
SaveToFile(filename) |
Запись текста в файл filename |
Image1. Picture. SaveToFile(’a.bmp’) |
Некоторые события
Событие |
Что происходит |
Примечание |
onChange |
Изменение содержимого |
|
onMouseDown |
Нажатие кнопки мыши на объекте |
Выходные параметры x и y указывают координаты курсора мыши относительно левого верхнего угла объекта |
onMouseUp |
Отпускание кнопки мыши на объекте | |
onMouseMove |
Движение мыши на объекте |
Класс tCanvas
Графическая подсистема Delphi инкапсулирована (иными словами, спрятана) в свойстве Canvas, которым обладают многие визуальные компоненты или их свойства, в частности объект Form1 или свойство Picture класса TImage. Свойство Canvas содержит двумерный массив пикселей, точнее, их цветовых кодов Pixels. Например, инструкция Form1.Canvas.Pixels[100,50]:=clRed; означает, что точка с координатами (100;50) на форме будет окрашена в красный цвет. Таким образом, рисование может быть выполнено поточечно.
Canvas обладает свойствами Brush и Pen и всеми их элементами, аналогично классу TShape. Для того чтобы задать цвет рисования фигуры, следует установить соответствующие значения этих свойств до рисования.
Кроме того, есть ряд специальных методов для рисования:
Метод |
Пояснение |
Пример |
MoveTo(x,y) |
Перемещение пишущего узла в точку (x;y) без рисования |
Image1.Canvas. MoveTo(0,0) |
LineTo(x,y) |
Отрезок прямой от точки нахождения пишущего узла до точки (x;y) |
Image1.Canvas. LineTo(100,50) |
Rectangle(x1,y1,x2,y2) |
Прямоугольник с координатами противоположных углов (x1;y1) и (x2;y2) |
Image1.Canvas. Rectangle(0,0,100,50) |
Ellipse(x1,y1,x2,y2) |
Эллипс, вписанный в соответствующий прямоугольник |
Image1.Canvas. Ellipse(0,0,100,50) |
FloodFill(x,y,color,type) |
Заливка области |
См. ниже |
Заливка области производится, начиная от точки (x;y). Параметр type может принимать значение:
fsBorder (заливается область до границы, цвет которой определяется параметром color);
fsSurface (заливается область, цвет которой определяется параметром color до границы другого цвета).
Например:
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.FloodFill(100,50,clBlack,fsBorder);
Будет залита красным цветом область от точки (100;50) до границы черного цвета.
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.FloodFill(100,50,clWhite,fsSurface)
Будет залита красным область белого цвета от точки (100;50).