Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

курсовая работа delphi / 220c1d9e87ed431a50a13ca7836572fe_Lab_Pascal-Delphi(TMS_A5)__________лекции

.pdf
Скачиваний:
42
Добавлен:
04.06.2015
Размер:
2.02 Mб
Скачать

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

Рисунок 4. Рекомендуемый вид формы программы.

Результаты работы приложения и код программы поместите в отчет по лабораторной работе.

Задание 2. Написать программу, которая, используя закон Ома, вычисляет силу тока, напряжение или сопротивление электрической цепи. Рекомендуемый вид формы приведен на рис. 5. Во время работы программы, в результате выбора переключателя Ток, Напряжение или Сопротивление, текст, поясняющий назначение полей ввода, должен меняться.

Рисунок 5. Рекомендуемый вид формы программы.

91

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

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

// Нажатие клавиши в поле Edit1

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key:Char); begin

case Key of

'0'..'9',#8: ; // цифры и <Backspase> #13: Edit2.SetFocus; // клавиша <Enter> '.',',':

begin

if Key = '.' then Key := ',';

// не позволяет вводить знак запятой повторно if Pos(',',Edit1.Text) <> 0 then Key := Chr(0);

end;

else Key := Chr(0); end;

end;

Результаты работы приложения и код программы поместите в отчет по лабораторной работе.

Задание 3. Вычисление площади треугольника.

1. Разработать программу вычисления периметра и площади треугольника по формуле Герона: S = p( p a)( p b)( p c) , где p =

(a+b+c)/2 (a,b,c стороны треугольника).

2. Результаты работы приложения и код программы поместите в отчет по лабораторной работе.

Задание 4. Чтение текстового файла результата.

1. Напишите программу, которая рассчитывает заданное количество чисел Фибоначчи и выводит их в текстовый файл. Числа Фибоначчи – это последовательность целых чисел, в которой два первых равны 1, а каждое следующее число равно сумме двух предыдущих. Для просмотра результата текстового файла используйте программу из задания п.2.3.

2. Результаты работы задачи и код программы поместите в отчет по лабораторной работе.

92

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

Контрольные вопросы

1.Какие компоненты называют базовыми?

2.Опишите компоненты палитры Standart.

3.Какой метод используется для добавления строки в поле Memo?

4.Опишите элемент управления для выбора одного варианта из нескольких?

5.Как обеспечивается контроль правильности ввода числовой информации?

6.Как обеспечивается контроль возможных ошибок при выполнении файловых операций?

7.Завершая редактирование текстового поля, каким образом обеспечить перенос фокуса ввода на следующее текстовое поле?

8.С какой целью применяют функции StrToFloat и

FloatToStr?

Отчет по лабораторной работе

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

93

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

ЛАБОРАТОРНАЯ РАБОТА №6

«РАБОТА С МЕНЮ. ПОСТРОЕНИЕ ДИАГРАММ»

Тема: Работа с главным меню. Построение диаграмм.

Цель работы: знакомство и развитие навыков работы с компонентами

Delphi TChart и TMainMenu.

Освоить дополнительные компоненты ;

изучить методы и свойства объекта TChart;

изучить компонент TMainMenu;

овладеть методами построения диаграмм.

Лабораторная работа выполняется в операционной системе Windows ХР/200х с использованием инструментальной среды Delphi и языка программирования Object Pascal.

1. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Главное меню

Компонент TMainMenu (расположена на странице Standart) позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит в виде иконки. Иконки данного типа называют "невидимыми компонентами", поскольку они невидимы во время выполнения программы. Создание меню включает три шага:

помещение TMainMenu на форму,

вызов Дизайнера Меню через свойство Items в Инспекторе Объектов,

определение пунктов меню в Дизайнере Меню.

Обычно на форму помещается один компонент MainMenu. В этом случае его имя автоматически заносится в свойство формы Menu. Но можно поместить на форму и несколько компонентов MainMenu с разными наборами разделов, соответствующими различным режимам работы приложения. В этом случае во время проектирования свойству Menu формы присваивается ссылка на один из этих компонентов. А в процессе выполнения в нужные моменты это свойство можно изменять, меняя соответственно состав главного меню приложения.

Основное свойство компонента — Items. Его заполнение производится с помощью Конструктора Меню, вызываемого двойным щелчком на компоненте MainMenu или нажатием кнопки с многоточием рядом со свойством Items в окне Инспектора Объектов. В результате откроется окно, вид которого представлен на рис. 1. В этом окне вы можете спроектировать

94

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

все меню. На рис. 2 показано в работе то меню, которое соответствует проектируемому на рис. 1.

Рис. 2 Результат конструирования меню

Рис. 1. Окно Конструкторa Меню

