Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаРГР_Программирование.doc
Скачиваний:
5
Добавлен:
17.11.2019
Размер:
1.13 Mб
Скачать

4.1.3Определение типов данных

Для реализации проекта нужно определить тип записи, тип файла для хранения исходных данных и тип функции сравнения записей, используемый при сортировке. Эти описания должны быть доступны всем процедурам проекта, поэтому их следует расположить вне этих процедур, в начале раздела Implementation.

Тексты этих описаний для создаваемого проекта приведены ниже.

implementation

type

TName=String[20]; // Тип для фамилии студента

// Тип для записей, которые содержит файл

TAttRec = record

Name: TName; // Фамилия студента

ball: real; // Средний балл успеваемости

neud: integer // Количество неудоволетворительных оценок

end;

// Тип для файла

TAttFile = file of TAttRec;

// Тип для функции сравнения записей,

TCompareRec = function(r1, r2: TAttRec): boolean;

4.1.4Настройка интерфейса пользователя

При запуске проекта необходимо подготовить интерфейс к работе. Для этого можно использовать процедуру обработки события onCreate формы. Именно эта процедура настроит компоненты StringGrid для вывода записей проекта. Исходный код процедуры приводится ниже.

// Настройка компонентов StringGrid

procedure TfrmAtt.FormCreate(Sender: TObject);

begin

with StringGrid1 do begin

ColCount := 3; RowCount := 2;

FixedCols := 0; FixedRows := 1;

Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';

end;

with StringGrid2 do begin

ColCount := 3; RowCount := 2;

FixedCols := 0; FixedRows := 1;

Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';

end;

with StringGrid3 do begin

ColCount := 3; RowCount := 2;

FixedCols :=0; FixedRows := 1;

Cells[0,0] := 'Cтудент'; Cells[1,0] := 'Ср.балл'; Cells[2,0] := 'Неуд.';

end;

end;

В результате выполнения этой процедуры интерфейс пользователя должен приобрести вид, представленный на рисунке 4.2.

Рисунок 4.2 – Интерфейс проекта после настройки

4.1.5Вспомогательные процедуры для работы с файлом Процедура выбора имени файла

Эта процедура должна вызываться при нажатии на кнопку «Имя файла». Для выбора имени используется компонент OpenDialog. Этот компонент открывает стандартное окно Windows для выбора имени файла при вызове функции Execute. Эта функция, помимо открытия окна, возвращает результат взаимодействия с пользователем в виде логической переменной. Если пользователь отказался от выбора файла, функция возвращает false, в противном случае – true. Кроме того, объект OpenDialog запоминает имя выбранного файла. Доступ к этому имени можно получить через свойство FileName.

Ниже приведена процедура выбора имени файла.

//Процедура выбора имени файла

procedure TfrmAtt.btnFileNameClick(Sender: TObject);

begin

if OpenDialog.Execute then

EditFileName.Text := OpenDialog.FileName;

end;

В результате выполнения процедуры в поле EditFileName должно появиться выбранное имя файла.

4.1.5.1Процедура открытия файла

Так как в проекте придется реализовать достаточно много подпрограмм, связанных с обработкой файла, то целесообразно группу инструкций, связанных с открытием файла вынести в отдельную процедуру.

В качестве параметра в процедуру передается файловая переменная типа TAttFile. Имя открываемого файла процедура считывает из поля EditFileName формы. Если файл существует, он открывается, если нет, то создается.

//Процедура открытия файла

procedure openAttFile(var f:TAttFile);

begin

assignFile(f, frmAtt.EditFileName.Text);

try

reset(f);

except

rewrite(f);

end;

end;