
- •Занятие 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
- •Стандартный подход к работе с файлами
- •Описание файловой переменной
- •Открытие файлов
- •Запись в файл
- •Считывание из файла
- •Закрытие файла
- •Установка новой позиции в файле
- •Текстовые файлы
- •Конец файла
- •Стандартные подпрограммы для работы с файлами и каталогами
- •Пример работы с нетипизированными файлами
- •Пример работы с типизированными файлами
- •Пример работы с текстовыми файлами
- •Объектный подход к работе с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
Текстовые файлы
Текстовые файлы занимают промежуточное положение между типизированными и нетипизированными файлами и предназначены для обработки строк, которые с одной стороны описываются базовым типом String, а с другой не имеют фиксированной длины. В таких случаях считывание и запись происходят построчно, причем символы перевода строки и возврата каретки используются как управляющие. Для этих файлов используются две процедуры, явно осуществляющие ввод и вывод с новой строки ReadLn и WriteLn. При этом размер считанной строки определяется автоматически, по наличию управляющих символов, которые в строку не записываются. Если применять процедуры Read и Write без элемента Ln, означающего перевод на новую строку, то считывание и запись текста производится сплошным потоком.
Набор подпрограмм для работы с текстовыми файлами в Delphi приведен ниже.
Подпрограмма |
Назначение |
procedure Append(var F: Text); |
Открытие текстового файла в режиме записи. Отличается от Rewrite тем, что не стирает все содержимое, а устанавливает текущую позицию в самый конец файла, что позволяет добавлять информацию.. |
procedure AssignPrn(var F: Text); |
Вся информация, записываемая в файл, перенаправляется на принтер. Файл должен быть открыт с помощью процедуры Rewrite. |
function Eoln [(var F: Text) ]: Boolean; |
Возвращает true, если текущая позиция в файле расположена либо в конце файла, либо в конце строки. Может использоваться вместе с процедурой Read, не переходящей к началу следующей строки автоматически. |
procedure Erase(var F); |
Удаление файла. Файл должен быть определен с помощью процедуры AssignFile, но не должен быть открыт. |
function Flush(var t: Text): Integer |
Информация, которая была написана в файл из программы, но находится во временном буфере, физически перемещается в файл на диске. |
function SeekEof [ (var F: Text) ]: Boolean; |
Возвращает true, если текущая позиция расположена в конце файла |
function SeekEoln [ (var F: Text) ]: Boolean; |
Возвращает true, если текущая позиция расположена в конце строки |
procedure SetTextBuf(var F: Text; var Buf [ ; Size: Integer] ); |
Задает размер буфера для операций ввода\вывода с текстовыми файлами(параметр Size). Этот буфер расположен внутри программы. Он указывается в качестве второго параметра. Это может быть, например, массив символов. |
Конец файла
При обработке файла часто возникает необходимость определить его конец. Для этого используется функция Eof, которая имеет единственный параметр – файловую переменную. Функция Eof возвращает True, если конец файла достигнут, и False в противном случае. При использовании функции Eof необходимо помнить, если она вернула True, то дальнейшее считывание приведет к ошибке.
Стандартные подпрограммы для работы с файлами и каталогами
В данном разделе приводится перечень подпрограмм, используемых для работы с файлами и каталогами. Эти подпрограммы находятся в модулях System и SysUtils и в некоторых областях дублируют друг друга. Это связано с необходимостью поддерживать совместимость со старыми версиями Delphi, а также с появлением новых более гибких средств. В частности функции модуля SysUtils позволяют контролировать результат по возвращаемому значению.
Подпрограмма |
Назначение |
procedure ChDir(const S: string); |
Задать текущий каталог в соответствии с путем, заданным параметром S. |
procedure MkDir(const S: string); |
Создать каталог, путь к которому задан в переменной S. |
function CreateDir(const Dir: string): Boolean;
|
Создать каталог, путь к которому задан в переменной Dir. |
function DeleteFile(const FileName: string): Boolean;
|
Удалить файл, путь к которому задан в параметре FileName. |
function DirectoryExists(const Directory: string): Boolean;
|
Проверить существует ли каталог, заданный параметром Directory. |
function FileExists(const FileName: string): Boolean; |
Проверить существует ли файл, путь к которому задан параметром FileName. |
function GetCurrentDir: string; |
Возвращает имя текущего каталога. |
procedure GetDir(D: Byte; var S: string); |
Для диска, заданного параметром D (0- A, 1 – C, 2 – D и так далее), записывает в переменную S полный путь поиска текущего каталога этого диска |
function RemoveDir(const Dir: string): Boolean; |
Удалить пустой каталог, путь к которому задан переменной Dir |
function RenameFile(const OldName, NewName: string): Boolean; |
Файл OldName получает новое имя NewName |
function SetCurrentDir(const Dir: string): Boolean |
Сделать текущим каталог, путь к которому задан параметром Dir. |
Function FilePos(var F): Longint; |
Возвращает номер текущей позиции в файле, нумерация с нуля. |
Function FileSize(var F): Integer; |
Возвращает число записей в файле или его размер в байтах. |