Воскресенье, 24.11.2024, 22:10
Вы вошли как Гость | Группа "Не зарегистрированный"Приветствую Вас Гость | RSS
Главная | Каталог статей | Мой профиль | Регистрация | Выход | Вход
QO.DO.AM
 >>>мир предметника 050202

Форма входа

Основное меню

Меню 050202

Учительская OnLine

Категории раздела
Описание Delphi 7 [200]
От теории к практике
Задачи [61]

Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
// Your SEO optimized title page contents

Счетчики

Главная » Архив Информатики и ИКТ » Delphi 7 » Описание Delphi 7 [ Добавить статью ]

Ввод и вывод записей в файл

Вывод записи в файл

Рассмотрим программу, которая записывает в файл введенные пользователем данные о результатах соревнований, формируя, таким образом, простую базу данных. Исходные данные вводятся в поля диалогового окна (рис. 8.1) и сохраняются в файле, компонентами которого являются записи типа TMedal.

Рис. 8.1. Окно программы Добавление записи в файл

Рис. 8.1. Окно программы Добавление записи в файл 

Для ввода фамилии спортсмена применяется поле редактирования (компонент Edit). Для ввода названия вида спорта и страны используются компоненты ComboBox (комбинированный список).

Компонент ComboBox, значок которого находится на вкладке Standard (рис. 8.2), дает возможность ввести данные либо непосредственно в поле ввода-редактирования, либо путем выбора из списка, который появляется в результате щелчка на кнопке раскрывающегося списка.

Компонент ComboBox, значок которого находится на вкладке Standard (рис. 8.2), дает возможность ввести данные либо непосредственно в поле ввода-редактирования, либо путем выбора из списка, который появляется в результате щелчка на кнопке раскрывающегося списка.

Рис. 8.2. Значок компонента ComboBox В табл. 8.1 перечислены свойства компонента ComboBox. 

Таблица 8.1. Свойства компонента ComboBox 

Свойство

Определяет

Name

Имя компонента. Используется для доступа к свойствам компонента

Text

Текст, находящийся в поле ввода-редактирования

Items

Элементы раскрывающегося списка

DropDownCount

Количество отображаемых элементов в раскрытом списке

Left

Расстояние от левой границы компонента до левой границы формы

Top

Расстояние от верхней границы компонента до верхней границы формы

Height

Высоту компонента (поля ввода-редактирования)

Width

Ширину компонента

Font

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

ParentFont

Признак наследования свойств шрифта родительской формы

Список, который появляется в результате щелчка на кнопке раскрытия списка, может быть сформирован как в процессе разработки формы приложения, так и во время работы программы. Чтобы сформировать список во время разработки формы, нужно в окне Object Inspectorвыбрать свойство Items, щелкнуть на кнопке активизации редактора списка строк (кнопка с тремя точками) и ввести элементы списка (рис. 8.3).

Рис. 8.3. Ввод списка для компонента ComboBox2 во время создания формы приложения Полный текст программы приведен в листинге 8.1. Листинг 8.1. Добавление записей в файл

Рис. 8.3. Ввод списка для компонента ComboBox2 во время создания формы приложения 

Полный текст программы приведен в листинге 8.1.

Листинг 8.1. Добавление записей в файл 

unit аррrес_;

interface

uses

Windows, Messages, SysUtils, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm) Label1: TLabel;

Label2: TLabel; Label3: TLabel;

Edit1: TEdit; // спортсмен 

ComboBoxl: TComboBox; // страна

ComboBox2: TComboBox; // вид спорта

RadioGroup1: TRadioGroup; // медаль

Buttonl: TButton; // кнопка Добавить

Labels: TLabel;

Label4: TLabel;

procedure FormActivate(Sender: TObject);

procedure FormClose(Sender: TObject;

var Action: TCloseAction)

procedure ButtonlClick(Sender: TObject);

private

{ Private declarations } public

{ Public declarations } end;

// тип медали 

TKind = (GOLD, SILVER, BRONZE);

// запись файла 

TMedal=record

