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 Мб (Скачать)

Рис. 14. Создание меню с помощью Menu Designer.

    Теперь  в инспекторе объектов выберем страницу событий и свяжем уже созданные  функции SpeedButton1Click, ... SpeedButton9Click с соответствующими пунктами меню, выбрав названия функций  из выпадающего списка.

    У нас остались неиспользованными  пункт меню "Панель инструментов". Присвоим свойству Checked этого пункта меню значение true. Создадим для пункта меню "Панель инструментов" следующий обработчик события OnClick:

void__fastcallTForm1::N9Click(TObject*Sender)  
{  
N9->Checked=!N9->Checked;  
Panel1->Visible=N9->Checked;  
}

    Наконец, создадим контекстные меню для различных  элементов главной формы при  ожения. Для этого положим на форму  два компонента TPopupMenu - один с пунктами "Вырезать", "Копировать", "Вставить", а второй - с пунктом "Скрыть". Выберем подходящие обработчики события OnClick из имеющихся функций для этих пунктов меню. И, наконец, для компонентов Memo1 и Panel1 выберем из выпадающего списка соответствующие имена контекстных меню.

    Итак, мы создали текстовый редактор с  панелью инструментов, главным и контекстным меню и диалоговой панелью "О программе". Окончательный вид работающего приложения представлен на рис. 15.

Рис. 15. Так выглядит готовое приложение.

    В заключение отметим, что можно несколько  облегчить свою работу, воспользовавшись шаблоном Аpplication Wizard со страницы Projects репозитория объектов. Однако в любом  случае необходим перевод меню на русский язык и создание интерфейсных элементов для редактирования данных (в нашем случае это один компонент TMemo), а также создание обработчиков событий, связанных с этими интерфейсными элементами.

    В следующих статьях этого цикла  будут рассмотрены возможности  доступа к базам данных в приложениях C++ Builder.  
 
 
 
 
 
 
 

      Работа  с базами данных в Borland C++ Builder

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

      Содержание

  • Введение
  • Компонент TDataSource
  • Компонент TTable
  • Компонент TField
  • Компонент TDBGrid
  • Пример 1. Разработка простейшего приложения
  • Пример 2. Разработка приложения, использующего вычисляемое поле
  • Компоненты TDBLookup
  • Пример 3. Разработка приложения, использующего компонент просмотра баз данных

      Введение

Используя Borland C++ Builder, можно создать приложения, работающие как с однопользовательскими  базами данных (БД), так и с серверными СУБД, такими как Oracle, Sybase, Informix, Interbase, MS SQL Server, DB2, а также с ODBC-источниками. Возможности C++ Builder, связанные с созданием приложений, использующих базы данных, весьма обширны для того, чтобы описать их в одной статье. Поэтому сегодня мы рассмотрим лишь простейшие возможности работы с таблицами баз данных.

    Набор данных в C++ Builder - это объект, состоящий  из набора записей, каждая из которых, в свою очередь, состоит из полей, и указателя текущей записи. Набор  данных может иметь полное соответствие с реально существующей таблицей или быть результатом запроса, он может быть частью таблицы или объединять между собой несколько таблиц.

    Набор данных в C++ Builder является потомком абстрактного класса TDataSet (абстрактный класс - это  класс, от которого можно порождать  другие классы, но нельзя создать экземпляр объекта данного класса). Например, классы TQuery, TTable и TStoredProc, содержащиеся на странице палитры компонентов Data Access, - наследники TDBDataSet, который, в свою очередь, является наследником TDataSet. TDataSet содержит абстракции, необходимые для непосредственного управления таблицами или запросами, обеспечивая средства для того, чтобы открыть таблицу или выполнить запрос и перемещаться по строкам.

      Компонент TDataSource

Компонент DataSource действует как посредник  между компонентами TDataSet (TTable, TQuery, TStoredProc) и компонентами Data Controls - элементами управления, обеспечивающими представление данных на форме. Компоненты TDataSet управляют связями с библиотекой Borland Database Engine (BDE), а компонент DataSource управляет связями с данными в компонентах Data Controls.

    В типичных приложениях БД компонент DataSource, как правило, связан с одним  компоненом TDataSet (TTable или TQuery) и с  одним или более компонентами Data Controls (такими, как DBGrid, DBEdit и др.). Связь этого компонента с компонентами TDataSet и DataControls осуществляется с использованием следующих свойств и событий:

  • Cвойство DataSet компонента DataSource идентифицирует имя компонента TDataSet. Можно присвоить значение свойству DataSet на этапе выполнения или с помощью инспектора объектов на этапе проектирования.
  • Cвойство Enabled компонента DataSource активизирует или останавливает взаимосвязь между компонентами TDataSource и Data Controls. Если значение свойства Enabled равно true, то компоненты Data Controls, связанные с TDataSource, воспринимают изменения набора данных. Использование свойства Enabled позволяет временно разъединять визуальные компоненты Data Controls и TDataSource, например, для того, чтобы в случае поиска в таблице с большим количеством записей не отображать на экране пролистывание всей таблицы.
  • Свойство AutoEdit компонента DataSource контролирует, как инициируется редактирование в компонентах Data Controls. Если значение свойства AutoEdit равно true, то режим редактирования начинается непосредственно при получении фокуса компонентом Data Controls, связанным с данным компонентом TDataSet. В противном случае режим редактирования начинается, когда вызывается метод Edit компонента TDataSet, например, после нажатия пользователем кнопки Edit на компоненте DBNavigator. · Событие OnDataChange компонента DataSource наступает, когда происходит изменение значения поля, записи, таблицы, запроса.
  • Cобытие OnUpdateData компонента DataSource наступает, когда пользователь пытается изменить текущую запись в TDataSet. Обработчик этого события следует создавать, когда требуется соблюсти условия ссылочной целостности или ограничения, накладываемые на значения полей изменяемой базы данных.

      Компонент TTable

