Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 82
Текст из файла (страница 82)
При этом окно Редакторакода переводится на передний план, а курсор устанавливается в то место процедуры, где программист должен написать код, выполняемый при нажатиикнопки B u t t o n 1. Поскольку при нажатии кнопки О К должно закрыватьсяокно, то в этом месте можно указать F o r m l - > C l o s e ( ) или просто CloseQ. Файлы в составе модуля формы будут иметь следующий вид:Заголовочный файл://#ifndef U n i t l H#define U n i t l H//#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>/ I.
Borland С++ Builder391#include <Forms.hpp>//class TForml : public TForm{published:/ / IDE-managed Components/ / Объявление объекта кнопки типа TButton с именем OKTButton * 0 К ;/ / Заголовок процедуры обработчикаvoid fastcall OKCIick(TObject *Sender);private:/ / User declarationspublic:/ / U s e r declarationsfastcall T F o r m l (TComponent* Owner);};//extern PACKAGETForml *Form1;//#endifФайл реализации://#include <vcl.h>#pragma hdrstop#include"Unit1.h"//#pragma p a c k a g e ( s m a r t i n i t )#pragma resource "*.dfm"T F o r m l *Form1;//fastcall TForm 1::TForm 1 (TComponent* Owner): TForm(Owner){}//void _ f a s t c a l l TForm 1: :OKCIick(TObject *Sender){Forml->Close();}//З д е с ь п о л у ж и р н ы м н а ч е р т а н и е м в ы д е л е н код, н а б р а н н ы й п р о г р а м м и с том; все остальное среда С + + Builder создала автоматически, в том числе ивключение заголовка процедуры-обработчика в описание класса формыForml.В обработчике событий (приведенном в примере и в других обработчиках) параметр Sender указывает на компонент, который получил событие иЧасть 3.
Современные СУБД и их применение392вызвал обработчик. Иногда полезно иметь общий обработчик для разныхобъектов, который ведет себя по-разному в зависимости от класса вызвавшего его объекта. В такой ситуации использование параметра S e n d e r может бытьочень полезным. Заметим, что в заголовках функции он объявлен как указатель на объект типа T O b j e c t в виде T O b j e c t * S e n d e r .Класс T O b j e c t является базовым классом для всех классов в С++ Builder,но в нем нет свойств, пригодных к использованию в обработчиках событий.
Вэтой связи при необходимости обращения к некоторым свойствам объектовнужно выполнять приведение типа параметра S e n d e r к классу, в котором нужные свойства объявлены.К примеру, пусть в обработчике требуется задать клманду, помещающую воднострочный редактор E d i t текст В ы п о л н е н щ е л ч о к н а к о м п о н е н т е < и м як о м п о н е н т а х Имя компонента определяется значением его свойства N a m e .Поскольку в классе T O b j e c t это свойство отсутствует, тип параметра нужноприводить к классу T C o m p o n e n t , в котором это свойство появляется впервые, или к любому его наследнику, например T C o n t r o l . В результате решающий поставленную задачу оператор можно записать в виде:Editl ->Text = "Выполнен щелчок на компоненте "+((TComponent *)Sender)->Name;илиEditl ->Text = "Выполнен щелчок на компоненте "+((TControl *)Sender)->Name;Здесь выражения ( ( T C o m p o n e n t * ) S e n d e r ) и ( ( T C o n t r o l * ) S e n d e r ) задаютприведение типа параметра S e n d e r к типу указателя на объект соответствующего класса.Среда С++ Builder обеспечивает автоматизацию набора кода при вызовесвойств и методов объектов и записи стандартных конструкций языка С++.Так, после указания имени объекта и разделяющего знака -> автоматическипоявляется список (рис.
11.9), содержащий доступные свойства и методы этого объекта. При н е о б х о д и м о с т и с п о м о щ ь ю к о м б и н а ц и и к л а в и ш< Ctrl > + < пробел> можно обеспечить принудительный вызов этого списка. Имявыбранного свойства или метода автоматически добавляется справа от знака >. Если метод содержит параметры, то отображается подсказка, содержащаясостав и типы параметров.Перечень стандартных конструкций языка вызывается нажатием комбинации клавиш < C t r l > + < J > . После выбора требуемой конструкции автоматически добавляется ее код. Например, при выборе оператора for в коде появится следующий текст:for (;;)Имя обработчика T F o r m l : : O K C I i c k образуется прибавлением к имени компонента имени события без префикса On.
Это имя является значением события, для которого создан обработчик, в нашем случае — для события O n C l i c k/ I. Borland С++Builder393ШШi=i+UniH.cpp j'3E d i t l - >}/ /JJ21: 8piopertypropertyproperlyproperlyproperly[Modifiedbool TEdilAuloSelectbool TEdit::AutoSizeTBevelEdges TEdil::BevelEdgesTBevelCul T E d i t : : B e v e l l n n e rTBevelKind T E d i t : : B e v e l K i n d[insert[\Unit1 .cpp^Unitl.h /Diagram/Рис. 11.9. Список свойств и методов объекта E d i t lнажатия кнопки с именем ОК. При изменении через окно Инспектора объектов имени кнопки происходит автоматически переименование этой процедуры во всех файлах (.dfm и .срр) проекта.Аналогично создаются обработчики для других событий и других компонентов.
Более подробно события рассматриваются при изучении соответствующих компонентов.Для удаления процедуры-обработчика достаточно удалить код, который программист внес в нее самостоятельно. После этого при сохранении или компиляции модуля обработчик будет удален автоматически из всех файлов проекта.При удалении какого-либо компонента все его непустые обработчики остаются в модуле формы.Вместо создания нового обработчика для события можно выбрать существующий обработчик, если такой имеется. Для этого нужно в окне Инспектораобъектов щелчком на стрелке в области значения свойства раскрыть списокпроцедур, которые можно использовать для обработки этого события. События объекта тоже являются свойствами и имеют определенный для них тип.Для каждого события можно назначить обработчик, принадлежащий к типуэтого события.
После выбора в списке нужной процедуры она назначается обработчиком события.Одну и ту же процедуру можно связать с несколькими событиями, втом числе для различных компонентов. Такая процедура называется общим (разделяемым) обработчиком и вызывается при возникновении любого из связанных с ней событий. В теле общего обработчика можно пред у с м о т р е т ь д е й с т в и я , п о з в о л я ю щ и е о п р е д е л и т ь , для к а к о г о и м е н н окомпонента или события вызвана процедура, и в зависимости от этоговыполнить нужные команды.Часть 3. Современные СУБД и их применение3941 1 . 5 . Средства и н т е г р и р о в а н н о й с р е д ыразработкиИнтегрированная среда разработки имеет в своем составе много различных средств, служащих для удобной и эффективной разработки приложений.В этом разделе мы опишем наиболее общие элементы интегрированной среды разработки С + + Builder.УправлениепараметрамисредыПользователь может управлять интегрированной средой разработки, настраивая ее отдельные параметры, например, появление окна, отображающего ход компиляции проекта, или автоматическое сохранение редактируемыхфайлов.
Установка параметров выполняется в диалоговом окне E n v i r o n m e n tO p t i o n s ( П а р а м е т р ы с р е д ы ) , вызываемом командой T o o l s \ E n v i r o n m e n tO p t i o n s ( С р е д с т в а \ П а р а м е т р ы с р е д ы ) . Все параметры объединены по группам, размещенным на отдельных страницах (рис. 11.10).Environment OptionsТуре Library | ClassExplorer j CORBA j C++Builder Direct j Internet jPreferences Designer 1 Object Inspector I Palette 1 Library | Environment Variables!Autosave options ~Compiling and running —Г" Editor filesW Show compiler progressГГ" Beep on completionProject desktop~ DockingW Auto drag dockingPressing the Control кед whiledragging will prevent window docking~ГCache headers on startupГWarn on package rebuildIs? Hide designers on runГ Minimize on RunГBackground compilationShared repositoryDirectory: |jOKCancelР и с .
11.10. О к н о н а с т р о й к и п а р а м е т р о в с р е д ы р а з р а б о т к и/ I. Borland С++ Builder395Параметры среды С + + Builder для каждого проекта сохраняются в файлеконфигурации (project configuration file) с расширением cfg.ВстроенныйотладчикИнтегрированная среда разработки включает встроенный отладчик приложений, в значительной степени облегчающий поиск и устранение ошибокв приложениях. Средства отладчика доступны через команды меню Run иподменю View\Debug Windows (Просмотр\Окна отладки) и позволяют работать в следующих режимах:• выполнение до указанной строки кода;• пошаговое выполнение приложения;• выполнение до точки останова (Breakpoint);• включение и выключение точек останова;• просмотр значений объектов, например, переменных, в окне просмотра;• установка значений объектов при выполнении приложения.Установка параметров отладчика выполняется в диалоговом окнеDebugger Options (Параметры отладчика), вызываемом одноименной командой меню Tools (рис.
11.11).Debugger OptionsGeneral J Event Log J Language Exceptions ] OS Exceptions jГ Generalj P Map TD32 keystrokes on run| Г Mark buffers read-only on runi г Inspectors stay on topГ Disable multiple evaluatorsГ Allow side effects in new watchesГ Rearrange editor local menu on runГ fiebug spawned processesГ Enable COM cross-process supportInspector DefaultsW Show inheritedГ Sort by namef~ Show fully qualified names- Pathsj Debug Symbols Search Path:UГ integrated debuggingГГ1CancelJHelpРис.
11.11. О к н о установки параметров отладчикаЧасть 3. Современные СУБД и их применение396Включением/выключением отладчика управляет флажок I n t e g r a t e dкоторый по умолчанию установлен,и отладчик автоматически подключается к каждому приложению. В ряде случаев, например при отладке обработчиков исключений и проверке собственных средств обработки ошибок, этот флажок целесообразно снять.debugging (Интегрированная отладка),ХранилищеобъектовСистема С + + Builder позволяет многократно использовать одни и те жеобъекты в качестве шаблонов для дальнейшей разработки приложений.