Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурРаб_ВМИП.doc
Скачиваний:
4
Добавлен:
03.11.2018
Размер:
760.83 Кб
Скачать

6.1.5. Элементы управления программой

Компоненты Button (кнопка), BitBtn (кнопка с изображением) широко используются для управления программами. Связанный с кнопкой алгоритм управления реализуется в обработчике события OnClick. В отличие от других видимых компонентов кнопка класса TButton является элементами операционной системы Windows и поэтому не может изменить свой цвет произвольным образом – она меняет его вместе с изменением палитры Windows. Шрифт надписи на кнопке может менять свой стиль и размер, но компонент игнорирует изменение его цвета.

Графическая кнопка класса TBitBtn находится на палитре Additional, и представляет собой разновидность стандартной кнопки Button. Её отличительная особенность наличие свойства Glyph, с помощью которого определяется растровое отображение на поверхности кнопки.

Свойство Kind определяет одну из стандартных разновидностей кнопки TBitBtn. Стандартные значения кнопки, используемой в окнах диалога, приведены в табл. 6 (второй столбец).

Как и в кнопках TButton, пользователь не может управлять цветом поверхности кнопки, но может менять цвет надписи (Caption) на ней. Стандартный размер изображения для размещения на кнопке равен 16х16 пикселов. Количество изображений в растре задается свойством NumGlyph.

При большом количестве используемых кнопок в качестве органов управления весьма удобно располагать их на контейнере типа TPanel. За счет использования в нем двух кромок – внешней и внутренней, компонент имеет средства создания различных эффектов объемности. Свойство TBorderStyle=bsNone.bsSingle – определяет стиль рамки: bsNone – нет рамки, bsSingle – компонент по периметру обводится линией, толщиной в 1 пиксель.

В качестве элемента управления программой можно использовать пункты главного меню формы MainMenu.

Компонент класса TMainMenu определяет главное меню формы. Пункты меню создаются с использованием Инспектора Объектов и свойства Caption, каждый раз закрепляя надпись очередного пункта меню нажатием клавиши Enter. Чтобы вставить в меню разделительную линию, также используется свойство Caption. Для этого в качестве значения свойства Caption вместо текста надо ввести символ дефиса (-) см рис.7. Для создания многоуровневого меню, необходимо активизировать нужный пункт меню и нажать клавиши Ctrl + . На рисунке 7 показан пример многоуровневого меню.

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

Рис.7. Многоуровневое меню.

C помощью свойства ShortCut главного меню устанавливается сочетание клавиш для прямого вызова команд меню. Нажимая эти клавиши, пользователь может активизировать нужный пункт меню.

В IDE имеется возможность связывать с пунктами меню небольшие изображения. Эти изображения можно задать свойством BitMap, которое появляется слева от пункта меню (см. рис. 7). Введение значка повышает его наглядность с одной стороны, а с другой - способствует унификации значков в рамках механизма действия.

Компонент класса TLabel предназначен для размещения на форме различного рода надписей. Для этого служит центральное свойство компонента Caption. С помощью свойства Font можно разнообразить вид надписи. С помощью свойства AutoSize можно разрешить компоненту автоматически изменять свои размеры так, чтобы полностью отобразить текст Caption с учетом установленного шрифта.

Компонент класса TEdit представляет собой однострочное редактируемое поле, с помощью которого можно вводить и отображать достаточно длинные текстовые строки. Свойство Text отображает компонентом строку. С помощью обработчика события OnChange программа может контролировать вводимый пользователем текст.

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

Edit1.ShowHint:=True; //отображение всплывающей подсказки

Для передачи клавиатурного ввода в нужный компонент, например Edit1, используется метод фокуса ввода: Edit1.SetFocus.

6.1.6. Рекомендации при создании табличного интерфейса в IDE

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

1. Создать новый проект, сохранить его в папке «KR»: модуль под именем Tabl.pas, а код самого проекта под именем GraphTabl.dpr (*.lpr).

