- •Министерство образования российской федерации
- •Северо-западный государственный заочный технический университет
- •В. Л. Макаров
- •Прикладное программирование
- •Конспект лекций с. Петербург 2003г
- •Окно формы. Форма является основой большинства приложений , так как на ней размещаются другие управляющие компоненты. Внешний вид окна формы показан на рисунке 1.3.
- •3.Основные свойства, методы и события формы
- •Компоненты vcl
- •5.1. Кнопки управления
- •5.2. Окно редактирования Edit
- •5.3 Многострочные окна редактирования Memo и RichEdit
- •5.4 Компоненты выбора из списков – ListBox, CheckListBox, ComboBox
- •5.5 Элемент управления Label (надпись или метка)
- •5.6 Элемент управления RadioButton (Радиокнопка)
- •5.7 Полосы прокрутки (ScrollBar)
- •5.9 Компонент Timer(Таймер)
- •5.10 Компонент StringGrid ( таблица строк)
- •5.11 Компонент Chart – графики и диаграммы
- •5.12 Компонент f1Book
- •6. Создание меню
- •7. Системные диалоги
- •7.1 Диалоги открытия и сохранения файлов
- •7.2 Диалог выбора шрифта(компонент FontDialog )
- •7.3 Диалог выбора цвета(компонент ColorDialog )
- •7.4Диалоги поиска и замены текста(компоненты FindDialog и ReplaceDialog )
- •8.1 Структура головного файла проекта
- •8.2 Структура файлов модулей форм
5.12 Компонент f1Book
Этот компонент расположен на странице ActiveX и позволяет встраивать в приложение таблицы типа Exel , которые пользователь может заполнять соответствующими числами, а компонент будет производить по заданным формулам вычисления и тут же отображать их результаты в соответствующих ячейках. В таблицу можно встроить диаграммы и графики различных типов, при этом все изменения , вносимые в данные таблицы , немедленно будут отображаться на диаграммах. Таким образом, этот компонент позволяет включать в приложение различные бланки смет, счетов, ведомостей и различные таблицы, производящие статистические или технические расчеты.
Для создания электронной таблицы необходимо перенести на форму компонент F1Book щелкнуть на нем правой клавишей мыши. В открывшемся контекстном меню необходимо выбрать команду Workbook Designer, в результате выполнения которой появится диалоговое окно проектирования, которое напоминает несколько упрощенный вариант среды Exel . Проектирование таблицы практически производится по тем же правилам , что и в Exel. Окно проектирования(Workbook Designer) позволяет писать в ячейках необходимые надписи, задавать различные атрибуты шрифта, выполнять выравнивание текста внутри ячеек и т.п. Наряду с текстовой и цифровой информацией в ячейки таблицы можно вносить и формулы, с помощью которых мгновенно осуществляется пересчет значений в зависимых столбцах таблицы при изменениях в независимых столбцах. Для построения диаграммы необходимо в начале выделить курсором данные таблицы , которые должны отображаться в диаграмме. Затем, вызвать диаграмму, нажав быструю кнопку, расположенную в крайнем правом ряду панели инструментов окна проектирования. После выделения курсором рамки, в которой должна отображаться диаграмма , появляется диалоговое окно с набором различных диаграмм и графиков. Из этого набора выбирается нужный тип диаграммы(графика) и ее атрибуты.
На рисунке 5.21 показан пример проектирования таблицы , характеризующую динамику движения учебников в школьной библиотеке. Вычисляемыми столбцами таблицы являются: Суммарная стоимость и Осталось в наличии. Кроме того вычисляются суммарные показатели по общему количеству учебников , по количеству выданных и оставшихся в наличии учебников. Круговые диаграммы построены для столбцов Количество, Выдано и Осталось в наличии.
Рис.5.21 Пример использования компонента F1Book.
6. Создание меню
Меню является распространенным атрибутом современных Windows – приложений. В Windows используется два типа меню : главное меню формы и контексное меню , связанные с интерфейсными элементами форм. Этим типам меню соответствуют два компонента C++Builder MainMenu и PopuMenu. Для создания меню испоьзуется специальный редактор – MenuDesigner, позволяющий конструировать, редактировать или переставлять элементы меню. Чтобы добавить меню к форме во время проектирования , следует :
Со страницы Standard палитры компонентов выбрать компонент MainMenu или PopuMenu и добавить их к форме.
Дважды щелкнуть на компоненте, чтобы открыть MenuDesigner.
Ввести текст для первого элемента горизонтального меню в свойстве Caption.
После нажатия клавиши Enter появится первый элемент горизонтального менню.
Для получения элементов вертикального меню необходимо нажать на клавиатуре стрелку “вниз”,а в свойстве Caption ввести заголовок элемента.
После нажатия клавиши отображает Enter имя элемента вертикального меню появится ниже элемента горизонтального меню.
Повторять пункты 5 и 6 до тех пор , пока не будут добавлены все необходимые элементы вертикального меню.
Чтобы добавить следующий элемент горизонтального меню необходимо щелкнуть мышкой на пустой метке, расположенной справа от первого элемента горизонтального меню, а затем повторить пункты 3 и 4.
При необходимости логической группировки элементов меню, можно использовать разделительные полосы. Для создания меню с разделительной полосой нужно ввести одиночный дефис (-) как свойство Caption для соответствующего элемента меню. Можно обеспечить пользователям доступ к меню и командам меню с клавиатуры через клавиши быстрого доступа.. Эти клавиши обеспечивают пользователю доступ к меню и командам меню путем использования клавиши Alt в сочетании с подходящей буквой. Например, для доступа к меню “файл” пользователь может применить комбинацию клавиш Alt + Ф . Чтобы добавить клавиши быстрого доступа к меню , необходимо поставить перед выбранной буквой заголовка меню символ & (амперсанд), т.е. в качестве заголовка элемента меню для рассматриваемого примера нужно ввести “&файл”.
Из других, наиболее распространенных свойств элементов меню, можно выделить:
Свойство Checked – при установке значения этого свойства равным true , возле выбранного пункта меню появляется отметка в виде галочки.
Свойство Enabled - при установке значения этого свойства равным false , элемент меню становится недоступным.
Свойство Bitmap – это свойство содержит графическое изображение , которое появляется на этапе выполнения слева от пункта меню.
Основное событие раздела меню - OnClick, возникающее при щелчке пользователя на разделе или при нажатии "горячих" клавиш и клавиш быстрого доступа.
Пример построения меню показан в приложении, программный код которого приведен на рисунке 6.1. В интерфейсе приложения на форме расположены следующие компоненты:
MainMenu – компонент главного меню;
PopuMenu - компонент контекстного меню;
Label1- метка;
Button1- кнопка;
RadioButton1 и RadioButton2 - радио кнопки.
Основные свойства элементов, установленные во время проектирования показаны в таблице 6.1.
Таблица 6.1.
-
Компонент
Свойство
Значение
Форма
Caption
Создание меню
MainMenu
Caption
Цвет формы (N1)
Caption
&Красный (N4)
Caption
&Бирюзовый (N5)
Caption
&Синий (N6)
Caption
Размер формы (N2)
Caption
Ширина (N7)
Caption
Высота(N8)
Caption
Во весь экран (N9)
Caption
Параметры шрифта(N3)
Caption
Размер(N10)
Caption
Стиль (N11)
Caption
Цвет (N12)
PopuMenu
Caption
Параметры метки(N13)
Caption
Текст слева(N14)
Caption
По центу(N15)
Caption
Справа(N16)
Метка
Caption
Label1
Кнопка
Name
Ввод текста(Button1)
Радио кнопка
Caption
Свойство Cheeked
Caption
Свойство Enabled
Другие свойства компонентов принимаются по умолчанию
//Программный код приложения по созданию и изучению свойств меню
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h")
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
//Ввод текста
{
Label1->Caption= "Изучение возможностей меню";
}
//---------------------------------------------------------------------------
//Главное меню
void __fastcall TForm1::N4Click(TObject *Sender)
//Изменение цвета фона формы
{
Form1->Color=clRed;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
Form1->Color=clAqua;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N6Click(TObject *Sender)
{
Form1->Color=clBlue;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N7Click(TObject *Sender)
{
//Изменение размеров формы
Form1->Width=700;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N8Click(TObject *Sender)
{
Form1->Height=700;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N9Click(TObject *Sender)
{
Form1->WindowState=wsMaximized;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N10Click(TObject *Sender) //Изменение параметров шрифта
{
Label1->Font->Size=18;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N11Click(TObject *Sender)
{
Label1->Font->Name="Time New Roman";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N12Click(TObject *Sender)
{
Label1->Font->Color=clRed;
}
//---------------------------------------------------------------------------
//Контекстное меню
void __fastcall TForm1::N14Click(TObject *Sender)
{
//Изменение параметров метки
Label1->Alignment= taLeftJustify;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N15Click(TObject *Sender)
{
Label1->Alignment=taCenter;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N16Click(TObject *Sender)
{
Label1->Alignment=taRightJustify;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
Form1->N4->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Form1->N6-> = false;
}
//-------------------------------------------------------------
Рис.6.1 Программный код приложения, характеризующего свойства меню.
В программном коде( Рис.6,1) показано, что с помощью главного меню(MainMenu) в приложении изменяются цвета фона формы , ее размеры и параметры шрифта, а с помощью контекстного меню(PopuMenu) задаются различные значения свойству метки(Label1),определяющему расположение текста относительно рамки метки.
Радио кнопки RadioButton1 и RadioButton2 служат для изменения значений свойств Checked и Enabled главного меню.