Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие по программированию на ДЕЛЬФИ.doc
Скачиваний:
47
Добавлен:
11.02.2015
Размер:
1.77 Mб
Скачать

Работа 2. Ввод и обработка произвольных текстовых и числовых данных.

Для ввода и редактирования текста и чисел можно использовать однострочные и многострочные окна редактирования представляемые компонентами Edit и Memo. Основными свойствами этих компонентов, в которых содержатся вводимый и выводимый текст является: Text – для компонента Edit и Lines – для компонента Memo.

Пример 2. Создайте приложение, которое при нажа­тии кнопки перемножало бы два числа, введенных пользователем, и показывало бы результат умножения. Эти числа можете понимать как хотите: как длину двух сторон прямоугольника, и тогда результат - это площадь, или как текущий курс доллара и сумму в долларах, - тогда результатом будет рублевый эквивалент сум­мы и т. п.

Решение

При построении этого приложения мы используем новые типы компонен­тов - окна редактирования. Кроме того, для разнообразия, будем выводить резу­льтат в панель Panel. Сконструируем форму. Перенесите на нее со страницы Addi­tional два окна редактирования с присоединенными к ним метками LabeledEdit, а со страницы Standard - одну панель Panel, одну кнопку Button и одну метку Label для надписи. Разместите все это примерно так, как показано на рисунке а). Так вы можете поступить, если работаете с Delphi 6 и 7. Если вы работаете с более ранними версиями, то в них компонента LabeledEdit нет. Поэтому, вместо двух компонентов LabeledEdit вам надо будет перенести на форму два окна редактиро­вания Edit со страницы Standard и две метки. Начальный вид формы в этом слу­чае показан на рисунке б).

а) б)

Измените надписи в метках компонентов LabeledEdit на что-то осмысленное. Например, на «Число 1», «Число 2», «Результат» или на «Ширина», «Высота», «Площадь» в зависимости от того, что вы хотите понимать под соответствующими числами. Для этого щелкните на символе «+» в свойстве EditLabel этих компонен­тов и измените надпись в свойстве Caption раскрывшихся списков свойств меток. Полезно задать для меток различные атрибуты шрифта, как вы это делали в предыдущей работе.

Если вы работаете с Delphi 4 или 5, то сделайте соответствующие надписи во введенных вами дополнительных метках.

Замените свойство Caption вашей кнопки, например, на «Расчет». Очистите свойство Caption у панели. В метке над панелью напишите «Результат». В свойст­ве Text (текст) окон редактирования задайте «1» - начальное значение текста.

Попробуйте изменить такие свойствами панели, как BevelInner и Bevel­Outer, которые определяют вид основного поля и рамки панели (утопленный - bvLowered или выпуклый - ­bvRaised). Например, можете установить ВеvеlIn­ner = bvLowered и BevelOuter = bvRaised.

Осталось написать обработчик щелчка кнопки. Единственный оператор этого обработчика может иметь вид:

Panel1.Caption := FloatToStr (StrToFloat (LabeledEdit1.Text) * StrToFloat(LabeledEdit2.Text)) ;

или введите следующую строку, которая выведет математическая запись выполняемой операции:

Panel1.Caption := LabeledEdit1.Text + ' * '+ LabeledEdit2.Text + ' = ' + FloatToStr (StrToFloat (LabeledEdit1.Text) * StrToFloat(LabeledEdit2.Text)) ;

Для Delphi5 изменяются только имена окон: вместо Labeled­Edit1 и LabeledEdit2 надо писать Edit1 и Edit2.

Попробуем проанализировать приведенный оператор. Начало его вам уже зна­комо: вы присваиваете свойству Caption компонента Panel1 значение выражения, указанного в правой части оператора. Это выражение должно иметь тип строки текста. Начинается строка с текста, введенного пользователем в окно редактирова­ния LabeledEdit1 - этот текст хранится в свойстве Text. Затем вы прибавляете к этому тексту символы «*». Знак «+» в выражениях для строк означает конкате­нацию - сцепление двух строк символов. Затем аналогичным образом к строке до­бавляется текст второго окна редактирования и символ «=». После этого мы хо­тим вставить в строку результат перемножения двух целых чисел. Этот результат будет числом и, чтобы вставить его в текст, надо сначала преобразовать это число в строку. Эту операцию выполняет функция FloatToStr, которая преобразует за­данный ей параметр типа действительного числа в строку символов. Осталось по­лучить само произведение двух чисел. Но числа заданы пользователем в виде тек­стов - строк символов в окнах редактирования. Прежде, чем перемножать, эти строки надо перевести в числа. Эту операцию выполняет функция StrТoFloat, пре­образующая символьное изображение числа в его значение типа действительного числа. Знак *, указанный между двумя вызовами функции StrToFloat, обознача­ет операцию умножения. Программа готова. Можете его сохранить, выполнив команду: File - Save All.

Упражнения

  1. Реализуйте Пример 2 на ПК.

  2. Внесите в Пример 2 следующие изменения:

а) кнопка выполняет операция сложения (а не умножение);

б) кнопка выполняет операция вычитание;

в) кнопка выполняет операция деления;

г) вместо компонента Panel установите компонент Memo, для вывода результатов (в программе слова: Panel1.Caption замените на: Memo1.Lines.Text ).

3. Составьте программу для вычисления объема цилиндра V для произвольных значений радиуса r и высоты h.

4. На форму установите не одну кнопку, а четыре - с надписями: + , - , * , / , для выполнения четырех арифметических действий. Для этих кнопок напишите обработчики их нажатия.

5. Составьте действующий микрокалькулятор наподобие изображенному на рисунке .