Внесение изменений

После нескольких запусков программы Скорость бега возникает желание внести изменения в программу. Например, было бы неплохо, чтобы после ввода дистанции и нажатия клавиши <Enter> курсор переходил в поле Время. Или если бы в поля Дистанция и Время пользователь мог ввести только цифры.

Чтобы внести изменения в программу, нужно запустить Delphi и открыть соответствующий проект. Сделать это можно обычным способом, выбрав из меню File команду Open Project. Можно также воспользоваться командой Reopen из меню File. При выборе команды Reopen открывается список проектов, над которыми программист работал в последнее время.

В листинге В5 приведена программа Скорость бега, в которую добавлены

Процедуры обработки событий OnKeyPress Для компонентов Edit1 и Edit2.

Следует обратить внимание на то, что для добавления в программу процедуры обработки события нужно в окне Object Inspector выбрать компонент, для которого создается процедура, затем на вкладке Events выбрать событие и сделать двойной щелчок в поле имени процедуры. Delphi сформирует шаблон процедуры обработки события. После этого можно вводить инструкции, реализующие процедуру обработки.

Листинг В5. Модуль программы Скорость бега после внесения изменений unit vrun1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForml = class(TForm) Editl: TEdit;

Edit2: TEdit; Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Buttonl: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure EditlKeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations } public

{ Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm)

// нажатие кнопки Вычислить

procedure TForm1.ButtonlClick(Sender: TObject);

var

dist : integer; // дистанция, метров

t: real; // время как дробное число

min : integer; // время, минуты

sek : integer; // время, секунды

v: real; // скорость

begin

// получить исходные данные из полей ввода

dist := StrToInt(Editl.Text); t := StrToFloat(Edit2.Text);

// предварительные преобразования

min := Trunc(t); // кол-во минут — это целая часть числа t

sek := Trunc(t*100) mod 100; // кол-во секунд — это дробная часть

// числа t

// вычисление

v := (dist/1000) / ( (min*60 + sek)/3600);

// вывод результата

label4.Caption := 'Дистанция: '+ Editl.Text +

' м' + #13 + 'Время: ' + IntToStr(min) +

' мин ' + IntToStr(sek) + ' сек ' + #13 +

'Скорость: ' + FloatToStrF(v,ffFixed,4,2) + ' км/час';

end;

// нажатие кнопки Завершить

procedure TForml.Button2Click(Sender: TObject);

begin

Form1.Close; end;

// нажатие клавиши в поле Дистанция

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

// Key — символ, соответствующий нажатой клавише.

// Если символ недопустимый, то процедура заменяет его

// на символ с кодом 0. В результате этого символ в поле

// редактирования не появляется, и у пользователя создается

// впечатление, что программа не реагирует на нажатие некоторых

// клавиш.

case Key of

'0'..'9': ; // цифра

#8 : ; // клавиша <Back Space>

#13 : Edit2.SetFocus ; // клавиша <Enter>

// остальные символы — запрещены

else Key :=Chr(0); // символ не отображать

end;

end;

end.

После внесения изменений проект следует сохранить. Для этого нужно из меню File выбрать команду Save all.

 


Знаете ли Вы, что такое "усталость света"?
Усталость света, анг. tired light - это явление потери энергии квантом электромагнитного излучения при прохождении космических расстояний, то же самое, что эффект красного смещения спектра далеких галактик, обнаруженный Эдвином Хабблом в 1926 г.
На самом деле кванты света, проходя миллиарды световых лет, отдают свою энергию эфиру, "пустому пространству", так как он является реальной физической средой - носителем электромагнитных колебаний с ненулевой вязкостью или трением, и, следовательно, колебания в этой среде должны затухать с расходом энергии на трение. Трение это чрезвычайно мало, а потому эффект "старения света" или "красное смещение Хаббла" обнаруживается лишь на межгалактических расстояниях.
Таким образом, свет далеких звезд не суммируется со светом ближних. Далекие звезды становятся красными, а совсем далекие уходят в радиодиапазон и перестают быть видимыми вообще. Это реально наблюдаемое явление астрономии глубокого космоса. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution