
- •Занятие 1. Введение Почему именно Delphi?
- •Что мы видим на экране
- •Контрольные вопросы:
- •Занятие 2. Мое первое приложение в Delphi Вывести текст в окне
- •Задания для самостоятельной работы
- •Кнопки. Какие они бывают и зачем они?
- •Задания для самостоятельной работы
- •Поле редактирования
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 3. Введение в язык программирования Pascal
- •Понятие алгоритма
- •Структура процедуры
- •Правила задания имен языка Pascal
- •Задания для самостоятельной работы
- •Тип данных
- •Числовой тип данных. Целые числа
- •Числовой тип данных. Вещественные числа
- •Описание данных
- •Задания для самостоятельной работы
- •Операции
- •Присвоение значения переменной. Оператор присваивания
- •Задания для самостоятельной работы
- •Задача «Простой калькулятор»
- •Встроенные функции
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 4. Разветвляющийся алгоритм
- •Логический тип данных
- •Описание данных логического типа
- •Логические выражения
- •Разветвляющийся алгоритм
- •Оператор if
- •Оператор выбора case
- •Задания для самостоятельной работы
- •Списки. Компоненты ListBox и ComboBox
- •Зависимые переключатели. Компоненты RadioButton, RadioGroup
- •Задание для самостоятельной работы
- •Добавление формы к проекту
- •Структура модуля Pascal
- •Как открыть форму
- •Задание для самостоятельной работы
- •Способность форм ссылаться друг на друга
- •Задание для самостоятельной работы
- •Просмотр форм и ассоциированных с ними модулей
- •Основные свойства, методы и события формы
- •Менеджер проектов
- •Опции пpоекта
- •Упpавление пpоектами
- •Компиляция и сборка проекта
- •Выполнение и отладка проекта
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 6. Начинаем рисовать
- •Рисование линий
- •Задание цвета
- •Рисование фигур
- •Свойства класса tBrush
- •Вывод текста
- •События формы OnPaint и OnResize
- •Задания для самостоятельной работы
- •Занятие 7. Циклы
- •Цикл со счетчиком: for
- •Цикл с предусловием: while
- •Цикл с постусловием: repeat..Until
- •Использование операторов Continue и Break в циклах
- •Задание случайных чисел. Функция Random. Процедура Randomize
- •Вложенные циклы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 8. Массивы
- •Одномерные массивы
- •Двумерные массивы
- •Компонент tStringGrid
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 9. Строки и символы
- •Символьный тип данных
- •Строковый тип данных
- •Сравнение текстовой информации
- •Функции для работы с текстовой информацией
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Занятие 10. Работа с изображениями
- •Редактор Image Editor
- •Как отобразить рисунок в форме
- •Компонент Timer
- •Как заставить картинку двигаться
- •Случайное движение
- •Задание для самостоятельной работы.
- •Движение по закону
- •Задание для самостоятельной работы
- •Управляемое движение
- •Задание для самостоятельной работы
- •Как совместить разные виды движения
- •Задание для самостоятельной работы
- •Использование мыши
- •Занятие 11. Процедуры и функции
- •Описание и вызов процедуры
- •Описание и вызов функции
- •Где описывать процедуры(функции)
- •Передача параметров по ссылке и по значению
- •Контрольные вопросы
- •Задание для самостоятельной работы
- •Занятие12. Еще про компоненты Еще раз про списки
- •Функция MessageDlg
- •Задание для самостоятельной работы
- •Главное меню приложения. Компонент MainManu
- •Задание для самостоятельной работы
- •Кнопочная панель. Компонент ToolBar
- •Область редактирования. Компонент Memo
- •Контекстное меню. Компонент PopupMenu
- •Диалоговые окна Windows
- •Задание для самостоятельной работы
- •Занятие 13. Объектно-ориентированный подход (ооп) в программировании Основные понятия ооп
- •Основные принципы ооп
- •Тип данных запись (структура)
- •Задание для самостоятельной работы
- •Классы и объекты в Delphi
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Занятие 14. Работа с файлами
- •Общая технология работы с файлами в Delphi
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Как отобразить рисунок в форме
Для отображения рисунка, например, в форме можно использовать компонент Image, который располагается на вкладке Additional. Основные свойства компонента Image приведены в таблице:
Свойство |
Описание |
Picture |
Позволяет загрузить рисунок в компонент |
Top |
Задает расстояние по вертикали от верхней части окна, куда помещен компонент, до левого верхнего угла компонента в пикселах |
Left |
Расстояние по горизонтали от левой части окна, куда помещен компонент, до левого верхнего угла компонента в пикселах |
Autosize |
Если равен true, рамка автоматически растягивается по размеру рисунка |
Transparent |
Если равен true, то рисунок прозрачен, т.е. все не закрашенные места прозрачны |
Stretch |
Если равен true, то рисунок растягивается по рамке |
Height |
Высота в пикселах |
Width |
Ширина в пикселах |
Align |
Выравнивание рисунка относительно окна |
Упражнение. Нарисуйте человечка, жука, бабочку, шарик или машинку в Image Editor и с помощью компонента Image поместите рисунок в окне. Установите свойство Transparent=true для задания прозрачности и свойство Autosize=true для того, чтобы рамка автоматически растянулась по размеру рисунка.
Компонент Timer
Для организации движения мы часто будем использовать компонент Timer, который располагается на вкладке System. Событие OnTimer компонента выполняется каждый раз по прошествии интервала времени, заданного в свойстве Interval. Для включения или отключения таймера используется свойство Enabled.
Как заставить картинку двигаться
Можно организовать движение изображения в окне. При этом изображение может двигаться либо хаотично (случайное движение), либо по закону, или может управлять клавиатурой или мышкой. Рассмотрим разные варианты движения изображений.
Случайное движение
Например, изобразить полет бабочки в случайном направлении со случайной скоростью.
Для решения этой задачи поместим в окне компонент Image1:TImage, в свойство Picture компонента загрузим картинку, например изображение бабочки, которое предварительно создадим с использованием редактора Image Editor. Для задания позрачности будем использовать свойство Transparent = true, задать свойство Autosize = true для того, чтобы размер рамки компонента был равен размеру рисунка. Также поместим компонент Timer1:TTimer в область формы. Внешний вид окна на этапе проектирования изображен на рисунке:
Для таймера зададим свойство Interval, например, равным 100. На событие OnTimer напишем обработчик, который и будет выполнять основную функцию организации хаотичного движения бабочки.
При движении бабочки случайно задается направление ее движения и скорость по X и Y, при этом отслеживается, чтобы бабочка не вылетала за границы окна. Обработчик события OnTimer может иметь следующий вид:
procedure TForm1.Timer1Timer(Sender: TObject);
var k:integer;
dx,dy:integer;
begin
k:=random(4)+1; { задает направление движения}
dx:=random(10)+1; dy:=random(10)+1; {скорости по X и Y}
case k of
1: {вверх}
if Image1.top - dy > 0 then
Image1.Top:= Image1.Top - dy;
2: {вниз}
if Image1.top + dy < ClientHeight then
Image1.Top:= Image1.Top + dy;
3: {влево}
if Image1.left - dx > 0 then
Image1.left:= Image1.left - dx;
4: {вправо}
if Image1.left + dx <ClientWidth then
Image1.Left:= Image1.Left + dx;
END;
end;