country: string[20]; // страна

sport: string[20]; // вид спорта 

person: string[40]; // спортсмен

kind: TKind; // медаль

end;

var

Form1: TForm1;

f: file of TMedal; // файл записей — база данных 

implementation

{$R *.DFM}

// активизация формы 

procedure TForm1.FormActivate(Sender: TObject);

var

resp : word; // ответ пользователя

begin

AssignFile(f, 'a:\medals.db');

{$I-}

Reset (f); // открыть файл

Seek(f, FileSize(f)); // указатель записи в конец файла 

{$I!+}

if lOResult = 0

then buttonl.enabled:=TRUE // теперь кнопка Добавить доступна

else begin

resp:=MessageDlg('Файл базы данных не найден.'

+ 'Создать новую БД?', mtlnformation,[mbYes,mbNo],0);

if resp = mrYes then begin {$I-}

rewrite(f); {$!+}

if lOResult = 0

then buttonl.enabled:=TRUE

else ShowMessage('Ошибка создания файла БД.');

end;

end;

end;

// щелчок на кнопке Добавить 

procedure TForml.Button1Click(Sender: TObject);

var

medal: TMedal;

begin

with medal do begin

country := ComboBox1.Text;

sport := ComboBox2.Text;

person := Edit1.Text;

case RadioGroup1.Itemlndex of

0: kind := GOLD;

1: kind := SILVER;

2: kind := BRONZE;

end;

end;

write(f,medal); // записать содержимое полей записи в файл

end;

// завершение работы программы 

procedure TForm1.FormClose(Sender: TObject;

var

Action: TCloseAction);

begin

CloseFile(f); // закрыть файл

end;

end.

В представленной программе процедура TForm1.FormActivate открывает файл базы данных для добавления. Здесь следует обратить внимание на то, как это реализовано. Процедуру AppendFile, которая открывает файл для добавления в конец, использовать нельзя, т. к. файл не является текстовым. Поэтому файл сначала открывается процедурой Rewrite в режиме перезаписи, а затем процедура Seek устанавливает указатель чтения/записи в конец файла. Параметром процедуры seek является функция Fiiesize, значение которой равно размеру файла (в байтах).

Процедура TForm1.Button1Click, которая запускается нажатием кнопки Добавить (Buttoni), выполняет непосредственное добавление записи в файл. Поля country и sport добавляемой записи заполняются из свойства Text комбинированных списков Страна (comboBoxi) и Вид спорта(ComboBox2).

Поле person формируемой записи заполняется из поля ввода Спортсмен (компонент Editi), а содержимое поля medal определяется выбраннойкнопкой компонента RadioGroupl.

Процедура TForm1. FormClose закрывает файл базы данных поскольку тип TMedal используется двумя процедурами (TForm1.FormActivate и TForm1.Button1Сlick), то его описание помещено в раздел type модуля формы. Объявление файловой переменной f по этой же причине помещено в раздел объявления переменных модуля формы.

В приведенном варианте программы предполагается, что списки стран и названий видов спорта формируются при помощи редактора списка строк во время разработки формы. Вместе с тем, список можно сформировать во время разработки программы. Для этого надо к свойству items применить метод Add. Например, список стран может быть сформирован при помощи следующих инструкций (их нужно поместить в процедуру Tform1.FormActivate):

Form1.ComboBox1.Item.Add('Россия');

Form1.ComboBox1.Item.Add('Австрия');

Form1.ComboBox1.Item.Add('Германия');

Form1.ComboBox1.Item.Add('Франция');



Источник: http://qo.do.am/index/teorija_po_programirovaniju/0-47 СОДЕРЖАНИЕ Delphi 7
Категория: Описание Delphi 7 | Добавил: metalworker (01.05.2013) | Автор: СОДЕРЖАНИЕ Delphi 7 E
Просмотров: 3446 | Теги: консоль, form, Borland Delphi 7, Информатика и ИКТ, делфи 7, коды, Delphi 7 помощь, что такое?, программирование, работа
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]


qo.do.am © 2024