Создайте программу перевода температур из градусов по Фаренгейту в градусы по Цельсию
Поместите на форму компоненты 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