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

Основы_C++Builder_часть_1_версия_4

.pdf
Скачиваний:
120
Добавлен:
29.02.2016
Размер:
715.35 Кб
Скачать

41

5.3.3 Программирование всплывающих меню.

Всплывающее меню имеет вид одной колонки меню, вызываемого при выполнении кликом правой кнопки мыши по определенному элементу приложения. В С++Builder всплывающее меню программируется с помощью компонента PopUpMenu из страницы Standard. Свойства компонента PopUpMenu аналогичны MainMenu. Аналогично с помощью Дизайнера меню разрабатывается состав всплывающего меню.

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

6 Программирование графической информации в приложениях

В C++Builder существуют три способа графической информации:

1)вывод заранее приготовленных изображений, например, с помощью встроенного графического редактора Image Editor;

2)использование автофигур с помощью компонента Shape из библиотеки Additional;

3)непосредственное программирование графики.

Для рисования из подпрограмм можно использовать различные компоненты, которые имеют свойство Canvas. Наиболее удобен для организации рисования и отображения готовых ресурсов компонент Image из страницы Additional.

Список компонентов для работы с графическими данными в С++Builder:

1)Image (страница Additional) – отображение готового изображения;

2)PaintBox (страница System) – добавляет область для рисования;

3)DrawGrid (страница Additional) – отображение графических данных

вячейках таблицы;

4)Chart (страница Additional) – построение графиков и диаграмм по численным данным;

5)Chartfx (страница ActiveX) – редактор графиков и диаграмм;

6)F1Book (страница ActiveX) – компонент, аналогичный странице

Microsoft Excel;

7)VtChart (страница ActiveX) – построение графиков и диаграмм по численным данным;

8)Animate (страница Win32) – воспроизведение анимационных файлов без аудиоданных;

9)MediaPlayer (страница System) – воспроизведение аудио- и видеофайлов;

42

10)ProgressBar (страница Win32) – строка с изображением процента выполнения задачи;

11)Gauge (страница Samples) – пример использования компонента для отображения хода процесса.

6.1Вывод готовых графических изображений

Готовые графические изображения, хранящиеся в файлах с расширениями bmp, ico, wmf, удобно выводить на форме с помощью компонента Image, расположенного на странице Additional. Его основные свойства показываются в таблице 6.1.

Таблица 6.1 - Основные свойства компонента Image

Свойство

Описание свойства

Autosize

При true автоматически подгоняет размер компонента до размера рисунка,

 

загруженного в Picture

Stretch

при true подгоняет размеры рисунка до размеров компонента

Center

центрирует изображение на площади

Transparent

при true устанавливает прозрачность отображения.

Picture

Отображаемое компонентом изображение

В свойство Picture можно добавить готовый файл рисунка с помощью окна редактора Picture Editor (рисунок 6.1). Для этого следует использовать кнопку Load. Нажатием кнопки Clear очищается рисунок от ранее созданного изображения.

Рисунок 6.1 – Окно редактора рисунка компонента Image в С++Builder 6.0

В программе возможно динамически загружать в Image новые изображения из внешних графических файлов форматов bmp, wmf и ico. Для этого в свойстве Picture используется метод LoadFromFile.

Пример модуля формы, которая загружает в Image1 рисунок из файла, выбираемого компонентом OpenPictureDialog:

#include <vcl.h> #pragma hdrstop #include "Unit1.h"

43

#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;

__fastcall TForm1::TForm1(TComponent* Owner) // Конструктор : TForm(Owner)

{ }

 

 

//-----------------

Загрузка рисунка из внешнего файла

--

void __fastcall TForm1::BitBtn1Click(TObject *Sender)

 

{if (OpenPictureDialog1->Execute()) { Image1->Picture->LoadFromFile

(OpenPictureDialog1->FileName);

}

}//---Коррекция границ рисунка при масштабировании окна формы void __fastcall TForm1::FormResize(TObject *Sender)

{Image1->Height=Form1->ClientHeight-BitBtn1->Height-10; Image1->Width=Form1->ClientWidth-10; BitBtn1->Top=Form1->ClientHeight-BitBtn1->Height-1;

}//----------------------------------------------------------

6.2 Построение графиков и диаграмм

Построение графиков и диаграмм выполняется с помощью компонента Chart из страницы Additional. При его установке на форму мышью следует указать его положение и размеры. Настройка параметров графика выполняется с помощью окна редактора графика (рисунок 6.2), которое вызывается двойным кликом мышью по компоненту Chart. Первоначально следует новый набор данных типа TSeries для графика, нажав кнопку Add на странице Series.

