- •Часть 1. Среда Delphi Тема 1. Объектно-ориентированное программирование
- •Тема 2. Элементы интерфейса
- •Окно проектировщика формы
- •Окно инспектора объектов
- •С оздание и сохранение проекта и файла модуля Как открыть новый проект?
- •Как открыть существующий проект?
- •Тема 3. Характеристика проекта. Состав проекта
- •Файлы формы
- •Файлы модулей
- •Файл ресурсов
- •Параметры проекта
- •Тема 4. Компиляция и выполнение проекта
- •Тема 5. Основные объекты
- •Основные свойства объектов
- •Основные события
- •Часть 2. Язык Object Pascal
- •Тема 1. Основные понятия
- •Словарь языка
- •Структура программы
- •Комментарии
- •Тема 2. Данные Виды данных
- •Типы данных
- •Простые типы данных
- •Структурные типы данных
- •Тема 3. Выражения
- •Арифметические выражения
- •Логические выражения
- •Строковые выражения
- •Тема 4. Простые операторы Оператор присваивания
- •Оператор перехода
- •Тема 5. Работа с графикой
- •Оператор доступа
- •Рисование многоугольников в Delphi
- •Закрашивание произвольной области в Delphi
- •Работа с несколькими формами
- •Объект Shape (Фигура)
- •Тема 6. Работа с датой и временем Объект Timer
- •Свойства компонента Timer
- •Манипулирование датами и временем
- •Тема 7. Встроенные окна диалога.
- •Окно ввода данных
- •InputВох(заголовок, подсказка, значение)
- •Окно вывода сообщений
- •Тема 8. Структурированные операторы
- •Составной оператор
- •Условный оператор
- •Оператор выбора
- •Операторы цикла
- •Тема 9. Подпрограммы
- •Процедуры
- •Функции
- •Параметры и аргументы
- •Тема 10. Работа с элементами выбора
- •1. Флажок (CheckBox)
- •2. ПереключательRadioButton
- •Свойства компонента RadioButton
- •Свойства компонента tRadioGroup
- •3. Простой список ListBox
- •Свойства компонента ListBox
- •4. Комбинированный список ComboBox
- •Свойства компонента СотbоВох
- •Значения для свойства Style
- •Тема 11. Работа с меню
- •Основные свойства пункта меню:
- •Главное меню
- •Конструктор меню
- •Динамическая настройка меню
- •Тема 12. Массивы
- •Объявление массива
- •Операции с массивами
- •Вывод массива
- •Ввод массива
- •Использование компонента StringGrid
- •Использование компонента Memo
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива
Оператор доступа
Оператор доступа служит для удобной и быстрой работы с составными частями объектов, в том числе с полями записей. Напомним, что для обращения к полю записи необходимо указывать имя записи и имя этого поля, разделенные точкой. Аналогичным путем образуется имя составной части какого-либо объекта, например, формы или кнопки. Оператор доступа имеет следующий основной формат:
with <Имя объекта> do <Оператор>
В операторе, расположенном после слова do, для обращения к составной части объекта можно не указывать имя этого объекта, которое уже задано после слова with.
Пример. Использование оператора доступа.
// Составные имена пишутся полностью
Form1.Canvas.Pen.Color := clRed;
Form1.Canvas.Pen.Width := 5;
Form1.Canvas.Rectangle(10, 10, 100, 100);
ИЛИ
// Использование оператора доступа
with Form1.Canvas do begin
Pen.Color := clRed;
Pen.Width := 5;
Rectangle(10, 10, 100, 100);
end;
В обоих приведенных примерах на форме красным пером толщиной пять пикселей рисуется прямоугольник. Для обращения к свойствам и методу (процедуре) поверхности рисования формы удобно использовать оператор доступа (второй вариант).
Рисование многоугольников в Delphi
Нарисовать красным цветом треугольник и закрасить его в желтый цвет.
Procedure Form1.FormPaint (Sender:TObject);
Var x,y:integer; p:array [1..4] of Tpoint;
Begin
x:=30; y:=250;
with Canvas do begin
Pen.Color:=clRed;
Brush.Color:=clYellow;
p[1].X:=x; p[1].Y:=y
p[2].X:=x+100; p[2].Y:=y-100
p[3].X:=x+200; p[3].Y:=y
p[4].X:=x; p[4].Y:=y
polygon(p);
end;
end;
Закрашивание произвольной области в Delphi
Класс Canvas содержит процедуру FloodFill, которая может работать в двух вариантах: или закрашивать область текущим цветом до границы заданного цвета, или перекрашивать точки заданного цвета до границы любого другого цвета (в этом случае граница может состоять даже из частей разного цвета!). Различаются эти варианты значением последнего параметра процедуры — fsBorder или fsSurface.
Например, закрасим красным область с границей черного цвета:
Canvas.Brush.Color := clRed;
Canvas.FloodFill (X, Y, clBlack, fsBorder);
А теперь перекрасим красную область в синий цвет:
Canvas.Brush.Color := clBlue;
Canvas.FloodFill (X, Y, clRed,. fsSurface) ;
Обычно мы не знаем заранее, какого цвета область, которую мы собираемся перекрашивать. Но это легко можно определить с помощью свойства Pixels, в котором хранятся цвета всех точек изображения. Pixels[X,Y] и есть цвет точки канвы с координатами X, Y.
Работа с несколькими формами
Задача. Осуществить переход между формами по щелчку.
Для того, чтобы добавить новую форму, необходимо выполнить команду File/New/Form.
Тогда в разделе программного кода появится модуль Unit2, предназначенный для второй формы.
Запуск программы будет по умолчанию осуществляться с запуска первой формы.
Чтобы менять формы местами, их нужно поочередно показывать и скрывать. За данные действия отвечают соответственно методы Show и Hide.
Чтобы осуществить переход между формами по щелчку, необходимо запрограммировать следующие процедуры.
В модуле первой формы
procedure TForm1.FormClick(Sender: TObject);
begin
Form2.Show;
Form1.Hide;
end;
В модуле второй формы
procedure TForm2.FormClick(Sender: TObject);
begin
Form1.Show;
Form2.Hide;
end;