
- •Занятие 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
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Вывод текста
С помощью метода TextOut можно вывести строку, начиная с точки с координатами X,Y. Текст выводится с помощью текущего шрифта. Синтаксис метода:
procedure TextOut(X, Y: Integer; const Text: string);
Где Text – задает строку, которую необходимо вывести
X,Y – координаты точки, откуда выводить.
Например: TextOut(50,50,‘Привет’);
События формы OnPaint и OnResize
Программный код, позволяющий рисовать в окне, можно запускать по кнопке. Также у окна есть события, которые имеют специальное назначение, такие как OnPaint и OnResize.
Событие OnPaint – используется для перерисовки окна. Например, если окно закрывается другим окном, то для восстановления изображения в окне, когда оно снова становится окном переднего плана, можно использовать событие OnPaint. Событие OnPaint должно содержать программный код, отвечающий за перерисовку окна.
Например, проделайте такое простое упражнение:
На событие OnPaint формы навесим обработчик, который рисует в окне какую-нибудь простую фигуру, например, окружность.
Запустим программу на выполнение
Закроем окно приложения любым другим окном
Снова сделаем окно нашего приложения окном переднего плана
Вы увидите, что изображение восстанавливается, чего не произойдет, если данный программный код поместить, например, на событие кнопки.
Событие OnResize имеет место всякий раз, когда изменяются размеры окна. Для того чтобы узнать, как изменились размеры необходимо воспользоваться событием OnCanResize. Событию передаются переменные:
Sender – указатель на объект источник события;
NewWidth – содержит новое значение ширины объекта;
NewHeight – содержит новое значение высоты объекта;
Resize – содержит true, если была сделана попытка изменить размеры объекта и false в противном случае.
Например, проделаем такое простое упражнение: нарисуем фигуру в окне, например, прямоугольник. Каждый раз при изменении размеров окна, размеры прямоугольника должны изменяться пропорционально растяжению окна по горизонтали и вертикали. Внешний вид окна:
Программный код может иметь следующий вид:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure FormResize(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var
hr,wr:integer; { высота и ширина прямоугольника}
hf,wf:integer; { высота и ширина формы }
x0,y0:integer; { координаты левого верхнего угла прямоугольника}
kx,ky:real; { коэффициенты пропорциональности по x и y}
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
{ задание начальных значений переменным }
x0:=50; y0:=30;
hr:=150; wr:=170;
kx:=hr/width; ky:=wr/height;
end;
procedure TForm1.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
{ код, позволяет определить новые размеры формы}
if resize then
begin
wr:=round(kx*NewWidth);
hr:=round(ky*NewHeight);
with canvas do
begin
// стереть прямоугольник
pen.Color:=color;
brush.Color:=color;
rectangle(x0,y0,x0+wf,y0+hf);
// нарисовать прямоугольник
brush.Color:=clBlue;
rectangle(x0,y0,x0+wr,y0+hr);
end;
end;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
{ сохраняем старые размеры формы в переменных wf и hg }
wf:=width; hf:=height;
end;
end.