BorlandC++Builder1

Автор: Пользователь скрыл имя, 09 Октября 2011 в 01:57, статья

Краткое описание

Borland C++ Builder - выпущенное недавно компанией Borland средство быстрой азработки приложений, позволяющее создавать приложения на языке C++, используя при этом среду разработки и библиотеку компонентов Delphi. В настоящей статье рассматривается среда разработки C++ Builder и основные приемы, применяемые при проектировании пользовательского интерфейса.

Оглавление

Введение
Среда разработки C++ Builder
Компоненты C++ Builder
Свойства компонентов
События
Методы
Менеджер проектов
Создание приложений в С++ Builder
Пример: создание простейшего приложения

Файлы: 1 файл

BorlandC++Builder1.doc

— 1.61 Мб (Скачать)

Рис. 4. Установка связи master/detail

    Добавим на форму компонент TDataSource, установив  его свойство DataSet равным Table2 . Затем добавим к форме новый компонент TQRBand (c именем QRBand6). После этого добавим компонент TQRDetailLink, предназначенный для установки связей между источниками данных в отчетах, и установим его свойство DataSource равным DataSource2. Затем установим его свойство Master равным QuickReport, а свойство DetailBand равным QRBand6. Свойство BandType компонента QRBand6 автоматически примет значение rbSubDetail.

    Наконец, поместим два компонента TQRDBText на QRBand6, установим их свойства DataSource равными DataSource2, а свойства DataField равными OrderNo и AmountPaid. Слева от них поместим два компонента TQRLabel с названиями этих полей (рис. 5).

Рис. 5. Форма отчета "master-detail".

  1. Выберем опцию Preview Report из контекстного меню компонента QuickReport для предварительного просмотра отчета (рис.6).

Рис. 6. Отчет "master-detail".

    Отметим, что если компонент QuickReport не связан с компонентом DataSource, то при печати отчета выводится только одна запись из набора данных, что легко позволяет  печатать текущую запись.

      Отображение графических и  мемо-полей в отчетах

QuickReport позволяет  создавать отчеты с использованием  любых типов данных. Если вместо  определения DataSource создать обработчик  события OnNeedData, можно с помощью  QuickReport напечатать любые данные, меняя свойства компонентов TQRLabel, что во многих случаях используется для печати произвольной информации (иногда не имеющей отношения к базам данных).

    QuickReport не имеет собственного компонента  для отображения графических  полей. Вместо этого можно использовать  стандартные компоненты Timage или  TDBImage (рис. 7).

Рис. 7. Использование TDBImage для отображения  графических полей

    Следует отметить, что графические поля баз  данных может печатать далеко не всякий профессиональный генератор отчетов. Например, ReportSmith, входивший в комплект поставки ряда продуктов Borland, может печатать графические изображения, не имеющие непосредственного отношения к данным (например, взятые из файлов формата *.bmp), но отнюдь не графические поля таблиц.

    Для отображения мемо-полей можно  использовать компонент TQRDBText. Если содержимое мемо-поля, отображаемого с помощью  этого компонента, не умещается в  одну строку, высота этого компонента (и высота содержащего его компонента TQRBand) в режиме предварительного просмотра и при печати отчета увеличивается таким образом, чтобы внутри компонента TQRDBText уместилось все содержимое memo-поля. Чтобы избежать наложения получившегося текста на другие элементы отчета при его печати, можно просто размещать компоненты TQRDBText, отображающие memo-поля, в нижней части TQRBand (рис 7).

Рис. 7. В левой нижней части данного  отчета компонент TQRDBText отображает memo-поле

Рис. 8. А вот так выглядят memo-поля в  отчете

    Если  таких memo-полей несколько и они  должны быть размещены друг под другом, можно использовать несколько компонентов TQRBand одного типа для одной записи. В этом случае печататься они будут в порядке их создания.

      Предварительный просмотр отчетов

