Для того чтобы в программе
могли применяться функции и процедуры модуля, программист должен добавить этот
модуль к проекту и указать имя модуля в списке используемых модулей (обычно
имя модуля программиста помещают в конец сформированного Delphi списка используемых
модулей).
В листинге 6.9 приведен
вариант программы Поездка на дачу. Процедура обработки события onKeyPress
в полях ввода исходных данных обращается к функции IsFloat, которая находится
в модуле my_unit.pas, поэтому в списке используемых модулей указано имя модуля
my_unit.
Листинг 6.9.
Использование функции из модуля программиста
unit fazenda_;
interface
uses
Windows, Messages, SysUtils, Variants,
Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, my_unit; // модуль программиста
type
TForm1
= class(TForm)
Edit1:
TEdit; // расстояние
Edit2:
TEdit; // цена литра бензина
Edit3:
TEdit; // потребление бензина на 100 км
CheckBoxl:
TCheckBox; // True — поездка туда и обратно
Button1:
TButton; // кнопка Вычислить
Label4:
TLabel; // поле вывода результата расчета
Label1:
TLabel;
Label2:
TLabel;
Label3:
TLabel;
procedure EditlKeyPress(Sender: TObject;
var
Key: Char);
procedure Edit2KeyPress(Sender: TObject;
var
Key: Char);
procedure Edit3KeyPress(Sender: TObject;
var
Key: Char);
procedure Button1Click(Sender: TObject);
private
{ Private declarations} public
{ Public declarations } end;
var
Form1:
TForm1;
implementation
{$R
*.dfm}
//
нажатие клавиши в поле Расстояние
procedure TForml.EditlKeyPress(Sender: TObject;
var
Key: Char);
begin
if
Key = Char(VK_RETURN)
then Edit2.SetFocus // переместить курсор в поле Цена
else If not IsFloat(Key,Edit2.Text)
then
Key := Chr(O);
end;
//
нажатие клавиши в поле Цена
procedure
TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if
Key = Char(VK_RETURN)
then Edit3.SetFocus // переместить курсор в поле Потребление .
else If not IsFloat(Key,Edit2.Text) then Key := Chr(0);
end;
//
нажатие клавиши в поле Потребление
procedure TForm1.EditSKeyPress(Sender: TObject;
var
Key: Char);
begin
if
Key = Char(VK_RETURN)
then Button1.SetFocus // // сделать активной кнопку Вычислить
else
If not IsFloat(Key,Edit2.Text) then Key := Chr(0);
end;
//
щелчок на кнопке Вычислить
procedure
TForml.ButtonlClick(Sender: TObject);
var
rast
: real; // расстояние
cena
: real; // цена
potr
: real; // потребление на 100 км
summ
: real; // сумма
mes: string;
begin
rast
:= StrToFloat(Editl.Text) ;
cena
:= StrToFloat(Edit2.Text);
potr
:= StrToFloat(Edit3.Text);
summ
:= rast / 100 * potr * cena;
if
CheckBoxl.Checked then summ := summ * 2;
mes
:= 'Поездка на дачу';
if
CheckBox1.Checked then
mes
: = mes + ' и обратно' ;
mes := mes + 'обойдется в '
+
FloatToStrF(summ,ffGeneral, 4,2) + ' руб.';
Label4.Caption := mes;
end;
end.
После добавления имени
модуля в список модулей, используемых приложением, сам модуль нужно добавить
в проект. Для этого из меню Project надо выбрать команду Add to Project
и в открывшемся диалоговом окне — имя файла модуля. В результате добавления
модуля к проекту в окне редактора появится вкладка с текстом добавленного к
проекту модуля.
Увидеть структуру проекта
можно в окне Project Manager, которое появляется в результате выбора
соответствующей команды из меню View. В качестве примера на рис. 6.3
приведена структура проекта Поездка на дачу.
Рис. 6.3.
Структура проекта отражается в окне Project Manager
После добавления модуля
к проекту и включения его имени в список используемых модулей (инструкция uses)
можно выполнить компиляцию программы.
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.