При работе в конструкторе меню новые разделы можно вводить, помещая курсор в рамку из точек, обозначающую место расположения нового раздела (см. рис. 1). Если при этом раздел ввелся не на нужном вам месте, вы можете отбуксировать его мышью туда, куда вам надо. Другой путь ввода нового раздела — использование контекстного меню, всплывающего при щелчке правой кнопкой мыши. Если вы предварительно выделите какой-то раздел меню и выберите из контекстного меню команду Insert, то рамка нового раздела вставится перед ранее выделенным. Из контекстного меню вы можете также выполнить команду Create Submenu, позволяющую ввести подменю в выделенный раздел (см. подменю раздела

Настройки на рис. 1, 2).

При выборе нового раздела вы увидите в Инспекторе Объектов множество свойств данного раздела. Дело в том, что каждый раздел меню, т.е. каждый элемент свойства Items, является объектом типа TMenuItem, обладающим своими свойствами, методами, событиями.

Свойство Caption обозначает надпись раздела. Заполнение этого свойства подчиняется тем же правилам, что и заполнение аналогичного свойства в кнопках, включая использование символа амперсанта для обозначения клавиш быстрого доступа. Если вы в качестве значения Caption очередного раздела введете символ минус «-», то вместо раздела в меню появится разделитель (см. на рис. 1 и 2 разделители после разделов Сохранить как, Параметры страницы и Настройки).

95

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

Свойство Name задает имя объекта, соответствующего разделу меню. Очень полезно давать этим объектам осмысленные имена, так как иначе вы скоро запутаетесь в ничего не говорящих именах типа N21. Куда понятнее имена типа MFile, MOpen, MSave и т.п.

Свойство Shortcut определяет клавиши быстрого доступа к разделу меню — «горячие» клавиши, с помощью которых пользователь, даже не заходя в меню, может в любой момент вызвать выполнение процедуры, связанной с данным разделом. Чтобы определить клавиши быстрого доступа, надо открыть выпадающий список свойства Shortcut в окне Инспектора Объектов и выбрать из него нужную комбинацию клавиш. Эта комбинация появится в строке раздела меню (см. команду Сохранить... на рис. 1, 2). Свойство Default определяет, является ли данный раздел разделом по умолчанию своего подменю, т.е. разделом, выполняемым при двойном щелчке пользователя на родительском разделе. Подменю может содержать только один раздел по умолчанию, выделяемый жирным шрифтом (см. раздел Открыть на рис. 1, 2).

Свойство Break используется в длинных меню, чтобы разбить список разделов на несколько столбцов. Возможные значение Break: mbNone — отсутствие разбиения меню (это значение принято по умолчанию), mbBarBreak и mbBreak — в меню вводится новый столбец разделов, отделенный от предыдущего полосой (mbBarBreak) или пробелами

(mbBreak).

Свойство Checked, установленное в true, указывает, что в разделе меню будет отображаться маркер флажка, показывающий, что данный раздел выбран (см. на рис. 1, 2 раздел «Автосохранение»). Правда, сам по себе этот маркер не изменяется и в обработчик события OnClick такого раздела надо вставлять оператор типа

MAutoSave.Checked := not MAutoSave.Checked;

(в приведенном операторе подразумевается, что раздел меню назван

MAutoSave).

Еще одним свойством, позволяющим вводить маркеры в разделы меню, является RadioItem. Это свойство, установленное в true, определяет, что данный раздел должен работать в режиме радиокнопки совместно с другими разделами, имеющими то же значение свойства GroupIndex. По умолчанию значение GroupIndex равно 0. Но можно задать его большим нуля и тогда, если имеется несколько разделов с одинаковым значением GroupIndex и с RadioItem = true, в них могут появляться маркеры флажков, причем только в одном из них (на рис. 1, 2 свойство RadioItem установлено в true в разделах Опции 1 и Опции 2, имеющих одинаковое значение GroupIndex). Если вы зададите программно в одном из этих разделов Checked = true, то в

96

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

остальных разделах Checked автоматически сбросится в false. Впрочем, установка Checked = true лежит на программе; эта установка может выполняться аналогично приведенному выше оператору.

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

Для каждого раздела могут быть установлены во время проектирования или программно во время выполнения свойства Enabled (доступен) и Visible (видимый). Если установить Enabled = false, то раздел будет изображаться серой надписью и не будет реагировать на щелчок пользователя. Если же задать Visible = false, то раздел вообще не будет виден, а остальные разделы сомкнутся, заняв место невидимого. Свойства Enabled и Visible используются для того, чтобы изменять состав доступных пользователю разделов в зависимости от режима работы приложения.

Кроме того, предусмотрена возможность ввода в разделы меню изображений. За это ответственны свойства разделов Bitmap и ImageIndex. Первое из них позволяет непосредственно ввести изображение в раздел, выбрав его из указанного вами файла. Второе позволяет указать индекс изображения, хранящегося во внешнем компоненте ImageList. Указание на этот компонент вы можете задать в свойстве Images компонента MainMenu. Индексы начинаются с 0. Если вы укажете индекс -1 (значение по умолчанию), изображения не будет.

