Implementation
{$R *.dfm}
Const
DBNAME = 'a:\pogoda. db';
var
db: TextFile; // файл — база данных
procedureTForm1.FormActivate(Sender: TObject);
Begin
AssignFile(db, DBNAME);. {$I-}
Append(db); if IOResult = 0 then
Begin
Edit1.Text := DateToStr(Date); // получить текущую дату
Edit2.SetFocus; // курсор в поле Edit2
End
Else begin
Rewrite(db); if IOResult <>0 then begin
// сделать недоступными поля ввода // и командную кнопку
Edit1.Enabled := False; Edit2.Enabled := False;
Buttonl.Enabled := False; ShowMessage('Ошибка создания '+DBNAME);
End;
End;
End;
// щелчок на кнопке Добавить
procedureTForml.Button1Click(Sender: TObject);
Begin
if (Length(edit1.text)=0) or(Length(edit2.text)=0)
thenShowMessage('Ошибка ввода данных.'
+#13+'Bce поля должны быть заполнены.')
elsewriteln(db, editl.text,' ',edit2.text);
End;
// Событие OnClose возникает при закрытии формы
procedureTForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Begin
CloseFile(db); // закрыть файл БД
End;
End.
Файл базы данных открывает процедура FormActivate, которая обрабатывает событие onActivate. Событие OnActivate возникает в момент активизации формы, поэтому процедура запускается автоматически, при активизации формы приложения. Если операция открытия файла завершается успешно, то в поле Edit1 записывается текущая дата. Информация о текущей дате возвращает функция Date. Для преобразования возвращаемого функцией Date значения (числа типа Double) в удобную для восприятия форму используется функция Dateiostr. После записи даты в поле Editi процедура обработки события onActivate с применением метода setFocus устанавливает курсор в поле ввода температуры. Если в процессе открытия или создания нового файла возникает ошибка, то процедура делает недоступной кнопку Добавитьи выводит информационное сообщение.
Процедура TForm1.Button1Click (процедура обработки события onclick) запускается нажатием кнопки Добавить(Button1). В результате введенная информация записывается в базу данных — файл pogoda.db. Перед выполнением записи программа проверяет, все ли поля формы заполнены, и, если не все, то выводит информационное сообщение.
В результате работы процедуры в конец файла pogoda.db будет добавлена строка, содержащая дату (число, месяц, год) и температуру.
В данной программе используется инструкция writein, а не write, для того чтобы данные за каждый день располагались в базе данных на отдельной строке.
Обратите внимание, что список вывода инструкции writein состоит из трех элементов. После вывода в файл даты (Edit1.text) в файл записывается пробел, а затем— температура (edit2.txt). Если температуру записать в файл сразу после даты, то числа, соответствующие году и температуре, сольются в одну последовательность цифр.
Закрывает базу данных процедура TFormi.Formciose, которая обрабатывает событие enclose, возникающее при закрытии формы приложения.
После нескольких запусков программы файл pogoda.db может быть, например, таким:
9.05.2001 10 10.05.2001 12 11.05.2001 10 12.05.2001 7
Дата добавления: 2014-12-01; просмотров: 823;