Работа с полем для вывода Memo



    В поле Memo информация может выводиться в несколько строк. Каждая строка в этом объекте обозначается как Lines[i], где i – номер строки (первая строка имеет номер 0). Очистка всех строк производится командой Clear, добавление – командой Add:

Memo.Add(‘Текст добавляемой строки’).

    Используем в программе поле Memo для ведения истории расчетов. Для этого расположим на форме объект Memo (см. рисунок 10) и очистим все его строки (переменная Lines).

 

Рисунок 9

 

Рисунок 10

 

    Далее в процедуру Button1 Click добавляем строку, выводящую результат в следующем формате:

значение переменной р1 + значение переменной р2 = сумма.

 

 

    Чтобы лишний раз не заниматься преобразованием типов переменных их текстовые значения взяты из соответствующих полей с формы.

    Теперь можно запустить программу и проверить ее работу.

 

Создание модальных форм

Основным строительным блоком в Delphi является форма. Любая программа имеет как минимум одну связанную с ней форму, которая называется «главной». Главная форма появляется на экране в момент старта программы. Однако программа может иметь сколько угодно форм, каждая из которых решает какую-то локальную задачу и появляется на экране по мере надобности.

Составленная программа имеет только одно окно (форму) с расположенными на нем визуальными объектами. Создадим второе (вспомогательное) окно для ввода чисел. Для этого разместите на основной форме программы кнопку с заголовком «Исходные данные», при нажатии на которую будет выводится вспомогательная форма.

Чтобы создать вспомогательную форму необходимо выбрать в меню команду File|New Form. В результате будет создана новая форма с соответствующим программным модулем. Модуль необходимо сохранить (командой File|Save) в рабочем каталоге проекта (там же, где сохранялись и ранее созданные файлы).

Теперь можно заполнить созданную вспомогательную форму необходимыми компонентами в соответствии с рисунком 11.

 

Рисунок 11

 

После того как обе формы спроектированы, необходимо написать соответствующие обработчики событий для связи форм друг с другом.

В Delphi вспомогательные окна можно выводить на экран в двух режимах с помощью методов формы Show и ShowModal соответственно.

1. Метод Show открывает «немодальное» окно, которое появляется на экране и работает одновременно с вызвавшим его окном. Управление программой передается оператору, стоящему за оператором вызова метода Show. Этот режим обычно не используется для ведения диалога с пользователем. Примером такого рода окон являются окна Редактора кода и Инспектора объектов в Delphi.

Вывод диалоговых окон (модальных форм) на экран удобен, если они появляются по центру экрана. Для этого необходимо установить значение свойства Position формы равным psScreenCenter

2. Метод ShowModal открывает «модальное диалоговое» окно, которое полностью берет на себя дальнейшее управление программой. Модальные окна требуют от пользователя принятия какого-то решения. Для тoro чтобы пользователь мог сообщить о принятом решении, в модальное окно вставляются необходимые интерфейсные элементы. Чаще всего это стандартные кнопки (с надписями «ОК», «Отмена», «Да», «Нет»), которые автоматически выполняют действия закрытия модального окна и помещения значения результата диалога (информации о нажатой кнопке) в свойство формы ModalResult. Свойство ModalResult может иметь значения mrNone, mrOk, mrCancel, mrYes, mrNo и другие. Вызывающая программа получает это значение после выполнения метода ShowModal и может анализировать его для определения нужного направления своей дальнейшей работы.

    Нам необходимо создать обработчик событий в ответ на нажатие кнопки «Исходные данные» главной формы, который бы вызывал вспомогательную форму. Для этого дважды щелкните по этой кнопке (или создайте событие onClick для нее). В результате средой программирования будет автоматически создана процедура-обработчик события onClick, в которую (между словами «begin» и «end») следует вписать команду, вызывающую вспомогательную форму:

Form2.Show

Здесь «Form2» - имя вспомогательной формы (свойство «Name»).

    Сохраните проект и запустите его на исполнение. При запуске среда Delphi сообщит, что в программе происходит вызов формы из другого модуля. В ответ следует согласиться, чтобы она автоматически добавила упоминание о новом модуле в разделе «uses».

    Чтобы при нажатии на кнопку «Ввод чисел» или «Отмена» вспомогательной формы она закрывалась, в обработчик события onClick следует вписать команду закрытия формы

close

    Сохраните проект и проверьте работу программы.

    При вводе исходных данных для расчетов удобно, чтобы форма появлялась в модальном режиме. Тогда она не закроется, пока не будут введены числа и не нажата соответствующая кнопка, подтверждающая ввод или отменяющая его. В этом случае следует использовать значения mrNone, mrOk, mrCancel, mrYes, mrNo и другие для сообщения основной форме, что ввод чисел произведен или отменен и т.д.

    Вызов вспомогательной формы будет иметь другой вид:

