Приклад програми

Наступна програма веде просту базу даних. При кожному її запуску на екрані з’являється діалогове вікно (рис. 7.5), в поля якого користувач може ввести дату і температуру повітря.

Рис. 7.5. Діалогове вікно програми База даних <Погода>

Дата вводиться в поле Edit1, температура – в поле Edit2. Текст програми приведений в лістингу 7.3.

Лістинг 7.3, Проста база даних (запис в файл)

unit pogoda_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm1 = Class (TForm)
Edit1: TEdit; // дата
Edit2: TEdit; // температура
Button1: TButton; // кнопка Додати
Label1: TLabe1;
Label2: TLabe1;
procedure FormActivate (Sender: TObject);
procedure ButtonlClick (Sender: TObject);
procedure FormClose (Sender: TObject;

var Action: TCloseAction); private
{Private declarations} public
{Public declarations} end;
var
Form1: TForm1;
implementation
{$ R * .dfm}
const
DBNAME = 'A: \ pogoda. db ';
var
db: TextFile; // файл - база даних
procedure TForm1.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;
// клацання на кнопці Додати
procedure TForml.Button1Click (Sender: TObject);
begin
if (Length (edit1.text) = 0) or (Length (edit2.text) = 0)

then ShowMessage ( 'Помилка введення даних.'
+ # 13 + 'Bce поля повинні бути заповнені. ')

else writeln (db, editl.text, '', edit2.text);

end;
// Подія OnClose виникає при закритті форми
procedure TForm1.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