Основы_C++Builder_часть_1_версия_4
.pdf11
2.3 Интерфейс С++Builder версий 2007 и 2009
Начиная с версии С++Builder 2006 интерфейс среды приобрел значительные изменения. Все элементы среду размещаются внутри единого окна с использованием настраиваемых инструментальных панелей. Окно системы С++Builder 2009 показано на рисунке 2.4.
Рисунок 2.4 − Общий вид интерфейса С++Builder 2009
Состав стандартных библиотек Палитры компонентов среды реализован в виде настраиваемого меню в правой нижней части окна, в окне Инструментальной палитры (Tool Palette), показанного на рисунке 2.5.
12
Рисунок 2.5 – Вид Палитры компонентов в среде C++Builder 2009
2.4 Состав Палитры компонентов
Палитра компонентов содержит стандартные библиотеки визуальных (допускаются и невизуальные) компонентов Visual Component Library (VCL). Ее состав формируется с помощью раздела Component из системного меню. Стандартная минимальная настройка среды C++Builder версии 6.0 содержит следующие страницы на панели инструментов:
1)Standard - включает стандартные элементы пользовательского интерфейса окон Windows: главное меню, всплывающее меню, текстовую надпись, однострочный редактор, многострочный текстовый редактор, кнопку, маркер, переключатель, прокручиваемый список, выпадающий список, полосу прокрутки, группы компонентов и переключателей, рамку;
2)Additional - включает дополнительные элементы пользовательского интерфейса: кнопку с картинкой, кнопку панели инструментов, маскируемый строчный редактор, текстовую таблицу, таблицу графических объектов, рисунок, геометрическую фигуру, рельефный элемент, зону прокрутки, выпадающий список с маркерами и график функции;
3)Win32 – набор элементов пользовательского интерфейса ОС
Windows XP/Vista/7;
4) System – набор компонентов системных операций (таймер, плееры и
др.);
5) Data Access - включает элементы систем управления базами данных. В C++Builder 6 большинство компонентов перенесено с нее на страницу BDE;
13
6)Data Controls − включает элементы управления, редактирования, отображения, ввода и вывода данных из базы данных;
7)dbExpress – компоненты для связи с данными с помощью dbExpress (начиная с С++Вuilder 6);
8)BDE − доступ к базам данных через Borland Database Engine (BDE), введен в C++Builder 6;
9)ADO или dbGo (начиная с C++Builder 2006) – связь с базами данных через Active Data Objects (ADO) – множество компонентов ActiveX;
10)InterBase - включает набор компонентов доступа данных, которые обеспечивают средство доступа к базе данных среды InterBase;
11)InterBase Admin − компоненты доступа к службам InterBase;
12)Internet Express – построение приложений Internet Express – одновременно приложений сервера Web и клиента баз данных с параллельными потоками;
13)Internet − содержит компоненты для работы с ресурсами глобальной сети;
14)FastNet – различные протоколы доступа к сети Интернет;
15)Decision Cube – позволяет представлять данные в кубическом виде для многомерного анализа данных;
16)QReports – формирует отчеты баз данных (отсутствует после версии
C++Builder 2006);
17) Rave − компоненты для подготовки отчетов (начиная с C++Builder 2006);
18)Dialogs – содержит стандартные диалоговые окна для работы с именами файлов, шрифтов, выбора палитры и принтера, печати;
19)Win 3.1 – компоненты в стиле Windows 3.1;
20)Vision Cube - компоненты для многомерного анализа данных (отсутствует после версии C++Builder 2006);
21)Samples – набор готовых примеров приложений;
22)ActiveX – примеры компонентов ActiveX;
23)WebService – компоненты клиентских приложений Web, использующие доступ к службам с помощью SOAP (начиная с C++Builder 6);
24)Internet – компоненты для создания серверов Web;
25)WebSnap – компоненты для создания серверов Web cо сложными страницами, управляемые данными (начиная с версии 6.0);
26)FastNet – различные протоколы доступа к ресурсам Internet (начиная с версии 6.0);
27)Office2k, или OfficeXP, или Office97 – компоненты-оболочки VCL
для серверов СОМ офисных приложений Microsoft (начиная с C++Builder 5, но они размещались в Servers);
28)COM+ − компонент доступа к каталогу COM+ с данными по конфигурации технологии COM+;
14
29) IW Standard − компоненты форм приложений IntraWeb (начиная с версии C++Builder 2006);
30)IW Control − управляющие компоненты приложений IntraWeb (начиная с C++Builder 2006);
31)IW Standard 3.2 − дополнительный набор компонентов IntraWeb (начиная с C++Builder 2006);
32)IW WAP − компоненты приложений IntraWeb, использующие стандартный протокол WAP для связи в Интернете (телефоны, пейджеры и т.п.), введена начиная c C++Builder 2006;
33)IW Data − компоненты доступа к данным приложений IntraWeb (начиная с C++Builder 2006);
34)IW Data 3.2 − дополнительный набор компонентов доступа к данным приложений IntraWeb (начиная с C++Builder 2006);
35)IW Data WAP − компоненты доступа к базам данных приложений IntraWeb, использующие протокол WAP для связи в Интернете (начиная с
C++Builder 2006);
36)IndyClients − компоненты клиентских приложений Internet Direct (Indy), дающих доступ к протоколам Интернета (начиная с C++Builder 6);
37)IndyServers − компоненты серверных приложений Internet Direct (Indy) (начиная с C++Builder 6);
38)Indy I/O Handlers − вспомогательные компоненты приложений
Internet Direct (начиная с C++Builder 2006);
39)Indy Intercepts − вспомогательные компоненты приложений Internet Direct (начиная с C++Builder 2006);
40)Indy Misk − вспомогательные компоненты приложений Internet Direct (начиная с C++Builder 2006);
41)Indy SASL − компоненты поддержки Simple Authentication and Security Layer (SASL) в приложениях Indy (начиная с C++Builder 2006).
2.4.1Состав страницы Standard.
Рисунок 2.6 – Состав страницы Standard С++Builder версий 5 и 6
В составе страницы (рисунок 2.6) имеются следующие визуальные компоненты:
1)Frames – фреймы;
2)MainMenu – главное (системное) меню приложения;
3)PopupMenu – всплывающее меню;
4)Label – текстовая надпись;
5)Edit – однострочный редактор текста;
6)Memo – многострочный редактор текста;
7)Button – кнопка с меткой;
15
8)CheckBox – независимый логический двухпозиционный переключатель;
9)RadioButton − зависимый логический точечный переключатель для выбора пункта из списка;
10)ListBox – текстовый список;
11)ComboBox – однострочный редактор с выпадающим списком;
12)ScrollBar – полоса прокрутки;
13)GroupBox – группа связанных управляющих элементов;
14)RadioGroup – группа зависимых переключателей;
15)Panel – рельефная панель для управляющих элементов;
16)ActionList – поддержка списка действий, используемых с компонентами кнопок и разделов меню.
2.4.2Состав страницы Additional.
Рисунок 2.7 – Вид страницы Additional С++Builder версий 5 и 6
На странице (рисунок 2.7) размещаются следующие компоненты:
1)BitBtn – кнопка с пиктограммой;
2)SpeedButton – кнопка для создания панели инструментов;
3)MaskEdit – однострочный редактор текста с шаблоном;
4)StringGrid – таблица строк текста;
5)DrawGrid – таблица рисунков;
6)Image – графическая растровая вставка;
7)Shape – векторная графическая фигура;
8)Bevel – рельефный эффект (бордюры и канавки);
9)ScrollBox – область с прокруткой (скролингом);
10)CheckListBox – список переключателей;
11)Splitter – расщепитель;
12)StaticText – неизменная текстовая надпись;
13)ControlBar – строка состояния (статуса);
14)Chart – графики и диаграммы.
2.4.3Состав страницы Win32.
Рисунок 2.8 – Вид страницы Win32 С++Builder версий 5 и 6
Состав библиотеки Win32, показанной на рисунке 2.8:
1)TabControl – панель с закладками;
2)PageControl – панель страниц с различными наборами компонентов;
3)ImageList – набор пиктограмм;
16
4)RichEdit – текстовый редактор;
5)TaskBar – панель ручного задания параметра с помощью ползунка;
6)ProgressBar – индикатор процента выполнения задачи;
7)UpDown – кнопки увеличения-уменьшения численного значения параметра;
8)HotKey – горячая клавиша;
9)Animate – анимация;
10)DateTimePicker – часы-календарь;
11)MonthCalendar – календарь;
12)TreeView – просмотр дерева;
13)ListView – просмотр списка в стиле проводника Windows;
14)HeaderControl – панель с заголовками для некоторых кнопок;
15)StatusBar – панель состояния (статуса) приложения;
16)ToolBar – панель с кнопками инструментов;
17)CoolBar – дополнительная панель;
18)PageScroller – прокрутка закладок.
2.4.4Состав страницы System.
Рисунок 2.9 – Состав страницы System С++Builder версий 5 и 6
В состав библиотеки System (рисунок 2.9) включаются следующие компоненты:
1)Timer − таймер для отсчета временных интервалов;
2)PaintBox – графический растровый редактор;
3)Mediaplayer – проигрыватель файлов мультимедиа;
4)OLE Container – вставка OLE объекта.
2.4.5Состав страницы Dialogs.
Рисунок 2.10 − Состав компонентов библиотеки Dialogs С++Builder версий 5 и 6
В составе библиотеки (рисунок 2.10) имеются следующие компоненты:
1)OpenDialog – вызов диалогового окна открытия внешнего файла;
2)SaveDialog – окно диалога ввода имени файла сохранения данных;
3)OpenPictureDialog − окно диалога открытия графического файла;
4)SavePictureDialog − вызов диалогового окна для ввода имени файла при сохранении графических данных;
5)FontDialog – вызов окна диалога установки параметров шрифта;
6)ColorDialog – вызов диалогового окна выбора палитры цвета;
7)PrintDialog – вызов диалогового окна вывода на принтер;
8)PrinterSetupDialog − вызов диалогового окна настроек печати;
9)FindDialog – вывод диалогового окна для поиска данных;
17
10) ReplaseDialog – диалоговое окно для замены текстовых данных.
2.5 Инструменты и утилиты С++Builder
Графический редактор вызывается выбором пункта меню Tools/Image Editor. Он используется для создания файлов с рисунками и ярлыков приложений (пиктограмм).
В дополнение к инструментам, обсуждавшимся выше, существуют инструментальные средства, поставляемые с C++Builder:
- редактор баз данных формата Paradox, dBase, SQL - Database
Desktop;
- интегрированная утилита редактирования баз данных – Database
Explorer;
- утилита конфигурирования СУБД Borland Database Engine - BDE Configuration;
-Report Smith – генератор отчетов по базе данных;
-Local InterBase Server – локальная версия СУБД InterBase;
-утилита создания и выполнения SQL-запросов;
-встроенный и внешний отладчики приложения, позволяющие пройти пошагово по исходному тексту программы, выполняя по одной строке за раз,
иоткрыть просмотровое окно (Watch), в котором будут отражаться текущие значения переменных программы;
-компилятор командной строки – bcc32.exe;
-утилита WinSight32 для отслеживания сообщений Windows с целью наблюдения за системой сообщений Windows. Почти все события в среде Windows принимают форму сообщений. С++Builder дает полный доступ к сообщениям Windows и позволяет отвечать на них.
C++Builder в своем составе имеет интерактивные обучающие программы из меню Help/Interactive Tutors.
3Проект программы-приложения в среде C++Builder
3.1Общая структура проекта
Проект C++ включает следующие файлы:
–головной cpp-файл проекта, по умолчанию Project1.cpp;
–файл проекта с расширением bpr, выполненный на языке XML, используется только в версиях C++Builder до 2006;
–заголовочные h-файлы модулей форм с описанием класса формы;
–cpp-файлы реализации модулей форм с описанием обработчиков
18
событий;
–dfm-файлы описания ресурсов использованных форм;
– |
res − файл ресурсов проекта с пиктограммами, курсорами и т.п.; |
– |
hpp − файл с описанием нового компонента; |
–bpg – текстовый файл группы проектов;
–bpl – двоичный файл для работы с пакетами;
– |
bpk − двоичный файл компиляции пакетов; |
|
– |
tds – |
двоичный файл таблицы символов, используемый отладчиком |
проекта; |
|
|
– |
obj − |
откомпилированные файлы модулей проекта; |
–exe – исполняемый файл приложения, имя которого совпадает с головным файлом проекта;
–hpp – файлы новых компонентов пользователя в проекте;
–bpg, или bdsgroup, или groupprof – файл группы проектов;
–bpl и bpk – файлы пакетов проекта и компиляции пакета;
–ilc, ild, ilf и ils - файлы выборочной компоновки, позволяющие компилировать только измененные файлы модулей;
–dsk − текстовый файл с информацией о параметрах среды в последнем сеансе работы с проектом;
–пиктограмму (ярлык) приложения – графический файл с расширением ico;
– |
hlp − файл справочника приложения; |
– |
~cpp, ~h, ~dfm− файлы резервных копий предыдущих вариантов; |
–дополнительные файлы.
3.2 Структура головного файла проекта
C++Builder автоматически генерирует текст головного файла проекта, в который помещается функция WinMain (для приложений Windows). Изменять текст головного файла самостоятельно допускается только в отдельных случаях.
В начале головного файла проекта выполняется автоматическое подключения всех программных ресурсов приложения: заголовочных файлов (с помощью директивы #include), файлов ресурсов (функцией USERES), модулей форм (функцией USEFORM) и простых модулей проекта (функцией
USEUNIT).
Внутри защищенной секции тела функции WinMain выполняется инициализация данных формы (методом Application->Initialize) и создание автоматически генерируемых форм приложения вызовом встроенного в класс приложения Application метода CreateForm. В разделе cath тела WinMain определение собственной обработки исключительных ситуаций. Ниже показывается пример текста головного
19
файла с тремя формами. В конце тела WinMain вызывается оператор return, закрывающий приложение кодом успешного завершения 0.
#include <vcl.h> |
|
|
#pragma hdrstop |
|
|
USERES("Project16.res"); |
// Подключение ресурсов |
|
USEFORM("mainform.cpp", FormMain); |
// Подключение формы |
|
USEFORM("UnitGraph.cpp", FormGraph); |
// Подключение формы |
|
USEUNIT("data.cpp"); |
|
// Подключение модуля |
//--------------------------- |
|
|
Главная функция -------------- |
|
WINAPI WinMain(HINSTANCE, |
// первый дескриптор приложения |
|||
|
HINSTANCE, |
// второй дескриптор приложения |
||
|
LPSTR, |
// указатель на строку параметров |
||
|
int) |
|
|
|
{ try |
|
// защищенная секция |
||
{ Application->Initialize(); |
// Инициализация данных |
|||
Application->CreateForm(__classid(TFormMain),&FormMain); |
||||
Application->CreateForm(__classid(TFormGraph), |
||||
&FormGraph); // форм |
|
|
|
|
|
Application->Run(); // Запуск приложения |
|||
} // конец защищенной секции |
|
|||
catch (Exception &exception) |
// обработка исключений |
|||
{ Application->ShowException(&exception); // обработка |
||||
} // конец секции обработки исключений |
||||
return 0; // возвращение кода успешного завершения |
||||
} |
// конец главной функции |
3.3 Общая структура модулей форм
Заголовочный файл в общем случае содержит описания класса формы, внутри которого автоматически объявлены все используемые визуальные компоненты и отмеченные пользователем события. Структура этого файла аналогична заголовочному файлу для языка программирования С++. Внутри файла реализации модуля имеется пустой конструктор формы, после которого описываются обработчики событий компонентов формы.
Пример заголовочного файла модуля:
#ifndef Unit1H |
|
#define Unit1H |
|
#include <Classes.hpp> |
// подключение модулей среды |
#include <Controls.hpp> |
|
#include <StdCtrls.hpp> |
|
#include <Forms.hpp> |
|
//---------------------------------------------------- |
|
class TForm1 : public TForm |
// описание класса формы |
20
{__published: // Секция визуальных компонентов
…// Объявление полей-компонентов
void __fastcall Button1Click(TObject *Sender);
private: |
// |
защищенная секция пользователя |
public: |
// |
открытая секция пользователя |
__fastcall TForm1(TComponent* Owner); };//------------------
extern PACKAGE TForm1 *Form1;
#endif // Конец заголовочного файла
Описание событий производится программистом для соответствующих функций членов класса формы в cpp-файле модуля
#include "Unit1.h"
#pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
//------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner) |
// конструктор формы |
{ |
|
}//--------------------------------------------------- |
|
void __fastcall TForm1::Button1Click(TObject *Sender)
{ |
Form1->Close(); |
// закрытие формы |
}// |
-------------------------------------------------- |
|
3.4 Задание параметров приложения
Задание параметров приложения производится с помощью раздела главного меню Project/Options (Ctrl+Shift+F11). При этом вызывается диалоговое окно настроек, показанное на рисунке 3.1.
На странице Application задаются параметры приложения в полях:
1)Title – строка для задания заголовка приложения;
2)Help – имя файла справки приложения;
3)ico – пиктограмма приложения;
4)Target file extension – тип расширения приложения (exe - по умолчанию).
На странице Version Info указывается информация о версии приложения: номера (версии, модификации, реализации и сборки), наименование фирмы-разработчика и описание.