Наиболее  простым способом обращения к таблицам баз данных является использование компонента TTable, предоставляющего доступ к одной таблице. Для этой цели наиболее часто используются следующие свойства:

  • Active - указывает, открыта (true) или нет (false) данная таблица.
  • DatabaseName - имя каталога, содержащего искомую таблицу, либо псевдоним (alias) удаленной БД (псевдонимы устанавливаются с помощью утилиты конфигурации BDE, описание которой присутствует во многих источниках, посвященных продуктам Borland, либо с помощью SQL Explorer, вызываемого с помощью пункта меню Database/Explore). Это свойство может быть изменено только в случае, если таблица закрыта (ее свойство Active равно false), например:

    Table1->Active=false;  
    Table1->DatabaseName="BCDEMOS"  
    Table1->Active = true;

  • TableName - имя таблицы.
  • Exclusive - если это свойство принимает значение true, то никакой другой пользователь не может открыть таблицу, если она открыта данным приложением. Если это свойство равно false (значение по умолчанию), то другие пользователи могут открывать эту таблицу.
  • IndexName - идентифицирует вторичный индекс для таблицы. Это свойство нельзя изменить, пока таблица открыта.
  • MasterFields - определяет имя поля для создания связи с другой таблицей.
  • MasterSource - имя компонента TDataSource, с помощью которого TTable будет получать данные из связанной таблицы.
  • ReadOnly - если это свойство равно true, таблица открыта в режиме "только для чтения". Нельзя изменить свойство ReadOnly, пока таблица открыта.
  • Eof, Bof - эти свойства принимают значение true, когда указатель текущей записи расположен на последней или соответственно первой записи таблицы.
  • Fields - массив объектов TField. Используя это свойство, можно обращаться к полям по номеру, что удобно, когда заранее неизвестна структура таблицы:

        Edit1->Text=Table1->Fields[2]->AsString;

Наиболее  часто при работе с компонентом TTable используются следующие методы:

  • Open и Close устанавливают значения свойства Active равными True и False соответственно.
  • Refresh позволяет заново считать набор данных из БД.
  • First, Last, Next, Prior перемещают указатель текущей записи на первую, последнюю, следующую и предыдущую записи соответственно, например:

        Table1->First();  
    while(!Table1->Eof)  
    {  
    //что-тоделаем...  
    Table1->Next();  
    };

  • MoveBy перемещает указатель на указанное число строк (оно может быть и отрицательным) в пределах таблицы
  • Insert, Edit, Delete, Append - переводят таблицу в режимы вставки записи, редактирования, удаления, добавления записи соответственно.
  • Post - осуществляет физическое сохранение измененных данных. Например:

        Table2->Insert();  
    Table2->Fields[0]->AsInteger=100;  
    Table2->Fields[1]->AsString=Edit1->Text;  
    Table2->Post();

  • Cancel - отменяет внесенные изменения, не сохраненные физически.
  • FieldByName - предоставляет возможность обращения к данным в полях по имени поля:

        S=Table1->FieldByName("area")->AsString;

  • SetKey переключает таблицу в режим поиска.
  • GotoKey начинает поиск строки, значение Fields[n] которой равно выбранному, где n - номер колонки таблицы, начиная с 0:

        Table1->SetKey();  
    Table1->Fields[0]->AsString=Edit1->Text;  
    Table1->GotoKey();

  • SetRangeStart, SetRangeEnd, ApplyRange позволяют выбрать нужные строки на основе диапазона значений какого-либо поля.

        Table1->SetRangeStart();  
    Table1->Fields[0]->AsString=Edit1->Text;  
    Table1->SetRangeEnd();  
    Table1->Fields[0]->AsString=Edit2->Text;  
    Table1->ApplyRange();

  • FreeBookmark, GetBookmark, GotoBookmark- позволяют создать помеченную строку в таблице и затем вернуться к ней позже. Методы Bookmark используют класс TBookmark. Метод GetBookmark устанавливает закладку на текущей cтроке таблицы. GotoBookmark осуществляет перемещение в таблице к строке, ранее отмеченной закладкой. Метод FreeBookmark используется для уничтожения объекта типа TBookmark:

        TBookmarkMarker=Table1->GetBookmark();  
    Table1->GotoBookmark(Marker);  
    Table1->FreeBookmark(Marker);

Cобытия  компонента TTable позволяют строить  и контролировать поведение приложе  ий БД. Например, событие BeforePost наступает  перед вставкой или изменением  записи, событие AfterPost - после сохранения  вставленной или измененной записи, событие AfterDelete - после удаления записи и т.д.

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