- •ВВЕДЕНИЕ
- •Структура описания лабораторной работы
- •Выполнение работы
- •Форма отчета
- •Установка и запуск системы
- •Файлы проекта
- •ЛАБОРАТОРНАЯ РАБОТА 1
- •Цель работы
- •Основные сведения
- •Интерфейс системы
- •Меню и команды
- •Рис.1 Окна Delphi
- •Главное меню
- •Меню File
- •Меню Edit
- •Меню Search
- •Меню View
- •Меню Project
- •Команда Project+Options
- •Страница Compiler окна свойств проекта
- •Меню Run
- •Меню Tools
- •Команда Tools+Environment Options. страница Preferences
- •Команда Tools+Options, страница Display
- •Команда Tools+Options, страница Library
- •Команда Tools+Debugger Options, страница Language Exceptions
- •Получение помощи
- •Форма – Form
- •Поле метки – Label
- •Кнопка – Button
- •Выполнение работы
- •Создание программы
- •Настройка среды
- •Создать новый проект
- •Модификация свойств формы
- •Добавление элементов управления в форму
- •Добавление поля метки
- •Добавление кнопки
- •Окно редактора кода
- •Создание исполняемого модуля
- •Варианты заданий
- •ЛАБОРАТОРНАЯ РАБОТА 2
- •Цель работы
- •Основные сведения
- •Отладка программы
- •Управление последовательностью действий
- •Наблюдение (слежение) за переменными
- •Рис. 2. Диалоговое окно «Свойства наблюдаемого выражения»
- •Рис. 3. Окно «Список наблюдаемых значений»
- •Поле ввода – Edit
- •Выполнение работы
- •Задание
- •Создание формы
- •Расположение элементов управления в форме
- •Процедура обработки нажатия кнопки
- •Отладка программы
- •Варианты заданий
- •ЛАБОРАТОРНАЯ РАБОТА 3
- •Цель работы
- •Основные сведения
- •Компонент MainMenu
- •Рис.4. Окно построителя меню
- •Компонент ToolBar
- •Компонент ImageList
- •Рис 5. Окно контейнера изображений ImageList.
- •Компонент ActionList
- •Рис.6. Окно редактирования ActionList
- •Обработка исключительных ситуаций
- •Модальные окна
- •Пример выполнения
- •Задание
- •Главная форма приложения
- •Рис.7. Главная форма проекта
- •Модальные окна
- •Рис.8. Модальные формы проекта
- •Варианты заданий
- •ЛАБОРАТОРНАЯ РАБОТА 4
- •Цель работы
- •Основные сведения
- •Флажок – Check Box
- •Переключатели – Radio Button
- •Список – List Box
- •Комбинированный список – Combo Box
- •Кнопка с рисунком – BitBtn
- •Выполнение работы
- •Задание
- •Проектирование
- •Создание формы
- •Рис.9. Главное окно проекта
- •Расположение элементов управления в форме
- •Процедуры обработки
- •Кнопка добавления слова
- •Кнопка удаления слова
- •Отображение выбранного элемента списка
- •Варианты заданий
- •ЛАБОРАТОРНАЯ РАБОТА 5
- •Цель работы
- •Основные сведения
- •Класс TFont
- •Класс TPen
- •Класс TBrush
- •Класс TCanvas
- •Компонент Image
- •Компонент Timer
- •Стандартный диалог ColorDialog
- •Стандартный диалог FontDialog
- •Пример выполнения работы
- •Рис. 10. Главная форма проекта примера
- •Варианты заданий
- •ЛАБОРАТОРНАЯ РАБОТА 6
- •Цель работы
- •Основные сведения
- •Класс TStringList
- •Основные приемы использования списка TStringList.
- •Работа с текстовыми файлами
- •Основные приемы работы с текстовым файлом
- •Стандартные диалоги открытия и сохранения файла
- •Пример выполнения работы
- •Рис 11. Главная форма проекта
- •Рис.12. Запрос фамилии владельца
- •Варианты заданий
- •СОДЕРЖАНИЕ
– 32 –
11.Изобразить движущуюся летающую тарелку.
12.Изобразить движущуюся стрелу, образованную двумя равнобедренными треугольниками с общим основанием.
ЛАБОРАТОРНАЯ РАБОТА 6
Цель работы
Целью работы является:
•изучение класса TStringList, его свойств, методов и реализация на его основе информационной системы;
•изучение набора стандартных подпрограмм для работы с текстовым файлом;
•использование стандартных диалогов открытия и сохранения файла TOpenDialog и TSaveDialog.
Основные сведения
Класс TStringList
Класс TStringList предназначен для организации списка, элементами которого являются строки символов. Список обладает следующими особенностями:
•может использоваться как для обработки строк произвольного вида, так и для строк специального вида ‘имя=значение’;
•с элементами списка можно связать объекты любого типа, содержащие дополнительные данные о каждом элементе.
Основные свойства класса.
•Count : Integer. Количество элементов списка.
•Duplicates : TDuplicates. Задает реакцию на попытку занесения в список повторяющихся значений: dupIgnore – ввод повторяющихся элементов игнорируется, dupAccept – ввод повторяющихся значений разрешен, dupError – возникает исключительная ситуация.
•Sortded : Boolean. При значении True список сортируется по возрастанию, False – не сортируется.
•Strings[ Index : Integer] : String. Массив элементов списка. Индекс первого элемента равен 0.
•Objects[ Index : Integer] : Tobject. Массив объектов, связанных с элементами списка.
•Names[ Index : Integer] : String. Массив левых частей равенств для списка из элементов специального вида.
•Values[ Index : Integer] : String. Массив правых частей равенств для списка из элементов специального вида.
Методы списка.
•Add( S : String) : Integer. Добавляет в список строку S. Возвращает номер нового элемента.
•Insert( Index : Integer; S : String ). Вставляет строку S в несортируемый список в позицию
Index.
•AddObject( S : String; Obj : TObject ) : Integer. Аналогичен методу Add, но ещё связывает вставляемую в список строку с объектом Obj.
•InsertObject( Index : Integer; S : String; Obj : TObject ). Выполняет действия, аналогич-
ные методу Insert и связывает вставляемый в список элемент с объектом Obj.
•LoadFromFile( FileName : String ). Загружает список из текстового файла с именем FileName. Каждая строка файла становится отдельным элементом списка.
•SaveToFile( FileName : String ). Сохраняет список в текстовый файл с именем FileName.
Каждый элемент списка становится отдельной строкой файла. Объекты, связанные с элементами списка в файл не сохраняются.
•Clear. Очищает список.
Калачев Д.П., Лутай В,Н,. Скороход С.В. Delphi. Лабораторные работы.
– 33 –
•Delete( Index : Integer ). Удаляет элемент списка с номером Index.
•Find( S : String; var Index : Integer ) : Boolean. Ищет строку S в отсортированном списке.
Возвращает True, если элемент найден и False – в противном случае. В параметр Index заносится индекс найденного элемента.
•IndexOf( S : String) : Integer. Ищет строку S в неотсортированном списке. Возвращает номер найденного элемента или –1, если элемент не найден.
•IndexOfName( S : String) : Integer. Ищет строку S в массиве Names. Возвращает номер найденного элемента или –1, если элемент не найден.
•IndexOfObject( Obj : Tobject ). Ищет объект Obj в массиве Objects. Возвращает номер найденного элемента или –1, если элемент не найден.
Основные приемы использования списка TStringList.
Для использования списка необходимо выполнить следующие действия.
•Описать переменную типа TStringList. Если использование списка локализовано внутри подпрограммы, то описание переменной помещается в раздел Var этой подпрограммы. Если же список используется в разных подпрограммах, то переменную следует описать в секции Public класса формы.
L:TStringList;
В том случае, когда имеется необходимость связать каждый элемент списка с некоторыми данными, в подпрограмме или разделе Interface модуля формы описывается класс – прямой наследник класса TObject, содержащий необходимые поля данных:
Type TData = Class( Tobject ) {описание полей данных}
end;
• Создать экземпляр списка методом Create.
L := TStringList.Create;
Для списка, описанного в секции Public формы, наиболее подходящим местом для создания его экземпляра является обработчик события OnCreate формы.
• Вставка в список нового элемента производится методом Add.
I := L.Add( СтрокаСимволов );
При необходимости не только вставить новый элемент списка, но и связать его с дополнительными данными, используется функция AddObject:
I := L.AddObject( СтрокаСимволов, TData.Create ).
Если элемент уже находится в списке, тогда он связывается с объектом данных при помощи массива Objects:
L.Objects[I] := TData.Create;
•При обращении к данным объекта, связанного с элементом I списка необходимо преобразовать объект к типу описанного ранее класса.
With L.Objects[I] as TData do begin {операции с полями данных объекта}
end;
• После завершения работы со списком уничтожить его методом Free.
Калачев Д.П., Лутай В,Н,. Скороход С.В. Delphi. Лабораторные работы.
– 34 –
L.Free;
Для списка, описанного в секции Public формы наиболее подходящим местом его уничтожения является обработчик события OnDestroy формы.
Работа с текстовыми файлами
Для работы с текстовым файлом используется файловая переменная типа TextFile.
Var F:TextFile;
Операции с файлом реализуются при помощи набора стандартных подпрограмм.
•FileExists( FileName : String ) : Boolean. Проверяет существование файла, имя и, возможно, путь которого указаны в строке FileName. Возвращает True, если файл существует, и False – в противном случае.
•AssignFile( F : TextFile ; FileName : String ). Связывает текстовый файл с именем
FileName с файловой переменной F. При этом существование указанного файла не проверяется.
•Reset( F : TextFile ). Открывает текстовый файл F для чтения. При попытке открыть несуществующий фай возникает исключительная ситуация.
•Rewrite( F : TextFile ). Открывает новый файл F для записи. Если такой файл уже существовал, то он будет уничтожен и заменен создаваемым файлом.
•Read( F: TextFile ; V1, V2, …Vn ). Начиная с указателя текущей позиции вводит из файла F значения переменных V1, V2, … Vn. Вводиться могут переменные целого, вещественного, символьного и строкового типов. После окончания ввода указатель текущей позиции остается в строке, из которой было прочитано последнее значение.
•ReadLn( F: TextFile ; V1, V2, …Vn ). Выполняет те же действия, что и процедура Read, но после окончания ввода переводит указатель текущей позиции в начало следующей строки файла.
•Write( F : TextFile ; E1, E2, … En ). Выводит в файл F значения выражений E1, E2, … En.
Выражения могут быть целого, вещественного, символьного, строкового и булевского типов.
•WriteLn( F : TextFile ; E1, E2, … En ). Выводит в файл F значения выражений E1, E2, … En
и вставляет в него признак конца строки.
•WriteLn( F : TextFile ). Вставляет в файл признак конца строки.
•Eof( F : TextFile ) : Boolean. Проверяет достигнут ли конец файла F или нет. Возвращает True, если указатель текущей позиции находится в конце файла, False – в противном случае.
•Eoln( F : TextFile ) : Boolean. Проверяет достигнут ли конец строки. Возвращает True, если указатель текущей позиции находится в конце строки, False – в противном случае.
•CloseFile( F : TextFile ). Закрывает открытый файл F, но не разрывает связи с ним файловой переменной. Файл, открытый для записи, оформляется как файл только после закрытия.
Основные приемы работы с текстовым файлом
При работе с текстовым файлом используются следующие типовые последовательности вызова стандартных подпрограмм.
• Создание нового файла.
AssignFile(F,FileName);
Rewrite(F);
{запись данных в файл} CloseFile(F);
• Открытие существующего файла.
Калачев Д.П., Лутай В,Н,. Скороход С.В. Delphi. Лабораторные работы.