if Form2.ShowModal=mrOk then ...

после чего следуют действия, выполняемые, если результат «ОК». Например,

if Form2.ShowModal=mrOk then

    label1.Caption:=Form2.Edit1.Text

    else label1.Caption:='0'

Тогда после закрытия вспомогательной формы содержимое строки ввода Edit1 вспомогательной формы Form2 будет скопировано в Label1 основной формы. В противном случае будет напечатано значение «0».

    В обработчик события onClick кнопки «Ввод чисел» следует вместо команды «close» вписать

ModalResult:=mrOk

а в обработчик кнопки «Отмена» соответственно

ModalResult:=mrCancel

    Сохраните проект и проверьте работу программы.

 

    Индивидуальные задания

    Общее задание: разработать и скомпилировать программу (получить готовый exe-файл), выполняющую указанные действия. В программе предусмотреть кнопку, при нажатии на которую по центру экрана в модальном режиме должно выводиться окно с информацией об авторе и учебной группе. Количество используемых полей для ввода, кнопок, вспомогательных форм и т.д. выбирается на усмотрение автора программы.

    Вариант задания выбирается по указанию преподавателя или по списку группы.

 

    Вариант 1. Написать программу-калькулятор, выполняющую действия над двумя числами: сложение, вычитание, умножение и деление. Вывод результатов в Memo в виде протокола.

    Вариант 2. Написать программу для расчета процентов по вкладу (сумма вклада, величина процентов и срок в годах вводятся пользователем).

    Вариант 3. Написать программу для расчета шайбы. Исходные данные: внутренний и внешний диаметры, толщина, плотность материала. Выходные данные: площадь поверхности, объем и вес.

    Вариант 4. Написать программу-калькулятор, вычисляющую тригонометрические функции sin(x), cos(x), tg(x), ctg(x). Величина x вводится, функции tg и ctg вычисляются через sin и cos. Предусмотреть ввод х в градусах и в радианах.

    Вариант 5. Написать программу расчета чисел Фибоначчи (каждое последующее число равно сумме двух предыдущих). Количество чисел вводится.

    Вариант 6. Написать программу расчета факториала для вводимого пользователем числа.

    Вариант 7. Написать программу для расчета и вывода в Memo значений функции синуса (вводятся начальное значение аргумента, шаг и количество значений).

    Вариант 8. Написать программу с единственной кнопкой на форме. При нажатии на кнопку она перемещается в произвольную точку формы (но не выходит за ее пределы). Используется функция «random(.)».

    Вариант 9. Написать программу, размер шрифта кнопок которой при наведении курсора увеличивается в два раза.

    Вариант 10. Написать программу-калькулятор для комплексных чисел: вводятся действительные и мнимые части двух комплексных чисел и выполняется указываемое арифметическое действие (сложение, вычитание, умножение и деление).

    Вариант 11. Написать программу перевода двоичного числа в десятичный вид (результат выводить с помощью объектов Label и Memo).

    Вариант 12. Написать программу вычисления площади круга (результат выводить с помощью объектов Label и Memo).

    Вариант 13. Написать программу вычисления площади трапеции (результат выводить с помощью объектов Label и Memo).

    Вариант 14. Написать программу вычисления площади квадрата и объема куба (результат выводить с помощью объектов Label и Memo).

    Вариант 15. Написать программу вычисления среднего арифметического вводимых пользователем чисел.

    Вариант 16. Написать программу с квадратной панелью на форме. При щелчке по панели она должна увеличиваться на 10 пикселов.

    Вариант 17. Написать программу вычисления периметра треугольника (результат выводить с помощью объектов Label и Memo).

    Вариант 18. Написать программу перевода десятичного числа в двоичный вид (результат выводить с помощью объектов Label и Memo).

    Вариант 19. Написать программу вычисления квадрата разности двух чисел, квадрата суммы двух чисел и разности квадратов двух чисел.

    Вариант 20. Написать программу вычисления объема шара, цилиндра и конуса (результат выводить с помощью объектов Label и Memo).

    Вариант 21. Написать программу с единственной кнопкой на форме, которая должна перемещаться в произвольную точку формы при наведении на нее курсора (но не выходить за пределы). Используется функция «random(.)».

    Вариант 22. Написать программу вычисления объем треугольной пирамиды (результат выводить с помощью объектов Label и Memo).

    Вариант 23. Написать программу вычисления длину радиуса окружности заданной площади (результат выводить с помощью объектов Label и Memo).

    Вариант 24. Написать программу с четырьмя кнопками на форме: «Вверх», «Вниз», «Влево» и «Вправо», при нажатии на которые некоторый объект перемещается в соответствующем направлении на 10 пикселов.


Дата добавления: 2018-11-24; просмотров: 1179; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!