Читайте также:
|
|
Рабочее окно Delphi имеет типичны для приложений Windows вид.
При активизации иконки Delphi на рабочем столе Windows на экране появляется главное рабочее окно Delphi, показанное на рис.5.22.1.
Рис.5.22.2
На рисунке обозначено
1 - Г лавное окно Delphi,
2 - Г лавное меню, содержит типичный для приложений Windows набор пунктов меню:
меню File – содержит пункты меню для создания нового проекта (New), открытия формы (Open), открытия проекта (Open Project), сохранения формы (Save As) или проекта (Save Project As) под другим именем, печати активной формы или модуля (Print) и др.
меню Edit – содержит обширный набор пунктов меню для редактирования формы и текста модуля формы, в том числе команды для копирования (Copy), вырезания (Cut), вставки (Paste), удаления (Delete), выделенных компонентов формы или фрагментов текста модуля формы;
меню Search -содержит набор пунктов меню для поиска и замены фрагментов текста;
меню View -содержит обширный набор команд для просмотра различных окон (от окна формы до регистров CPU);
меню Project -содержит команды для работы с проектом, в частности, команды:
Compile Имя проекта – компилирует модули, которые тзменились с момента компиляции предыдущей версии проекта;
Build Имя проекта – компилирует все модули проекта и создает исполняемую программу;
меню Ran – здесь располагаются команды связанные с выполнением программы, в частности команды:
Ran – компилирует программу и выполняет ее прогон;
Trace Into (клавиша F7) - в этом случае программа останавливается перед первым выполняемым оператором программы, т. е. будет выделено ключевое слово Begin раздела операторов. При каждом нажатии на клавишу F7 выполняется по одной строке программы (независимо от количества операторов на строке). Если в программе используются подпрограммы, то они также выполняются в пошаговом режиме;
Step Over (клавиша F8) - этот режим аналогичен предыдущему, но подпрограммы выполняются не по шагам, а полностью. Все эти режимы можно комбинировать в одном сеансе отладки. Для выхода из этих режимов отладки необходимо нажать комбинацию клавиш Ctrl + F2.
меню Component – содержит команды для работы с компонентами;
меню Database - содержит команды для работы с базами данных;
меню Tools -содержит команды для работы с окнами настройки параметров среды Delphi и ее инструментов;
меню Help -содержит команды для работы со справочной службой.
3 - П анель быстрого доступа ( SpeedBar - находится непосредственно под меню ) содержит набор кнопок, функции которых эквивалентны функциям наиболее часто используемых команд главного меню (программист может по своему усмотрению добавлять или удалять команды из полосы быстрого доступа - для этого необходимо расположить курсор в области панели, щелкнуть правой кнопкой мыши и выбрать команду Configure);
4 - П алитра (панель) визуальных компонентов.
Компоненты - это строительные блоки, из которых собирается Delphi приложение. В Delphi имеются визуальные и не визуальные компоненты. Все эти компоненты представлены в Палитре компонент, с помощью пиктограмм.
Палитра Компонент позволяет выбрать нужные объекты для размещения их на форме. Для использования Палитры Компонент просто надо щелкнуть мышкой на один из объектов и,затем перенести курсор на форму и щелкнуть второй раз в требуемом месте формы.. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать (двигать, изменять размеры) с помощью мыши. Фрагмент структуры палитры компонентов приведен на рис.5.22.2.
Рис.5.22.3.
Палитра Компонент использует постраничную группировку объектов. Она содержит набор закладок - Standard, Additional, Dialogs и т.д. Для перехода на другую страницу Палитры Компонент достаточно щелкнуть мышью по соответствующей закладке.
5 - Инспектор объектов - это специальное окно для отображения значений свойств объектов и выбора методов - обработчиков событий в процессе разработки программы. Окно инспектора объектов (ИО) содержит две страницы: Properties (свойства) и Events (события). Свойства и события в окне инспектора объектов отображаются для выделенного на форме в данный момент объекта. Если на форме нет выделенных объектов, то в инспекторе объектов отображаются события и свойства формы.
Программист может по своему усмотрению изменять значения свойств компонентов. Например, размер компонента можно изменить курсором, потянув за квадратик на выделенном компоненте, либо задав в ИО соответствующие значения свойств Height иWidth.
Для переключения между страницами свойств и событий достаточно щелкнуть мышью по соответствующей странице. Страница событий связана с Редактором формы; если дважды щелкнуть мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус, и можно сразу добавлять код обработчика данного события.
6. Дизайнер Форм. Первоначально содержит заготовку главной формы, которую можно заполнять всевозможными объектами, выбранными из Палитры Компонент.
Форма является основным интерфейсным элементом в Delphi (форма это нечто среднее между окном и диалоговой панелью). Всякое приложение в Delphi создается на основе формы. При создании нового проекта автоматически на экране появляется заготовка формы с именем Form1. Для облегчения расположения компонентов на форму нанесена сетка.
Как стандартное окно Windows форма в Delphi обладает такими свойствами как:
- наличие заголовка (Caption);
- кнопка для вызова системного меню;
- кнопки для минимизации и максимизации окна;
- рамка, позволяющая динамически изменять размеры формы.
Проект может содержать несколько форм.
7.Редактор модуля формы. Можно заметить, что под формой располагается еще одно окно. Это окно редактора модуля формы. В этом модуле программист создает программный код для обработчиков событий и решения основной задачи создаваемого приложения. Это окно можно активизировать щелкнув по выступающему краю (оно также автоматически получает фокус при щелчке по значению события в ИО). В этом случае окно редактора станет активным и мы увидим заготовку модуля:
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm)
private { Private declarations }
public { Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.DFM}
end.
Здесь: Unit1 - имя модуля (при сохранении его можно заменить на любое другое имя);
В интерфейсной секции здесь указаны используемые модули; в разделе типов объявлен класс TForm1, как наследник класса TForm; а в разделе переменных объявлен объект Form1 класса Tform1.
Вопрос - где главная программа? - главная программа формируется автоматически и программисту нет необходимости вмешиваться в текст главной программы.
Ввод и вывод с помощью внешних файлов
5.13.1. Данные типа файл.
Файл - это последовательность компонентов одного и того же типа. Типом компонентов файла может быть любой тип, кроме файлового типа. В отличие от массивов максимальное количество компонентов в файле никак не оговаривается при его объявлении.
Всякий файл, хранящийся во внешней памяти, имеет имя, формируемое по общим правилам (имя.расширение). Для программной обработки внешнего файла необходимо в программе предусмотреть файловую переменную того же типа, что и компоненты файла. Файловая переменная предназначена для связи программы с конкретным внешним файлом.
С всяким файлом можно делать две операции:
чтение данных из файла;
запись данных в файл.
Какую из этих операцию можно выполнять - зависит от способа открытия файла - для чтения или для записи.
Различают три вида файлов:
типизированные файлы;
текстовые файлы;
нетипизированные файлы.
Типизированные файлы- это файлы, для которых указан тип компонентов. Файловые переменные для типизированных файлов можно объявить сразу в разделе переменных, либо сначала в разделе типов объявить идентификатор типа, а затем использовать его в разделе переменных.
Пример.
type Vektor = File Of Extended;
var FL1, FL2: Vektor;
FL3:File Of Integer;
Здесь объявляются три файловые переменные, причем компоненты файлов связанных с файловыми переменными FL1 и FL2 должны иметь тип Extended, а компоненты файла, связанного с FL3 – целый тип.
Текстовые файлы - это файлы для хранения информации в виде строк символов. Это фактически типизированные файлы, но в них используется понятие строки. Для текстовых файлов в Delphi заранее определен идентификатор типа - TextFile, поэтому при объявлении текстовых файлов достаточно в разделе переменных просто указать этот идентификатор:
var Fvx1, Fout1: TextFile;
Текстовый файл отличается от символьного файла (объявленного как File Of Char) тем, что он состоит из последовательности строк символов, каждая из которых заканчивается специальным символом "конец строки". Этот символ автоматически ставится в конце строки при создании файла.
Нетипизированные файлы - это файлы, для которых при объявлении файловой переменной тип компонентов файла не указывается (такие файлы используются для повышения скорости обработки файлов). Для объявления файловой переменной нетипизированного файла достаточно указать ключевое слово File.
Пример. Var Fa, Fb: File;
5.13.2. Процедуры и функции для работы с файлами.
Для выполнения различных действий с файлами в Delphi имеется большой набор стандартных процедур и функций. Приведем здесь краткие сведения о некоторых из них.
Процедура AssignFile(ФП, 'путь'); - связывает файловую переменную ФП с внешним файлом. Если файл располагается в другом каталоге, то надо указывать путь к файлу. Пример.
Var Fs, Fw: TextFile;
...........
AssignFile (Fw, 'C:\MF\ Lab1.txt');
Здесь файловая переменная Fw связывается с файлом Lab1.txt, который находится в папке MF на диске C.
Процедура Reset(ФП[,Size]); - инициирует файл связанный с файловой переменной ФП для чтения. Необязательный параметр Size используется только с файлами без типа и указывает размер пересылаемого элемента информации в байтах (по умолчанию – 128 байт). Для типизированных файлов (кроме текстовых), открытых с помощью процедуры Reset, можно использовать процедуру Write (то есть записывать данные –добавлять).
Процедура Rewrite(ФП[,Size]); - Открывает новый пустой файл с именем, указанным в процедуре AssignFile. При выполнении этой процедуры старый файл (если он был создан) уничтожается, при этом никаких сообщений не выдается. Новый файл подготавливается к записи данных с начала файла.
Процедура Append(ФП); - подготавливает текстовый файл для добавления, то есть указатель файла устанавливается не в начало, а в конец файла. Эта процедура применима только к текстовым файлам.
Процедура CloseFile (ФП); -закрывает файл связанный с ФП. При закрытии связь с файлом сохраняется, то есть его можно снова открыть. При создании нового или расширении старого файла эта процедура обеспечивает сохранение в файле всех новых записей и регистрацию файла в каталоге.
Функция Eof(ФП); - определяет конец файла. Возвращает True если достигнут конец файла (иначе False).
Процедура Erase(ФП); - Уничтожает файл. До выполнения этой процедуры файл должен быть закрыт. Для удаления файла можно также использовать функцию DeleteFile, которая не требует предварительного связывания имени файла с файловой переменной.
При работе с файлами полезно проверять – существует ли требуемый файл. Для этого есть функция FileExists(имя файла).
Например,
If FileExists(имя файла) Then
.............. // обработка
else
сообщение???
см Ф стр.196
Функция FindFirst (Const Path: String; Attr:Integer; var F:TsearchRec): Integer; - возвращает атрибуты первого из файлов, зарегестрированных в указанном каталоге: Path – путь и маска выбора файлов; Attr – атрибуты выбираемых файлов; F – переменная типа TSearchRec, в которой будет возвращено имя первого выбранного файла (при успешном поиске возвращает значение 0).??
Функция FindNext (var F:TsearchRec): Integer;- возвращает в переменной F имя следующего файла в каталоге. Переменная F должна предварительно инициализироваться обращением к функции FindFirst. При успешном поиске возвращает 0.
Есть некоторые особенности при записи данных в файл типа Text и файлы других типов.
1. При записи чисел в файл типа Text необходимо предусматривать пробелы в качестве разделителя, а в числовые файлы (типа Integer, Real, …) числа записываются сплошным потоком.
2. Обычно для обработки файлов используют циклический процесс. Так как количество компонентов в файле неизвестно, то возникает проблема определения момента завершения цикла. Обычно для прекращения циклического процесса используют функцию Eof().
3. Процедуры открытия и закрытия файлов можно размещать в секциях Initialization и Finalization модуля.
4. Для чтения данных из файла используются процедуры Read и Readln; для записи данных в файл используются процедуры Write и Writeln.
Пример. Пусть имеем входной файл Vxod5.txt и выходной файл Out5.txt.
Создадим проект, в котором при нажатии на кнопку "операция" выполняются следующие действия:
- из файла Vxod5.txt читается число в переменную Х;
- вычисляется У:= Х*Х;
- результат У выводится в поле Edit формы и записывается в выходной файл Out5.txt.
Возьмем предыдущий проект и удалим текст, который записан в обработчике события кнопки "операция". В свойстве Caption формы запишем "Пример5". Далее добавим в модуль следующий текст:
а) В раздел описания переменных добавим описание файловых переменных, так чтобы этот раздел имел вид
Var Form1: Tform1;
Дата добавления: 2014-12-18; просмотров: 147 | Поможем написать вашу работу | Нарушение авторских прав |
<== предыдущая лекция | | | следующая лекция ==> |
Структура рабочего окна Delphi. | | | Компонент MainMenu (класс TMainMenu). |