В некоторых  случаях требуется предварительный  просмотр отчетов на этапе выполнения. Для этой цели используется метод Preview() компонента TQuickReport. При его выполнении на экране появится стандартная форма просмотра, изображенная на рис. 8.

    Если  внешний вид стандартной формы  просмотра по какой-либо причине  вас не устраивает, можно создать  свою форму предварительного просмотра с помощью компонента QRPreview. Этот компонент обладает свойствами PageNumber и Zoom, которые можно использовать для просмотра произвольной страницы отчета в произвольном масштабе.

    Для создания собственного окна предварительного просмотра следует на вновь созданной форме разместить компонент QRPreview и набор элементов управления (например, кнопок) для перемещения между страницами, изменения масштаба, печати и др. Далее следует написать код, аналогичный приведенному ниже примеру:

void __fastcall TForm1::ShowPreview()  
{  
Form2->ShowModal();  
}  
void __fastcall TForm1::Button1Click(TObject *Sender)  
{  
QRPrinter->OnPreview=ShowPreview;  
Form4->QuickReport1->Preview();  
Form2->ShowModal();  
}

Кроме того, нужно внести прототип функции ShowPreview() в соответствующий h-файл:

__published: // IDE-managed Components  
TButton *Button1;  
void __fastcall Button1Click(TObject *Sender);  
void __fastcall ShowPreview(void);

Приведенный пример кода показывает, как связать  созданную форму с компонентом QuickReport. Эта связь достигается написанием обработчика события QRPrinter->OnPreview. Это событие не имеет прямого отношения к компоненту QuickReport, иначе нужно было бы связывать все созданные отчеты с окном просмотра. Использование события объекта QRPrinter обычно означает написание общего для всех отчетов обработчика события, после чего окно просмотра можно использовать для всех имеющихся в приложении отчетов.

    Более подробно о компонентах, используемых для создания отчетов, можно прочесть в книге "Введение в Borland C++ Builder" Н.Елмановой и С.Кошеля, вышедшей в июле этого года в издательстве "Диалог-МИФИ".  
 
 
 
 
 
 

      Поставка  приложений, созданных с помощью  С++ Builder

Наталия Елманова

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

      Содержание

  • Поставка исполняемых файлов
  • Установка и настройка Borland Database Engine
  • Установка дополнительных компонентов приложения
  • Способы создания дистрибутивов
  • Создание дистрибутивов с помощью InstallShield Express

      Поставка  исполняемых файлов

При окончательной  сборке исполняемого файла (то есть непосредственно  перед созданием дистрибутива) следует  убрать из исполняемого файла отладочную информацию. Для этого следует  из менеджера проектов вызвать диалоговую панель Project Options и нажать кнопку Release.

Рис. 1. Установка параметров компилятора C++ при окончательной сборке приложения.

    Если  в проекте используются модули и  формы Delphi, следует отключить все  опции в секции Debugging и включить опцию Optimization в секции Code Generation на странице Pascal.

    В той же диалоговой панели следует  выбрать пиктограмму приложения (страница Application). Eе можно создать с помощью входящего в комплект поставки С++ Builder графического редактора, который можно запустить, выбрав пункт меню Tools/image Editor. Помимо этого, следует указать название приложения (то есть строку, которая будет отображаться в панели задач Windows 95) и имя файла справки, в котором содержатся экраны контекстно-зависимой помощи. Более подробно о создании контекстно-зависимой помощи для приложений С++ Builder можно узнать в книге "Введение в Borland C++ Builder" (Н.Елманова, С.Кошель. - М.: Диалог-МИФИ, 1997).

