- •Оглавление
- •20.1. Практическая работа 83
- •Глава I. Знакомство со средой Delphi
- •1.1. Общие сведения
- •Глава II. Создание приложений в среде Delphi
- •2.1. Характеристика проекта
- •2.2. Файл проекта
- •2.3. Файл формы
- •2.4. Файл модуля
- •2.5. Файл ресурсов
- •2.6. Практическая работа
- •Глава III. Использование компонентов
- •3.1. Понятие компонента
- •3.2. Страница Standard.
- •3.3. Страница Additional.
- •3.4. Страница Win32.
- •3.5. Страница System.
- •3.6. Страница Data Access.
- •3.7. Страница Data Controls.
- •3.8. Страница qReport.
- •3.9. Страница Dialogs.
- •3.10. Основные свойства объектов.
- •Глава IV. Работа с кнопками
- •4.1. Стандартная кнопка Button.
- •4.2. Кнопка с рисунком BitBtn.
- •4.3. Кнопка быстрого доступа SpeedButton.
- •4.4. Практическая работа
- •4.5. Самостоятельная работа
- •Глава V. Поля редактирования
- •5.1. Edit-однострочный редактор
- •5.2. Memo-многострочный редактор
- •5.3. Практическая работа
- •5.4. Самостоятельная работа
- •5.5. MaskEdit - специальный редактор
- •5.6. Практическая работа
- •6.3. Структура программы.
- •6 .4. Типы данных
- •6.4.1. Простые типы данных
- •6.4.2. Структурные типы данных
- •6.4.3. Функции и процедуры работы со строками
- •6.4.4. Функции преобразования строк в другие типы.
- •6.5. Операторы языка
- •6.6. Практическая работа.
- •6.8. Самостоятельная работа
- •6.9. Самостоятельная работа
- •6.10. Самостоятельная работа
- •6.11. Обработка исключительных ситуаций
- •Глава VII. Классы в Object Pascal.
- •7.1. Понятие класса
- •7.2. Поля класса
- •7.3. Методы класса
- •Глава VIII. Процедуры и функции, реализующие диалоги
- •8.1. Процедура ShowMessage.
- •8.2. Функция MessageDlg.
- •8.3. Функция MessageDlgPos.
- •8.4. Функция InputBox
- •9.2. Практическая работа
- •9.3. Самостоятельная работа
- •Глава X. Работа со списками
- •10.1. Простой список ListBox.
- •10.2. Комбинированный список ComboBox.
- •10.3. Общая характеристика списков
- •10.3.1. Свойства
- •10.3.2. Методы
- •10.4. Объект UpDown
- •10.5. Практическая работа
- •10.6. Самостоятельная работа
- •10.7. Самостоятельная работа
- •10.8. Самостоятельная работа
- •Глава XI. Объекты MainMenu и PopupMenu.
- •11.1. Основные свойства объектов
- •11.2. Игра «Крестики-нолики»
- •11.3. Самостоятельная работа
- •Глава XII. Использование переключателей.
- •12.1. Объект CheckBox
- •12.2. Объект RadioButton
- •12.3. Объект RadioGroup
- •12.4. Практическая работа
- •12.5. Самостоятельная работа
- •12.6. Самостоятельная работа
- •Глава XIII. Регуляторы величины
- •13.1. Объект ScrollBar
- •13.2. Практическая работа
- •13.3.Объект TrackBar
- •13.4. Самостоятельная работа
- •13.5. Самостоятельная работа
- •13.6. Компонент ProgressBar
- •Глава XIV. Объединение элементов управления
- •14.1. Объект Panel.
- •14.2. Область прокрутки ScrollBox
- •14.3. Фреймы Frame.
- •14.4. Практическая работа
- •14.5. Самостоятельная работа
- •Глава XV. Работа с таблицами
- •15.1. Объекты StringGrid и DrawGrid
- •15.2. Проект «Олимпиада»
- •15.3. Практическая работа
- •15.4. Самостоятельная работа
- •15.5. Самостоятельная работа
- •Глава XVI.Страница Dialogs
- •16.1. Стандартные диалоговые окна Windows
- •16.2. Общие свойства OpenDialog и SaveDialog:
- •16.3. Общие свойства OpenPicyureDialog и SavePictureDialog:
- •16.4. Практическая работа
- •16.5.Объект FontDialog
- •16.6. Объект ColorDialog
- •16.7. Практическая работа
- •16.8. Объекты FindDialog и ReplaceDialog
- •16.9. Проект «Примитивный редактор текста»
- •Глава XVII. Элементы с закладками
- •17.1. Однострочный блокнот TabControl.
- •17.2. Практическое задание
- •17.3. Самостоятельная работа
- •17.4. Многостраничный блокнот PageControl.
- •17.5. Практическая работа
- •Глава XVIII. Иерархические структуры
- •18.1. Объект TreeView
- •18.2. Практическая работа
- •18.3. Самостоятельная работа
- •18.4.Объект ListView
- •18.5. Практическое работа
- •Глава XIX. Работа с датами и временем
- •19.1. Объект DateTimePicker
- •19.2. Объект MonthCalendar
- •19.3. Объект Calendar.
- •19.4. Самостоятельная работа
- •19.5. Объект Timer
- •19.6. Практическая работа
- •19.7. Самостоятельная работа
- •Глава XX. Объект Animate
- •20.1. Практическая работа
- •20.2. Игра «угадай число»
- •Глава XXI. Панели инструментов
- •21.1. Объект ToolBar.
- •21.2. Объект ControlBar
- •21.3. Создание текстового редактора с использованием объекта RichEdit
- •Глава XXII. Графика в Delphi
- •22.1. Класс tCanvas
- •22.2. Класс tFont.
- •22.3. Класс tPen.
- •22.4. Класс tBrush
- •22.5. Класс tGraphic
- •22.6. Класс tPicture
- •22.7. PaintBox - окно для рисования
- •22.8. Практическая работа
- •22.9. Практическая работа
- •22.10. Самостоятельная работа
- •22.11. Объект Shape
- •22.12. Самостоятельная работа
- •22.13. Создание графического редактора
Глава XXII. Графика в Delphi
Программирование графики в Windows является сложным и трудным процессом, но в Delphi имеются классы, существенно упрощающие использование графических средств Windows:
Tcanvas – для дисплейного контекста
TFont – для шрифта
TPen – для пера
TBrush – для кисти
22.1. Класс tCanvas
Этот класс создаёт “канву” – поверхность, на которой можно рисовать чертёжными инструментами – пером, кистью и шрифтом. Объекты класса TCanvas автоматически создаются для всех видимых компонентов, которые должны уметь нарисовать себя.
Свойства класса:
Свойство |
Значение |
Brush |
Объект – кисть. |
ClipRect |
Определяет текущие размеры области, нуждающиеся в прорисовке. |
CopyMode |
Устанавливает способ взаимодействия растрового изображения с цветом фона. |
Font |
Объект – шрифт. |
LockCount |
Счётчик блокировок канвы. Увеличивается на единицу при каждом обращении к методу Lock и уменьшается при обращении к Unlosk. |
Pen |
Объект – перо. |
PenPos |
Определяет текущее положение пера в пикселях относительно левого верхнего угла канвы. |
Pixels(X,Y:Integer) |
Массив пикселей канвы. |
Методы класса:
Метод |
Назначение |
Arc(x1,y1,x2,y2,x3,y3,x4,y4) |
Чертит дугу эллипса в охватывающем прямоугольнике (х1,у1)‑(х2,у2). Начало дуги лежит на пересечении эллипса и луча, проведенного из его центра в точку (х3,у3), а конец – на пересечении с лучом из центра в точку (х3,у4) |
Chord(x1,y1,x2,y2,x3,y3,x4,y4) |
Чертит сегмент эллипса в охватывающем прямоугольнике (х1,у1)‑(х2,у2) |
Ellipse(x1,y1,x2,y2) |
Чертит эллипс в охватывающем прямоугольнике (х1,у1)‑(х2,у2). Заполняет все внутреннее пространство эллипса текущей кистью |
FillRect(const Rect) |
Заполняет текущей кистью прямоугольную область Rect, включая ее левую и верхнюю границы, но не затрагивая правую и нижнюю |
LineTo(x,y) |
Чертит линию от текущего положения пера до точки (х,у) |
MoveTo(x,y) |
Перемещает перо в положение (х,у) без вычерчивания линий |
PolyGon(points: array of points) |
Вычерчивает пером многоугольник по точкам, заданным в массиве points. Конечная соединяется с начальной, и многоугольник заполняется кистью |
PolyLine(points: array of points) |
Вычерчивает пером ломаную прямую по точкам, заданным в массиве points |
Rectangle(x1,y1,x2,y2) |
Вычерчивает и заполняет прямоугольник (х1,у1)‑(х2,у2) |
Refresh |
Устанавливает перо, кисть и шрифт по умолчанию |
TextHeight(const Text:string):integer |
Возвращает высоту прямоугольника, охватывающего текстовую строку Text |
TextOut(x,y:integer;const Text:string) |
Выводит текстовую строку Text так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (x,y)
|
TextWidth(const Text:string):integer |
Возвращает ширину прямоугольника, охватывающего текстовую строку Text |
TextRect(rect:Trect; x,y:integer; Text:string); |
Выводит текстовую строку Text так, чтобы левый верхний угол прямоугольника, охватывающего текст, располагался в точке (x,y)
|
