Розглянемо програму, яка записує в файл введені користувачем дані про результати змагань, формуючи, таким чином, просту базу даних. Вихідні дані вводяться в поля діалогового вікна (рис. 8.1) і зберігаються в файлі, компонентами якого є записи типу TMedal.
Мал. 8.1. Вікно програми Додавання запису в файл
Для введення прізвища спортсмена застосовується поле редагування (компонент Edit). Для введення назви виду спорту і країни використовуються компоненти ComboBox (комбінований список).
Компонент ComboBox, значок якого знаходиться на вкладці Standard (рис. 8.2), дає можливість ввести дані або безпосередньо в полі введення-редагування, або шляхом вибору зі списку, який з'являється в результаті клацання на кнопці списку, що розкривається.
Мал. 8.2. Значок компонента ComboBox У табл. 8.1 перераховані властивості компонента ComboBox.
Таблиця 8.1. Властивості компонента ComboBox
Мал. 8.3. Введення списку для компонента ComboBox2 під час створення форми додатка
Повний текст програми приведений в лістингу 8.1.
Лістинг 8.1. Додавання записів в файл
Windows, Messages, SysUtils, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
TForm1 = class (TForm) Label1: TLabel;
Label2: TLabel; Label3: TLabel;
Edit1: TEdit; // спортсмен
ComboBoxl: TComboBox; // країна
ComboBox2: TComboBox; // вид спорту
RadioGroup1: TRadioGroup; // медаль
Buttonl: TButton; // кнопка Додати
procedure FormActivate (Sender: TObject);
procedure FormClose (Sender: TObject;
var Action: TCloseAction)
procedure ButtonlClick (Sender: TObject);
TKind = (GOLD, SILVER, BRONZE);
country: string [20]; // країна
sport: string [20]; // вид спорту
person: string [40]; // спортсмен
kind: TKind; // медаль
f: file of TMedal; // файл записів - база даних
procedure TForm1.FormActivate (Sender: TObject);
resp. word; // відповідь користувача
Reset (f); // відкрити файл
Seek (f, FileSize (f)); // покажчик записи в кінець файлу
if lOResult = 0
then buttonl.enabled: = TRUE // тепер кнопка Додати доступна
resp: = MessageDlg ( 'Файл бази даних не знайдений.'
+ 'Створити нову БД?', Mtlnformation, [mbYes, mbNo], 0);
if lOResult = 0
else ShowMessage ( 'Помилка створення файлу БД.');
// клацання на кнопці Додати
procedure TForml.Button1Click (Sender: TObject);
case RadioGroup1.Itemlndex of
write (f, medal); // записати вміст полів записи в файл
// завершення роботи програми
procedure TForm1.FormClose (Sender: TObject;
CloseFile (f); // закрити файл
У представленій програмі процедура TForm1.FormActivate відкриває файл бази даних для додавання. Тут слід звернути увагу на те, як це реалізовано. Процедуру AppendFile, яка відкриває файл для додавання в кінець, використовувати не можна, т. К. Файл не є текстовим. Тому файл спочатку відкривається процедурою Rewrite в режимі перезапису, а потім процедура Seek встановлює покажчик читання / запису в кінець файлу. Параметром процедури seek є функція Fiiesize, значення якої дорівнює розміру файлу (в байтах).
Процедура TForm1.Button1Click, яка запускається натисканням кнопки Додати (Buttoni), виконує пряме доповнення записи в файл. Поля country і sport додається записі заповнюються з властивості Text комбінованих списків Країна (comboBoxi) і Вид спорту (ComboBox2).
Поле person формованої записи заповнюється з поля введення Спортсмен (компонент Editi), а вміст поля medal визначається обраною кнопкою компонента RadioGroupl.
Чи знаєте Ви, що, як і будь-яка язичницький релігія, релятивізм хибна у своїй основі. Він суперечить фактам. Серед них такі:
1. Електромагнітна хвиля (в релігійній термінології релятивізму - "світло") має строго постійну швидкість 300 тис.км / с, абсурдно НЕ відлічувану ні від чого. Реально ЕМ-хвилі мають різну швидкість в речовині (наприклад,
200 тис км / с в склі і
3 млн. Км / с в поверхневих шарах металів, різну швидкість в ефірі (див. Статтю "Температура ефіру і червоні зсуви"), різну швидкість для різних частот (див. Статтю "Про швидкості ЕМ-хвиль")
2. У релятивізм "світло" є міфічне явище саме по собі, а не фізична хвиля, яка є хвилюванням певної фізичної середовища. Релятивістський "світло" - це хвилювання нічого в нічим. У нього немає середовища-носія коливань.
3. У релятивізмі можливі маніпуляції з часом (уповільнення), тому там порушуються основоположні для будь-якої науки принцип причинності і принцип суворої логічності. У релятивізм при швидкості світла час зупиняється (тому в ньому абсурдно говорити про частоту фотона). У релятивізмі можливі такі насильства над розумом, як твердження про взаємне перевищенні віку близнюків, що рухаються з субсветовой швидкістю, і інші знущання над логікою, притаманні будь-якій релігії.
НОВИНИ ФОРУМУ
Лицарі теорії ефіру