
- •Занятие 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
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Задание для самостоятельной работы.
Модифицируйте предыдущий пример, добавив еще несколько бабочек.
Движение по закону
Например, шарик двигается по окну, как по столу, отражаясь от его стенок. Для этого поместим в форму компонент img:TImage и компонент Timer:TTimer. Внешний вид формы на этапе проектирования изображен на рисунке:
На событие OnCreate формы напишем код, который задает значения смещения шарика по X и Y:
procedure Tfrm.FormCreate(Sender: TObject);
begin
dx:=9; dy:=7;
end;
На событие OnTimer компонента Timer напишем программный код, который позволяет смещать шарик:
procedure Tfrm.Timer1Timer(Sender: TObject);
begin
if (img.Left+img.Width>=frm.ClientWidth) or (img.Left<=0) then
dx:=-dx;
if (img.Top+img.Height>=frm.ClientHeight) or (img.Top<=0) then
dy:=-dy;
img.Left:=img.Left+dx;
img.Top:=img.Top+dy;
end;
Задание для самостоятельной работы
Модифицируйте рассмотренный пример, добавив еще несколько шариков.
Промоделируйте движение снаряда, выпущенного из пушки и летящего по параболе.
Управляемое движение
Например, требуется организовать управление движением жука в окне с помощью стрелок клавиатуры вверх, вниз, влево, вправо, так, чтобы жук не выходил за границы окна. Для отслеживания нажатия клавиш в окне можно использовать событие формы: OnKeyDown.
Событие OnKeyDown - выполняется как при нажатии одной клавиши, так и при одновременном нажатии двух клавиш, включая функциональные клавиши и управляющие клавиши, такие как Shift, Alt, Ctrl.
Заголовок процедуры обработки события имеет следующий вид:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
Процедуре обработки события OnKeyDown передаются три параметра:
Sender – указатель на объект источник события.
Shift – указывает какая из клавиш Shift, Alt, или Ctrl была нажата вместе с клавишей Key.
Key – задает код нажатой клавиши. Для не алфавитно-цифровых клавиш можно использовать виртуальные коды клавиш. Коды клавиш представляют собой константы. Например, в следующей таблице приведены некоторые виртуальные коды клавиш:
Код клавиши |
Описание |
VK_RETURN |
Enter |
VK_ESCAPE |
Escape |
VK_LEFT |
Стрелка влево |
VK_UP |
Стрелка вверх |
VK_RIGHT |
Стрелка вправо |
VK_DOWN |
Стрелка вниз |
VK_DELETE |
Delete |
Поместим в область формы компонент Image1:TImage. Зададим его свойства.
На событие OnKeyDown формы напишем программный код, который позволяет управлять движением жука. При нажатии стрелок вверх и вниз жук перемещается вверх и вниз на 10 пикселей. При нажатии стрелок влево и вправо жук также перемещается на 10 влево и вправо:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
case key of
{вверх}
VK_UP: if Image1.top -10 > 0 then Image1.top:=Image1.Top - 10;
{вниз}
VK_Down: if Image1.top +10 < ClientHeight then Image1.top:=Image1.Top + 10;
{влево}
VK_Left: if Image1.Left - 10 >0 then Image1.Left :=Image1.Left -10;
{вправо}
VK_Right: if Image1.Left +10 <ClientWidth then Image1.Left :=Image1.Left +10;
end;
end;