- •Оглавление
- •Введение
- •Глава 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
8.1.1. Просмотр текстовых файлов
Постановка задачи. Создайте простую программу для просмотра содержимого текстового файла, как показано на рис. 46. Данный проект демонстрирует работу диалога открытия файлов с применением фильтра.
Рис. 46. Программа «Просмотр текстовых файлов»
Реализация. На пустую форму поместите компоненты TOpenDialog, TButton и редактор TMemo, в котором будем просматривать текстовой файл. При работе программы щелчок по кнопке будет сигналом о необходимости загрузить в редактор новый файл.
Свойство FileName содержит маршрут поиска и имя выбранного файла при успешном завершении диалога. В случае неуспеха, чтобы избежать краха программы, можно проверить существование файла глобальной функцией FileExists.
С помощью свойста Filter можно произвести отбор файлов для показа. При программном вводе фильтры задаются одной длинной строкой, в которой символ « | » служит для разделения фильтров друг от друга, а также для разделения описания фильтруемых файлов от соответствующей маски выбора. Например, оператор
OpenDialog1.Filter := ‘Текстовые файлы | *.txt |'+' Файлы Паскаля | *.pas ’;
задает две маски – для отбора файлов с расширениями pas и txt.
Ниже приведен обработчик события OnClick кнопки Button1:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
f : TextFile;
begin
// Настраиваем диалог на просмотр текстовых файлов
OpenDialog1.Filter:='|Текстовые файлы| *.txt|'+
'Файлы Паскаля|*.pas';
// Выполняем диалог и анализируем его результат
if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then
begin
// Открываем файл
AssignFile(f,OpenDialog1.FileName);
Reset(f);
// Очищаем редактор и наполняем его
Memo1.Lines.Clear;
while not eof(f) do
begin
Readln(f,s);
Memo1.Lines.Add(s);
end;
CloseFile(f);
end;
end;
Задание. С помощью диалога TOpenPictureDialog создайте проект для просмотра графических файлов с расширением bmp. Включите панель для предварительного просмотра выбираемого файла.
8.2. Добавление и удаление записей в файл и из файла
8.2.1. Проект «Журнал группы»
Постановка задачи. В данном проекте составляется список студентов с возможностью его пополнения. Демонстрирует процесс добавления записи в файл, использование компонентов TComboBox и TRadioGroup (рис. 47).
Рис. 47. Проект «Журнал»
Реализация. Сначала создадим тип TStud для описания одной записи о студенте:
type TStud=record
fio: string[100]; // Фамилия, имя, отчество студента
group: string[20]; // группа
faculty: string[40]; // факультет
pol: string[10]; // пол
end;
Для записи фамилии используем компонент TEdit, для выбора группы и факультета – компоненты TComboBox. Для указания пола – компонент TRadioGroup. После того как все поля будут заполнены, надо записать эту запись в конец файла, если он существует, иначе создать новый файл.
var f: file of TStud; // Файл записей
stud: TStud;
// Щелчок на кнопке «Добавить»
procedure TForm1.Button1Click(Sender: TObject);
begin
with stud do
begin
fio := Edit1.Text;
group := ComboBox1.Text;
faculty := ComboBox2.Text;
case RadioGroup1.ItemIndex of
0: pol := 'Мужской';
1: pol := 'Женский';
end;
end;
AssignFile(f, 'student');
if not FileExists('student') then
begin
Rewrite(f); // Открыть файл для записи, т. е. создать
write(f, stud); // Записать содержимое полей в файл
end
else
begin
Reset(f); // Файл существует
Seek( f, FileSize(f)); // Указатель записи в конец файла
write(f, stud);
end;
CloseFile( f ); // Закрыть файл
end;
// Щелчок на кнопке «Просмотреть файл»
procedure TForm1.Button2Click(Sender: TObject);
var s:string;
begin
Memo1.Clear;
AssignFile(f, 'student');
Reset(f); // Открыть файл для чтения
while not eof(f) do
begin
Read(f,stud); // Прочитать одну запись
s:= stud.fio+' '+stud.group+' '+ stud.faculty+' '+ stud.pol;
Memo1.Lines.Add(s);
end;
end;
Задание. Создайте запись об игроке: имя, время игры, очки. Сделайте таблицу рекордов.