
- •Занятие 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
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Зависимые переключатели. Компоненты RadioButton, RadioGroup
Кнопка переключателя может находиться в одном из двух состояний: включено или выключено. Будучи помещенными в контейнер, зависимые переключатели используются для выбора одной опции из нескольких взаимоисключающих, т.е. при включении одной кнопки, другие автоматически выключаются. Таким образом, во включенном состоянии всегда находится одна кнопка. Поэтому они объединяются в группу. Контейнером называется элемент, который используется для группировки других элементов. Например, контейнером может быть форма или компонент GroupBox. На вкладке Standart находятся два компонента, которые позволяют создавать зависимые переключатели: RadioButton и RadioGroup.
Компонент RadioButton позволяет создать один переключатель. Свойства приведены в таблице:
Основные свойства компонента RadioButton
Свойство |
Описание |
Caption |
Подпись кнопки. |
Checked |
Если True, то кнопка находится во включенном состоянии |
Компонент RadioGroup представляет собой группу радиокнопок. Только одна кнопка в группе может находиться во включенном состоянии. Основные свойства компонента RadioGroup приведены в таблице:
Свойство |
Описание |
Caption |
Подпись группы |
Columns |
Число колонок в группе |
Items |
Массив, содержащий названия кнопок в группе |
ItemIndex |
Номер выбранного элемента, нумерация с нуля |
Для демонстрации работ RadioButton выполним несложное упражнение. Поместим компонент GroupBox в область формы, поместим два компонента RadioButton в GroupBox, т.е. GroupBox является для них контейнером. Зададим подпись всей группы: «Выбрать пол» и подписи кнопок: «мужской», «женский». С помощью ShowMessage отобразим выбор пользователя. Форма имеет следующий вид:
На кнопку «Что Вы выбрали?» напишем обработчик:
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
if Radiobutton1.Checked then
ShowMessage('Men');
if Radiobutton2.Checked then
ShowMessage('Woman');
end;
Для демонстрации работы RadioGroup выполним следующее упражнение: создадим группу переключателей с названиями цветов. При выборе пользователем кнопки с цветом форма меняет свой цвет на выбранный. Поместим компонент RadioGroup в область формы, с помощью свойства Caption зададим название группы, с помощью свойства Items зададим названия кнопок. Вид формы:
На событие OnClick компонента RadioGroup напишем обработчик:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: color:=clWhite;
1: color:=clBlue;
2: color:=clRed;
end;
end;
Обратите внимание, при задании свойства формы вместо того, чтобы писать: Form1.color, мы пишем – color, т.е. не задаем имя объекта. В этом случае система полагает, что имеется ввиду свойство текущего окна.
Задания для самостоятельной работы
Разработать простой калькулятор на четыре арифметических операции. Внешний вид окна:
Разработать кнопочный калькулятор, подобный тому, что в Windows, внешний вид окна может быть, например, таким:
Контрольные вопросы
Разветвляющийся алгоритм, чем он отличается от линейного алгоритма?
Для чего используется логический тип данных?
Какие значения может принимать переменная логического типа?
Как задать переменную логического типа?
Какие операции определены на логическом типе данных?
Какой оператор языка Pascal позволяет задать разветвляющийся алгоритм?
Занятие 5. Как устроена программа в Delphi
Понятие проекта. Структура проекта
Если вы загляните в папку, в которой хранится исходный код вашего приложения, вы увидите довольно много файлов. Эти файлы необходимы для того, чтобы работало ваше приложение. Именно поэтому мы советовали вам все файлы сохранять в одной папке, чтобы не потерять ни один файл.
Набор файлов, который хранит исходный код вашего приложения, называется проектом. На основе файлов проекта создается выполнимый файл (*.exe). Давайте рассмотрим, из каких основных файлов состоит проект.
Структура проекта изображена на рис.
Рис. Структура проекта
Где
*.dfm содержит графическое представление формы;
*.pas – модуль Pascal;
*.res хранит ресурсы проекта;
*.dof хранит опции проекта.
Проект может содержать несколько форм, с каждой формой связаны два файла – с расширениями dfm и pas. Файл с расширением dfm – хранит графическое представление формы, именно сюда вы помещаете интерфейсные элемента, такие как кнопки, списки, поля редактирования. Файл с расширением pas – является модулем Pascal, именно там хранится программный код, связанный с формой, например обработчики событий формы. При этом каждому файлу dfm обязан соответствовать файл pas. Обратное неверно, т.е. модуль может не иметь связанной с ним формы, файла dfm.
С каждым проектом связан один файл с расширением dof, в котором хранятся опции проекта. А вот ресурсных файлов res может быть, вообще говоря, несколько, но, как правило, с каждым проектом связан один файл ресурсов, который хранит иконки, картинки, рисунки вашего приложения.
В своей папке вы обнаружите также файлы с расширением dcu. Эти файлы являются результатом компиляции модулей Pascal, они создаются каждый раз, когда компилируется проект. Значит, их хранение не является обязательным и они могут быть удалены.
Также можно не хранить файлы, расширение которых начинается со знака "~", например ~dfm, ~pas. Это файлы отката текстового редактора. Этими файлами можно воспользоваться, если испорчены основные файлы dfm и pas.
С каждым проектом связан один файл с расширением cfg – это файл конфигурации проекта.
Программа на Pascal, которая запускает приложение на выполнение, часто также называется проектом и хранится в файле с расширением *.dpr. Для доступа к этому файлу выполним меню Project | View Source.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Рассмотрим структуру программы. Ключевое слово program задает имя проекта (программы). Ключевое слово uses позволяет подключить к проекту формы и модули. А вот {$R *.RES} – это не комментарий, это опция компилятора, которая подключает к проекту ресурсный файл. Между операторами begin .. end располагается основной текст программы. Для каждого приложения создается глобальный объект Application. Этот объект отсутствует в палитре компонентов, недоступен он и на этапе разработки приложения. Но некоторые из его общедоступных (public) свойств могут быть установлены во время проектирования в диалоге задания опций проекта на страницах Forms и Application.
Метод Initialize – это первый метод, вызываемый для любого Delphi-приложения. Он инициализирует объект Application.
Метод CreateForm – загружает очередную форму в оперативную память.
Проект Delphi обычно состоит из нескольких вызовов метода CreateForm по количеству самозагружаемых (auto-create) форм. Приложение может создавать форму динамически во время выполнения с помощью того же метода CreateForm, но это не всегда требуется. По умолчанию первая созданная форма становится главной формой приложения.
Метод Run запускает приложение на выполнение и передает управление главной форме.