Рисунок 6.2 – Редактор параметров графика в С++Builder версии 6.0

В раскрывшемся диалоговом окне TeeChart Gallery следует указать на странице Standard тип отображения графика и трехмерные эффекты (маркер из поля 3D). В поле страницы Series появится новый набор Series1. Вид окна типов графика для версии С++Builder 6.0 показывается на рисунке 6.3.

44

Очистка набора точек выполняется встроенным методом Clear(). Добавление новой координатной точки в объект TSetries осуществляется с помощью встроенного метода, который имеет следующий формат:

Объект_TSeries->AddXY(значение X, значение Y, ” комментарий”, цвет);

Пример добавления двухмерных точек в набор данных графика:

Series1->Clear(); // Очистка данных графика for(int i=0;i<N;i++) // Цикл добавления точек

Series1->AddXY(X[i],Y[i],"",clRed);

Рисунок 6.3 - Определение типа графика в окне TeeChart Gallery

На странице Legend следует запретить отображение легенды графика, убрав маркер в позиции Visible. На странице Titles задается название графика (по умолчанию − TChart); на странице Panel определяется цвет его фона.

На рисунках 6.4 и 6.5 отображаются варианты двухмерного графика без легенды и трехмерного графика с легендой.

Рисунок 6.4 − Общий вид линейного графика без легенды

45

Рисунок 6.5 - Вид линейного графика с 3D-эффектом с легендой

График можно сохранить во внешнем bmpили wmf-файле, используя встроенные свойства Chart:

1)SaveToBitmapFile(имя_файла) – сохранение изображения графика

врастровый bmp-файл;

2)SaveToMetafile(имя_файла) – сохранение изображения графика в

векторный wmf-файл.

6.3 Использование рисунков автофигур

В палитре Additional имеется компонент Shape для изображения стандартных автофигур, показанных на рисунке 6.6. Вид фигуры указывается значением из списка свойства Shape:

stCircle – круг;

stEllipse – эллипс;

stRoundRect – прямоугольник со скругленными углами;

stRectangle – прямоугольник;

stRoundSquare – квадрат со скругленными углами;

stSquare – квадрат.

Рисунок 6.6 - Примеры автофигур компонента Shape

Свойство компонента Brush (кисть) является объектом типа TBrush описывает с помощью вложенных свойств (подсвойств): цвет (Brush.Color)

46

и стиль (Brush.Style) заполнения фигуры. Свойство Pen (перо) определяет тип линий фигуры.

6.4 Библиотека изображений компонента ImageList

Компонент ImageList из палитры Win32 предназначен для формирования набора пиктограмм (ярлыков), которые используются другими компонентами программы (MainMenu, PopUpMenu и др.). При двойном клике на компоненте раскрывается окно ImageList, показанное на рисунке 6.7. Компоненты MainMenu и PopUpMenu связываются с библиотекой ImageList путем указания в списке Images имени нужной библиотеки.

В окне Image List c помощью кнопки Add добавляются в библиотеку файлы типа ico или bmp. Кнопка Delete удаляет выделенный рисунок из библиотеки, а Clear – все рисунки. Каждому вносимому рисунку присваивается номер, который впоследствии указывается в поле ImageIndex связанных с библиотекой компонентов.

Рисунок 6.7 - Окно редактора содержимого библиотеки ImageList

47

Список литературы

1Архангельский, А. Я. Программирование в среде С++Builder. - 7-е

изд. − М. : Бином-Пресс, 2010. – 896 с.

2Архангельский, А. Я. C++ Builder 6: справ. Пособие/ в 2 кн. Кн. 2. :

Классы и компоненты / А. Я. Архангельский. - М. : Бином-Пресс, 2004. –

528 с.

3Архангельский, А. Я. Разработка прикладных программ для

Windows в C++Builder 5 / А. Я. Архангельский. - М. : Бином, 2000. – 256 с.

4Калверт, Ч. Borland C++Builder. Энциклопедия пользователя: пер. с англ. / Ч. Калверт. – Киев : ДиаСофт, 1997. – 848 с.

5Пахомов, Б. И. Самоучитель С/С++ и С++Builder 2007. – СПб. :

БВХ-Петербург, 2008. – 676 с.

6Тимофеев, В. В. C/C++ . Программирование в среде C++Builder 5 / В. В. Тимофееев. - М. : Бином, 2000. – 368 с.