Мы рассмотрели все основные свойства объектов, соответствующих разделам меню. Основное событие раздела — OnClick, возникающее при щелчке пользователя на разделе или при нажатии «горячих» клавиш быстрого доступа.

Отображение диаграмм

Для графического представления числовых данных предназначен компонент TChart. Компонент содержит большое количество специфичных свойств, событий и методов.

Компонент TChart является контейнером объектов Series типа

TChartSeries - серий данных, характеризующихся различными стилями отображения. Каждый компонент может включать несколько серий. При отображении графика каждая серия соответствует одной кривой на графике. При отображении диаграммы для некоторых видов диаграмм можно наложить друг на друга несколько различных серий. В этом случае можно задать для одного компонента TChart несколько серий одинаковых данных с разными типами диаграммы. Делая в каждый момент времени активной

97

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

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

Создание графика

Для того, чтобы создать график, необходимо разместить компонент TChart на форме или воспользоваться мастером. Если использовать непосредственное размещение на форме, то будет создана диаграмма без использования базы данных. При создании диаграммы с помощью мастера можно применить режим Data Base Chart (Использовать базу данных).

Мастер запускается командой File | New |Other, после чего в появившемся окне необходимо выбрать вкладку Business, на ней - пиктограмму TeeChartWizard (Мастер диаграмм), затем разработчик может сделать предварительные настройки. Сначала выбирается один из переключателей:

Data Base Chart (Использовать базу данных) или Non Data Base Chart

(Не использовать базу данных). Затем выбирается внешний вид диаграммы: она может быть двухмерной или трехмерной, что определяется переключателем 2D/3D. Далее по желанию устанавливаются или сбрасываются флажки. Флажок Show Legend (отображать условные обозначения) определяет наличие дополнительной панели, на которой указывается соответствие цветов фрагментов диаграммы указанным значениям. Флажок Show Marks (Отображать метки) включает небольшие желтые подсказки каждого фрагмента диаграммы. На этом создание диаграммы с помощью мастера заканчивается. После щелчка на кнопке Finish в дизайнере форм появится новая форма, на которой будет расположен объект Chart. Если был выбран режим Non Data Base Chart, то он будет заполнен набором случайно сгенерированных значений, которые в дальнейшем заменятся на необходимые данные. Таким образом, в форме будет создана заготовка (рис.1).

Рис.1.Заготовка графика в форме

98

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

После двойного щелчка мыши по этой заготовке будет произведен переход в редактор графика. В среде этого редактора можно установить свойства графика и его серий. Содержимое редактора графика представляет собой табулированный блокнот. Для нового графика первой всегда показывается закладка Chart и для страницы Chart - закладка Series (рис.2).

Рис.2. Редактор графика

Каждая из закладок на странице Chart предназначена для установки параметров того или иного компонента графика:

Series - содержит серии графика. Серией называется набор точек графика. На графике серии соответствует отдельная линия или ряд столбцов. Если в графике несколько серий, то будет визуализировано несколько линий или рядов столбцов.

General - устанавливает общие параметры графика, такие как объемность графика, отступы от краев, возможность увеличения (Zoom) и др.

Axis - устанавливает свойства осей (рис.3.).

99

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»

Рис.3. Редактор графика - окно установки свойств осей

В области ShowAxis определяется, для какой оси устанавливаются параметры - левой, правой, верхней или нижней. На странице, определяемой закладкой Scales, устанавливаются свойства масштаба значений по оси. Automatic устанавливает автоматическое масштабирование данных по оси - минимум и максимум вычисляются динамически, исходя из текущих значений серии. При отмене автоматического масштабирования можно установить автоматическое масштабирование минимального (Minimum) или максимального (Maximum) значения (отметка Auto). Для установки значения максимума и (или) минимума вручную следует нажать соответствующую кнопку Change. Шаг масштаба по оси выбирается автоматически, если в Desired Increment установлено значение 0. Установить фиксированное значение шага можно, нажав кнопку Change. Закладка Title позволяет установить текст заголовка по оси, угол расположения заготовки и шрифт, которым заголовок выводится. Закладка Labels задает параметры меток для оси. Закладка Tiks устанавливает параметры самой линии оси.

Titles - определяет заголовок графика, шрифт, выравнивание и др.

Legend - задает параметры легенды. Легенда - это область графика, где приводится информация о графике. Легенда служит для пояснения графика.

Panel - определяет параметры панели, на которой располагается график. Paging - устанавливает параметры многостраничного графика.

Walls - задает "стенку" графика.

100

Родионов К.А. Лабораторный практикум «Программирование на языке Pascal»