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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



При запуске проекта необходимо подготовить интерфейс к работе. Для этого можно использовать процедуру обработки события 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;

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

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

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

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

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

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

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

procedure TfrmAtt.btnFileNameClick(Sender: TObject);

Begin

if OpenDialog. Execute then

EditFileName.Text:= OpenDialog.FileName;

end;

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

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

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

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

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

procedure openAttFile(var f:TAttFile);

Begin

assignFile(f, frmAtt. EditFileName. Text);

Try

reset(f);

Except

rewrite(f);

end;

end;

11.3.5.3 Процедура вывода файла в StringGrid

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

//Процедура вывода файла в StringGrid

procedure showFileInGrid(var f: TAttFile; g: TStringGrid);

var i:integer; r: TAttRec;

Begin

//Настраиваем StringGrid

g.RowCount:=fileSize(f)+1;

i:=1; // счетчик строк StringGrid

//Файл в начало

Reset(f);

//Организуем цикл по записям файла

while not eof(f) do

Begin

// читаем запись

read(f,r);

// Переносим запись в StringGrid

g.Cells[0, i]:=r.Name;

g.Cells[1, i]:= FloatToStr(r.ball);

g.Cells[2, i]:= IntToStr(r.neud);

i:=i+1;

end;

end;

Процедуры работы со StringGrid1

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

Первая из процедур связана с пунктом меню «Добавить строку».

// Добавление строки в StringGrid1

procedure TfrmAtt.mnuAddRowClick(Sender: TObject);

Begin

StringGrid1.RowCount:= StringGrid1.RowCount + 1;

end;

Вторая процедура связана с пунктом меню «Удалить строку». Удаление строки производится циклическим сдвигом записей на место удаляемой.

//Удаление строки из StringGrid1

procedure TfrmAtt.mnuDelRowClick(Sender: TObject);

var i, j:integer;

Begin

with StringGrid1 do

Begin

for i:=Row to RowCount - 2 do

for j:=0 to ColCount-1 do Cells[j,i]:= Cells[j, i+1];

RowCount:= RowCount -1;

end;

end;



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 167; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.222.175.73 (0.312 с.)