Один из возможных вариантов панели интерфейса создаваемого приложения показан на рисунке 9.1.
Рис. 9.1. Размещение компонентов на форме
При работе с файлами чтение и запись информации удобно организовывать с помощью компонентов OpenDialog и SaveDialog.
Компоненты OpenDialog и SaveDialog находятся на странице Dialogs. Все компоненты этой страницы являются не визуальными, т. е. не видны в момент выполнения приложения. Поэтому их можно разместить в любом удобном месте Формы. Оба рассматриваемых компонента имеют идентичные свойства и отличаются только внешним видом.
Для установки компонентов OpenDialog и SaveDialog на Форму необходимо на странице Dialogs Палитры Компонентов щелкнуть «мышью» соответственно по пиктограмме или и поместить ее в любом свободном месте Формы. При выполнении приложения в момент вызова компонента появляется диалоговое окно, с помощью которого пользователь выбирает имя файла и маршрут к нему. В случае успешного завершения диалога имя выбранного файла и маршрут поиска содержится в свойстве FileName.
Пользователь имеет возможность настроить параметры окна диалога по своему усмотрению. В частности, изменить заголовок окна можно с помощью свойства Title. В свойстве DefaultExt можно указать расширение файла, если оно не задано пользователем. Свойство Filter используется для поиска (фильтрации) файлов, отображенных в окне. Установка фильтра производится следующим образом. Выделив соответствующий компонент, необходимо дважды щелкнуть по правой (белой) части свойства Filter Инспектора Объектов. В появившемся окне редактора фильтра –Filter Editor необходимо в колонке Filter Name набрать текст, характеризующий соответственный фильтр, а в колонке Filter – маску. Для компонента OpenDialog1 установим значение масок, как показано на рис. 9.2.
Рис. 9.2. Окно редактора фильтра
Маска *.dat означает, что будут видны файлы данных с любым именем и с расширением dat, а маска *.* – что будут видны все файлы (с любым именем и с любым расширением).
Для того, чтобы файл автоматически записывался с расширением dat в свойстве DefaultExt, запишем требуемое расширение – .dat.
Аналогичным образом настроим компонент SaveDialog1 для текстового файла (расширение .txt).
Кроме того на форме размещаются три компонента StringGrid. Первый предназначен для ввода, корректировки, добавления, удаления, просмотра исходной информации, второй – для вывода списка первоочередников в порядке возрастания дохода на одного члена семьи, третий – для вывода списка второй очереди в порядке убывания среднего балла. Следует разрешить ввод данных в компоненты StringGrid, установив в True значение опции goEditing свойства +Options.
Три компонента BitBtn (переносятся со страницы Additional палитры компонентов) предназначены для обработки файлов: первый – для сохранения файла на внешний носитель, второй – для открытия файла, третий – для создания текстового файла.
Для удобства работы с несколькими различными процедурами обработки событий в свойстве Name каждого компонента BitBtn заменить программные имена кнопок: BitBtn1-на BitBtnNew, BitBtn2-на BitBtnOpen, BitBtn3-на BitBtnSave. В свойстве Caption каждого компонента ввести надпись, указывающую выполняемую процедуру.
Кроме того на форму наносятся три кнопки, выполняюшие процедуры: сортировки записей, вывод списка первоочередников и создание списка второй очереди. В свойстве Caption каждого из этих компонентов также ввести надпись, указывающую выполняемую процедуру.
Для ввода минимальной зарплаты размешается компонент Edit. Компонент SpinEdit предназначен для изменения количества записей исходной информации и переносится со страницы Samples.