- •Оглавление
- •Введение
- •Глава 1
- •Использование компонентов общего назначения: tLabel, tButton, tEdit, tShape, tTimer, tPanel
- •1.1.1. Проект «Калькулятор»
- •1.1.2. Проект «Таймер»
- •1.1.3. Проект «Светофор»
- •1.1.4. Проект «Движение шарика tShape с отражением»
- •Глава 2
- •2.1. Класс tCanvas, его свойства и методы
- •2.1.1. Рисование узоров
- •2.1.2. Рисование поля для различных игр
- •2.1.3. Рисование координатной сетки
- •2.1.4. Построение графиков элементарных функций
- •2.2. Класс tBitmap и работа с растровыми рисунками
- •2.2.1. Рисование на поле растрового рисунка
- •2.2.2. Движение двоичного образа по фоновой картинке
- •2.3. Компонент tImage и его использование
- •2.3.1. Проект «Движение компонента tImage»
- •2.3.2. Перемещение картинок
- •2.3.3. Проект «Движение компонента tImage
- •Глава 3
- •3.1. События от мыши
- •3.1.1. Проект «Попади в мишень»
- •3.1.2. Проект «Снежинки»
- •3.1.3. Проект «Крестики-нолики»
- •3.1.4. Движение образа по удерживанию левой кнопки мыши
- •3.1.5. Проект «Жизнь клеток»
- •3.2. События от клавиатуры
- •3.2.1. Код клавиши
- •3.2.2. Управляемое движение образа
- •3.2.3. Совмещение управляемого и неуправляемого движений.
- •Глава 4
- •4.1. Проект «Простейший графический редактор»
- •Глава 5
- •5.1. Создание кнопок
- •5.1.1. Проект «Лохотрон»
- •5.1.2. Игра «Пятнадцать»
- •5.2. Создание компонентов tImage
- •5.2.1. Проект «Угадай картинку»
- •5.2.2. Проект «Собери картинку»
- •Глава 6
- •6.1. Компоненты tStringGrid и tDrawGrid
- •6.1.1. Сортировка массива
- •6.1.2. Проект «Таблица успеваемости»
- •6.1.3. Система предварительной продажи билетов
- •6.1.4. Проект «Таблица рисунков»
- •6.1.5. Рисование в таблице tDrawGrid
- •6.2. Компоненты tListBox, tCombobox ,
- •6.2.1. Прорисовка изображений в списке tListBox
- •6.2.2. Проект «Зоомагазин»
- •6.2.3. Проект «Шуточная игра»
- •6.2.4. Проект «Редактирование списка вопросов»
- •Глава 7
- •7.1. Тест «Знаете ли вы загадки?»
- •7.2. Проект «Исторические даты»
- •Глава 8
- •8.1. Компоненты tOpenDialog, tSaveDialog – диалоги
- •8.1.1. Просмотр текстовых файлов
- •8.2. Добавление и удаление записей в файл и из файла
- •8.2.1. Проект «Журнал группы»
- •8.3. Файлы для проекта «Судоку»
- •Глава 9
- •9.1. Просмотр видеофильма с использованием
- •9.2. Простейшая мультипликация
- •Глава 10
- •10.1. Пример использования try… except
- •Глава 11
- •11.1. Оформление проекта
- •11.1.1. Проект «Бегущая строка»
- •11.1.2. Проект «Титры»
- •11.1.3. Общие рекомендации по оформлению
- •11.2. Рекомендации для отчета по проекту
- •11.3. Темы проектов
- •11.3.1. Головоломка «Сквэрворд»
- •11.3.2. Задача «Путешествие по маршруту»
- •11.3.3. Головоломка «Ходом коня»
- •11.3.4. Задача «Извилистый путь»
- •11.3.5. Головоломка «Фишки на поле»
- •Список литературы
- •630058, Новосибирск, ул. Русская, 35
Введение
Данное учебное пособие предназначено для поддержки курса «Базовый проект «Визуальное программирование в среде Delphi» для студентов первого курса ВКИ НГУ. Хорошо документированные разнообразные примеры с иллюстрациями позволяют не только освоиться в среде Delphi, но и самостоятельно разработать собственное интересное и красиво оформленное приложение.
В пособии приведены задачи по следующим основным разделам: использование базовых компонентов Delphi, создание приложений
с графикой и элементами мультимедиа, работа с таблицами, массивами, списками и файлами, разработка документации по проекту. Также предлагается список тем проектов для самостоятельной работы. В первых главах пособия задачи расположены не только по темам, но и по возрастанию сложности. Во второй половине книжкиакцент делается на темы для изучения Delphi. Темы можно изучать в любом порядке.
Для каждого приложения сформулирована постановка задачи и описана реализация. При начальном изучении учебного материала полностью приводится код приложений. По мере усложнения задач код дается только для основных процедур.
Данное пособие является подспорьем не только для студентов, но и хорошим методическим руководством для преподавателей. Задачи, предлагаемые в пособии, обозначают тему, а уже творческий студент разовьет тему и напридумывает разнообразные задачи.
Глава 1
Знакомство со средой Delphi
Использование компонентов общего назначения: tLabel, tButton, tEdit, tShape, tTimer, tPanel
1.1.1. Проект «Калькулятор»
Постановка задачи. Создайте простейший калькулятор для выполнения арифметических операций.
Реализация. Положите на форму кнопки TButton для знаков арифметических операций, кнопки для извлечения квадратного корня и возведения в квадрат. Положите три компонента TEdit: один для первого числа, второй – для второго и третий для вывода результата. Положите три надписи TLabel и подпишите их, как указано на рис. 1. При написании кода обработайте случай деления на нуль и случай извлечения квадратного корня из отрицательного числа.
Создайте папку «Калькулятор» и сохраните проект в ней. Запустите проект на исполнение.
Рис. 1. Форма проекта «Калькулятор»
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a,b:real;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
edit3.Text:=FloatToStr(a+b);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
edit3.Text:=FloatToStr(a-b);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
edit3.Text:=FloatToStr(a*b);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
if b<>0 then
edit3.Text:=FloatToStr(a/b)
else
ShowMessage('Деление на нуль!');
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
edit3.Text:=FloatToStr(a*a);
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
a:=StrToFloat(Edit1.Text);
if a>=0 then
edit3.Text:=FloatToStr(sqrt(a))
else
ShowMessage('Корень из отрицательного числа!');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
end;
end.
Задание. Усложните проект, убрав два окна TEdit. Добавьте 10 кнопок для цифр, кнопку для запятой, кнопки для равенства и «Очистить». Числа вводите поочереди в окно редактора, в нем же должен отображаться результат. Примерный вид калькулятора приведен на рис. 2.
Рис. 2. Проект «Калькулятор»