2. Разместить на форме компоненты, обеспечивающие требуемые режимы работы приложения. Например:

  • строковую таблицу StringGrid1 – для ввода исходных данных, их редактирования и вывода результатов вычислений;

  • кнопки Button1 – ButtonN (рис. 8), BitBtn1 – BitBtnN (или главное меню MainMenu1) – как средства для запуска расчета, редактирования содержимого ячеек таблицы, очистки расчетных данных, вызова средств построения графика и решения индивидуальных задач;

  • метки Label1 – LabelN – для пояснительных надписей к каждому элементу интерфейса приложения и вывода расчетных данных;

  • однострочные редакторы Edit1– EditN – как средства ввода и редактирования данных.

Рис. 8. Интерфейс табличного представления данных в IDE.

3. Для всех компонентов, включая саму форму, установить свойства, соответствующие выполняемым ими функциям.

4. Сохранить изменения в проекте.

5. Создать необходимые процедуры и обработчики событий:

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

Формирование взноса для конверсии, а также вычисление комиссионного сбора по процентным ставкам и результирующей суммы выдачи при конверсии рубля производится по формулам (1) – (3):

Взнос = СуммаКонверсии. (1)

Комиссионные = Взнос  ПроцентСтавка / 100; (2)

СуммаВыдачи = (Взнос – Комиссионные) / КурсРубля; (3)

При написании процедуры Calculation необходимо опубликовать процедуру и описать ее, например:

. . .

public { Public declarations }

procedure Calculate; //объявление процедуры

end;

. . .

implementation

procedure TForm1.Calculate; //описание процедуры

var . . .

begin

. . .

end;

. . . В теле процедуры предусмотреть следующее:

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

  • функции преобразования текста в число для расчета требуемых показателей,

  • проверку условия не обращение в 0 знаменателя при расчете конвертируемой суммы по формуле (3),

  • расчет в цикле заданных показателей;

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

5.2. Для заполнения «шапки» таблицы с использованием фиксированных ячеек необходимо создать процедуру обработки события OnActivate (OnGreate) Form1. В этой процедуре необходимо отразить:

  • заполнение ячеек буквенными кодами валют, курсами рубля, процентными ставками,

  • очистку полей ввода средств редактирования,

  • отображение текущей даты в момент запуска проекта.

  • отображение всплывающих подсказок по отношению к величине вводимых данных с клавиатуры,

5.3. Для заполнения ячеек таблицы расчетными показателями создать обработчик события OnClick для кнопки «Принято», при выполнении которого вызывается процедура Calculation и столбцы «Взнос», «Комиссионные» и «СуммаВыдачи» заполняются значениями, рассчитанные по формулам (1) – (3).

5.4. Для редактирования данных ячеек создать обработчик события OnClick для кнопки «ОК», при выполнении которого данные из «Редактора ячеек» при нажатии кнопки заносятся в таблицу по текущим координатам. А обработчик события OnDblClick для ячеек таблицы StringGrid1, позволил бы двойным щелчком мыши по одной из ячеек таблицы переносить данные из таблицы в окно «Редактора ячеек»l, для их дальнейшего редактирования, в случае изменении курса рубля или процентных ставок. Доступ к координатам текущей ячейки обеспечивается с помощью свойств Col и Row компонента StringGrid1.

5.5. Для увеличения /уменьшения количества строк /столбцов динамически в процессе выполнения программы создать обработчики события OnClick для соответствующих кнопок.

6. Сохранить изменения в проекте. Откомпилировать проект.

7. Запустить проект на выполнение и опробовать действие кнопок Button1 – ButtonN. Внести в однострочный редактор сумму для конверсии и проконтролировать результат расчетов в соответствующих ячейках таблицы.

8. Создать адекватные процедуры для кнопок BitBth1 – BitBth 6. Для всех кнопок (кроме График), расположенных на панели, создать методы, при осуществлении которых возникают адекватные события: очистки столбцов от расчетных данных, завершения работы, нахождения минимального (максимального или среднего) значений, сортировка элементов массива, поиска элемента в таблице по образцу.

9. Для кнопки График создать обработчик события OnClick, при выполнении которого, открывается вторая форма, используемая для создания графического интерфейса (см. пункт 6.2.6).