Автор: Пользователь скрыл имя, 19 Февраля 2013 в 11:33, практическая работа
Цель работы. Создать форму для решения задачи табулирования функции. Создать главное меню (объект типа MainMenu), содержащее команды: выйти из программы, табулировать функцию, очистить поля вывода результатов, а также контекстное меню (PopupMenu) с командой для очистки поля вывода. Результаты табулирования вывести в многострочное поле редактирования (объект типа Memo). Предусмотреть возможность вывода результатов на экран, в файл, в массив. Направление вывода задать с помощью трёх флажков (объектов типа CheckBox), расположенных на панели группы объектов (типа GroupBox) (см. рис. 9).
ПРАКТИЧЕСКАЯ РАБОТА № 3.
ЗАДАЧА ТАБУЛИРОВАНИЯ ФУНКЦИИ
Изучение объектов: Memo, MainMenu, PopupMenu, CheckBox, GroupBox. Программирование циклов
Цель работы. Создать форму для решения задачи табулирования функции. Создать главное меню (объект типа MainMenu), содержащее команды: выйти из программы, табулировать функцию, очистить поля вывода результатов, а также контекстное меню (PopupMenu) с командой для очистки поля вывода. Результаты табулирования вывести в многострочное поле редактирования (объект типа Memo). Предусмотреть возможность вывода результатов на экран, в файл, в массив. Направление вывода задать с помощью трёх флажков (объектов типа CheckBox), расположенных на панели группы объектов (типа GroupBox) (см. рис. 9).
Теоретические сведения. Объект Memo применяют для создания многострочного редактора текста. Кроме обычных свойств, поле редактирования Memo обладает еще такими:
Свойство |
Описание свойства |
Примеры значений |
HideSelection |
Сохранение выделения |
True (выделение не сохраняется), False (сохраняется) |
Lines |
Ввод начального текста в поле редактирования |
Комплексное свойство (задается в диалоговом окне) |
MaxLength |
Максимально возможное количество введенных символов |
Например, 50 - пятьдесят символов, 0 - без ограничений |
ScrollBars |
Наличие полос прокрутки |
ssNone (отсутствуют), ssHorizontal (горизонтальная), ssBoth (обе) |
Объект CheckBox используют для создания независимого двух или трехпозиционного флажка: включен /выключен (/серый). Для этого объекта определены такие два новых свойства:
Свойство |
Описание свойства |
Примеры значений |
AllowGrayed |
Наличие третьей позиции |
True (трёхпозиционный флажок), False (двухпозиционный флажок) |
State |
Состояние флажка |
cbGrayed (серый), cbUnchecked (отключен), cbChecked (включен) |
Панель группы объектов GroupBox предназначена для размещения на ней группы из нескольких объектов. Панель группы используют для улучшения дизайна окна программы. Свойства этого объекта аналогичны описанным выше.
С помощью объекта MainMenu создают главное меню программы. Вот некоторые свойства главного меню:
Свойство |
Описание свойства |
Примеры значений |
Items |
Команды меню |
Комплексное свойство (задается в диалоговом окне) |
Tag |
Вспомогательная переменная, используется в тексте программы |
0; 8 (целое число) |
С помощью объекта PopupMenu создают контекстное меню некоторого компонента. Для «связывания» контекстного меню с конкретным объектом необходимо свойству PopupMenu этого объекта присвоить значение имени (Name) соответствующего контекстного меню. Рассмотрим некоторые свойства контекстного меню:
Свойство |
Описание свойства |
Примеры значений |
Alignment |
Выравнивание меню относительно точки щелчка по правой клавише мыши |
paCenter (по центру), paLeft (слева), paRight (справа) |
AutoPopup |
Автоматический вызов контекстного меню |
True (вызовется при щелчке по правой клавише), False (вызовется с помощью метода Popup) |
Конкретная команда меню (главного или контекстного) может иметь такие свойства:
Свойство |
Описание свойства |
Примеры значений |
Break |
Разбивка меню в горизонтальном направлении |
mbNone (без разбивки), mbBarBreak (разбивка с вертикальной черточкой), mbBreak (разбивка без вертикальной черточки) |
Shortcut |
Комбинация "горячих" клавиш для вызова команды меню |
Ctrl+A, F8, Ctrl+FlO, Shift+F3, Shift+Ctrl +F11, Ctrl-HDel |
Ход работы:
1. Загрузите среду визуального программирования Delphi.
2. Поменяйте заголовок (Caption) формы с «Form1» на «Табулирование функции» (без кавычек) и увеличьте размеры формы в вертикальном направлении.
3. Смените пиктограмму
в левом верхнем углу формы,
указав конкретный файл с
Щелкните в строке Icon на …, а потом на кнопке Load окна Picture Editor, чтобы получить окно Load picture. Откройте папку
С: \ Program Files \ Borland \ Delphi x.O \ Images \ Icons,
выберите графический файл с любой пиктограммой => Open => Ok.
4. Сохраните
выполненную на данный момент
форму в своей папке (File=>
5. Расположите в форме поля редактирования Edit1, Edit2, Edit3 и соответствующие им текстовые поля «Левая грани-«Левая граница», «Правая граница», «Шаг», а также текстовое поле для задания вида данной функции y=sin(x) +1 (см. рис. 9).
рис. 9
Замечание. Чтобы быстро вставить в форму несколько однотипных объектов, щелкните на пиктограмме этого объекта, удерживая нажатой клавишу Shift, а потом - на форме необходимое количество раз. Если случайно вставите лишний объект, то удалить его можно с помощью клавиши Delete. Для отказа от режима вставки щелкните на изображении стрелки на палитре компонентов. Размер, стиль и цвет шрифта выберите на своё усмотрение так, чтобы форма выглядела как можно лучше. Save all.
6. Выровняйте вставленные поля редактирования к левому краю первого объекта и отцентрируйте текстовое поле с указанием функции, воспользовавшись окном выравнивания Alignment.
Выделите группу полей редактирования вместе с подписями к ним и выполните команды Edit (редактировать).=> Align (выровнять) => Horizontal - Left sides (горизонтально - левые границы) => Vertical - Space equally (вертикально - равномерно) => Ok. Выделите текстовое поле с выражением для функции и выполните команды Edit => Align => Horizontal - Center in Window ( горизонтально - к центру окна) => Ok. Save All.
7. Вставьте в форму панель группы объектов (объект типа GroupBox).
Компонента GroupBox находится на закладке Standard. Поменяйте значение свойства Caption (подпись) этого объекта на слово «Вывод» (без кавычек). Размер, стиль и цвет шрифта выберите на своё усмотрение. Увеличьте панель группы.
8. Вставьте на панель три флажка (объекты типа CheckBox).
Для этого используйте компоненту CheckBox закладки Standard палитры компонентов Delphi. Выровняйте флажки, выделив их заблаговременно (см. п. 6). Поменяйте значения свойства Caption (подпись) этих объектов. Стиль и цвет шрифтов выберите на своё усмотрение.
9. Установите флажки «На экран» и «В массив» в режим «включен». Для этого выделите эти объекты и смените значения их свойств Checked (контроль выбора) на True.
10. Вставьте в форму
Компонента Memo находится на закладке Standard. Увеличьте размеры поля. Значение свойства ScrollBars (наличие полос прокрутки) этого объекта задайте как ssBoth (наличие двух полос - вертикальной и горизонтальной). File => Save All.
11. Задайте начальные значения
для полей редактирования
Для этого поменяйте значения свойства Text этих объектов. Для ввода символа десятичной точки примените символ, предусмотренный операционной системой компьютера.
12. Удалите из многострочного поля редактирования слово Memo1.
Для этого в окне Object Inspector смените значение свойства Lines (строки) объекта Memol. Вызовите окно редактирования этого свойства (окно String list editor - редактор многострочного поля), нажав на кнопку. Удалите слово Memol и для завершения работы с этим окном щелкните на кнопке Ok.
Рис.10.
13. Вставьте в форму главное и контекстное меню (объекты типа MainMenu и PopupMenu).
Компоненты MainMenu и PopupMenu находятся на закладке Standard. Расположите их пиктограммы в произвольном месте формы (на этапе выполнения программы они будут невидимыми).
Рис.11. Рис.12.
Выберете объект MainMenu1 и дважды щелкните на значении его свойства Items. Другой способ - дважды щелкните на самом объекте.
Закройте окно создания команд главного меню Form1 .MainMenu1.
15. Введите названия
команд контекстного меню
Для этого аналогично как для главного меню поменяйте значения свойства Items объекта PopupMenu1 в окне Form1.PopupMenu1 (как вызвать это окно см. п. 14). В окне Object Inspector введите значение свойства Caption — «Очистить поле вывода» (без кавычек, рис.13). Можете придумать и задать еще несколько команд. Закройте окно Form1 .PopupMenu1. Сохраните форму (Save All).
Рис.13.
16. Запрограммируйте команду «Очистить поле вывода» главного меню с помощью метода Clear объекта Memol.
Методы объекта - это набор процедур и функций, которые аналогично свойствам применяют к объекту. Как и в случае свойства, имя объекта от имени метода отделяется точкой. Щелкните по команде меню «Очистить поле вывода». Появится заготовка процедуры реакции на событие вызова этой команды. В нее запишите команду вызова метода Clear для очистки поля вывода объекта Memol:
procedure TForm1 .N3Click(Sender: Tobject);
(Здесь N3 - имя команды «Очистить поле вывода» у Вас может быть другой номер, его не исправляйте}
begin
{Вызовем метод объекта Memo1, очищающий}
Memo1.Clear
{многострочное поле редактирования}
end; {Теперь щелкните на форме}
17. Запрограммируйте команду «Выход» главного меню, воспользовавшись стандартной процедурой Close.
procedure TForm1 .N6Click(Sender: Tobject);
{Здесь N6 - имя команды "Выход"}
begin
Close {Закрываем окно программы}
end; {Теперь щелкните на форме}
Сохраните выполненную на данный момент форму в своей папке (File=>Save All).
18. Запрограммируйте
команду «Очистить поле вывода»
Дважды щелкните на команде контекстного меню «Очистить поле вывода» в окне Form1.PopupMenu1 (вызов этого окна см. в п. 14). Текст процедуры очистки такой же, как и для команды главного меню: Memol.Clear (см. п. 16).
19. «Свяжите» контекстное меню PopupMenu1 с формой Form1. Щёлкните на форме и задайте свойство формы PopupMenu как
PopupMenu1.
Замечание. Значение свойства формы Menu автоматически устанавливается как MainMenu1 в момент создания главного меню (п. 13).
20. Запустите созданную на этот момент программу и исследуйте ее работу.
Поупражняйтесь с
21. Запрограммируйте команду «Табулировать».
Свойство Lines объекта типа Memo комплексное, то есть оно также является объектом со своими свойствами и методами. Результат работы данной программы - это таблица, которая состоит из нескольких строк. Чтобы добавить в поле Memol новую строку таблицы, надо поменять значения комплексного свойства Lines (строки) с помощью его метода Add (добавить) с одним аргументом - символьной строкой: Memol.Lines.Add ('cтpокa символов'). Щелкните на команде «Табулировать» из главного меню один раз. Появится заготовка к процедуре, которую заполните так:
procedure Tforml.N2Click(Sender: TObject);
var
x, у, h, a, b : real;
cod : integer;
str1, str2 : string;
begin
{В объект Memol вставляем строку с подписями столбцов значений аргумента и функции}