Рис. 2. Установка названия, пиктограммы  и имени файла справки.

    Если  ссылка на справочный файл присутствует в опциях проекта, можно связать экраны помощи с интерфейсными элементами приложения. Для этой цели следует установить значения свойства HelpContext интерфейсных элементов приложения равным номерам разделов соответствующих экранов помощи из секции [MAP] файла проекта справки. В этом случае после компиляции приложения нажатие на клавишу F1 будет выводить на экран окно справочной системы с разделом справки, описывающим интерфейсный элемент, имеющий фокус ввода.

      Установка и настройка Borland Database Engine

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

    Если  приложение использует базы данных, следует, помимо приложения, установить на компьютер пользователя библиотеку Borland Database Engine. Установка этой библиотеки заключается в копировании файлов этой библиотеки на компьютер пользователя, внесении сведений о ней в реестр (раздел HKEY_LOCAL_MACHINE//SOFTWARE//Borland//Database Engine), установке пиктограммы для утилиты конфигурации BDE, а также настройке псевдонимов, необходимых для корректной работы данного приложения.

    В процессе установки BDE могут возникнуть следующие проблемы. Во-первых, у пользователя на компьютере могут быть установлены другие приложения, использующие эту библиотеку. Если скопировать на такой компьютер файл конфигурации BDE поверх имеющегося, работоспособность этих приложений может быть нарушена из-за того, что исчезнут описания псевдонимов, используемых ими. Поэтому при добавлении своих псевдонимов лучше пользоваться опцией File/Merge утилиты конфигурации BDE или создать псевдонимы вручную.

    Можно посмотреть на эту проблему с другой стороны. Как избежать потери работоспособности вашего приложения, если другой программист установит свой файл конфигурации BDE поверх установленного вами? Возможное решение этой проблемы - создавать псевдонимы динамически во время работы приложения или анализировать их существование при запуске и создавать их, если по каким-то причинам они исчезли. Многие разработчики хранят информацию о них в локальных ini-файлах вне IDAPI32.CFG.

    Вторая  проблема может быть связана с  несовпадением версий BDE. Если с момента  выхода используемой вами версии BDE прошло какое-то время (а на данный момент после C++ Builder появились такие продукты, как Delphi 3.0 и IntraBuilder 1.5, содержащие более  новую версию BDE, чем С++ Builder), есть риск заменить старой версией BDE более новую, если на компьютере пользователя установлены эти средства разработки или созданные с их помощью приложения, что может нарушить их работоспособность.

    Чтобы избежать подобных неприятностей, можно воспользоваться одной недокументированной особенностью BDE. Дело в том, что время создания файлов этой библиотеки совпадает с номером версии BDE, чем и можно воспользоваться. Путь к файлам BDE следует искать в реестре Windows (ключ HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine, параметры CONFIGFILE01 и DLLPATH).

Рис. 3. Сведения о BDE в реестре Windows 95

    Обязательно следует убедиться, что эти каталоги и файлы действительно существуют. К сожалению, не все пользователи грамотно деинсталлируют приложения. Часто бывает, что ставший ненужным каталог просто стирается, при этом каталог с BDE может быть как удален, а может быть, и нет. При этом скорее всего (исключения бывают очень редко) соответствующий ключ реестра сохранится, "сбивая с толку" инсталляционное приложение.

    Отметим, что следует также установить на компьютер пользователя необходимые  драйверы SQL Links для доступа к серверным  СУБД, если они используются, а также клиентское программное обеспечение для работы с соответствующей серверной СУБД (например, SQL*Net для Oracle). Кроме того, пользователь должен обладать необходимыми привилегиями для доступа к используемым вашим приложением объектам базы данных - таблицам, хранимым процедурам и др. Если вы готовите и серверную часть приложения, следует предоставить администратору базы данных так называемый DDL-сценарий серверной части (DDL - Data Definition Language), представляющий собой сценарий создания объектов базы данных, написанный на SQL либо на его процедурном расширении, характерном для данного сервера баз данных. Подобный сценарий может быть создан вручную либо с помощью какого-либо CASE-средства типа ERwin компании Logic Works (CASE, что расшифровывается как Computer-Aided Software/System Engineering, представляет собой технологию проектирования БД, основанную на графическом описании сущностей, атрибутов и связей между ними).

Информация о работе BorlandC++Builder1