![]() |
![]() |
![]() |
Следующая программа
ведет простую базу данных. При каждом ее запуске на экране появляется диалоговое
окно (рис. 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
![]() |
![]() |
![]() |
Когда тот или иной физик использует понятие "физический вакуум", он либо не понимает абсурдности этого термина, либо лукавит, являясь скрытым или явным приверженцем релятивистской идеологии.
Понять абсурдность этого понятия легче всего обратившись к истокам его возникновения. Рождено оно было Полем Дираком в 1930-х, когда стало ясно, что отрицание эфира в чистом виде, как это делал великий математик, но посредственный физик Анри Пуанкаре, уже нельзя. Слишком много фактов противоречит этому.
Для защиты релятивизма Поль Дирак ввел афизическое и алогичное понятие отрицательной энергии, а затем и существование "моря" двух компенсирующих друг друга энергий в вакууме - положительной и отрицательной, а также "моря" компенсирующих друг друга частиц - виртуальных (то есть кажущихся) электронов и позитронов в вакууме.
Однако такая постановка является внутренне противоречивой (виртуальные частицы ненаблюдаемы и их по произволу можно считать в одном случае отсутствующими, а в другом - присутствующими) и противоречащей релятивизму (то есть отрицанию эфира, так как при наличии таких частиц в вакууме релятивизм уже просто невозможен). Подробнее читайте в FAQ по эфирной физике.
|
![]() |