Создайте программу перевода температур из градусов по Фаренгейту в градусы по Цельсию.

Поместите на форму компоненты Label1, Edit, Label2, Button1 и Button2 со страницы Standard палитры компонент как показано на рис.4.

В метке Label имеется свойство Word Wrap — допустимость переноса слов длинной надписи, превышающей длину компонента, на новую строчку. Чтобы та­кой перенос мог осуществляться, надо установить свойство WordWrap в true, свойство AutoSize в false (чтобы размер компонента не определялся размером над­писи) и сделать высоту компонента такой, чтобы в нем могло поместиться несколь­ко строк. Если WordWrap не уста­новлено в true при AutoSize равном false, то длинный текст, не помещающийся в рамке метки, просто обрезается.

Перей­дите в обработчик события OnClickсделав двойной щелчок на компоненте Buttonlна форме.

При вводе из окна числовой информации надо использовать функции StrToInt(s) - преобразование строки s в целое значение и StrToFloat(s)– преобразование строки sв значение с плавающей запятой (описание смотрите в лекции). После десятичной точки должно быть 4 цифры.

Затем выполните перевод температур по формуле: С = (5 : 9) * (F— 32), где С - это температура по шкале Цельсия, a F -- по шкале Фаренгейта.

Потом вам надо занести в метку смешанную информацию, состоящую из строк символов и чисел. Для этого воспользуйтесь функциями FloatToStrF(n) и IntToStr(k), переводящие соответственно число n с плавающей запятой и целое число k в строки. При вызове функции FloatToStrF(n,f,k,m)указывают: f — формат;k — точность; m— количество цифр после десятичной точки. Формат определяет способ изображения числа: ffGeneral — универсальный; ffExponent — научный; ffFixed — с фиксированной точкой;ffNumber — с разделителями групп разрядов; ffCurrency — финансовый. Точность — нужное общее количество цифр.

Для формирования текста, состоящего из нескольких фрагментов, можно использовать операцию ”+”, которая для строк означает их склеивание (конкатенацию).

Рис.4 Вид формы конвертора

Сделайте, чтобы в TEdit можно было вводить только числа.

Для этого вам надо поместить следующий код в OnKeyPress любого TEdit'а:

// Key – код нажатой клавиши

// проверим является ли символ допустимым

if ((Key >= '0') && (Key <= '9'))// цифра

return;

else if ((Key == '.') || (Key == ','))

{

// DecimalSeparator - глобальная переменная - разделитель целой и дробной части, содержит символ, используемый в качестве разделителя при записи дробных чисел.

if ((Edit1->Text).Pos(DecimalSeparator) != 0)

Key = 0; // разделитель уже введен

else// если ещё нет

Key = DecimalSeparator;

return;

}

if (Key == VK_BACK)// клавиша <Backspace>

return;

if (Key == VK_RETURN)// клавиша <Enter>

{

Edit1->SetFocus();//делаем компонент активным: в его поле можно набирать и выводить текст;

return;

}

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

Key = 0;// код запрещенных символов заменим нулем, в результате символ в поле редактирования не отобразится

Для того, чтобы после нажатия на кнопку завершить форма закрылась используйте метод Close(), который закрывает форму.

Самостоятельная работа № VI