Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 80
Текст из файла (страница 80)
Слово «создадим» в данном случае является не совсем точным, т. к. создавать и тем более программировать не придется вообще ничего: С + + Builder изначально предоставляетготовое приложение, состоящее из одной формы.Сразу же после создания нового приложения С + + Builder предлагает разработчику «пустую» форму.
Данная форма не является пустой в буквальномсмысле слова — она содержит основные элементы окна Windows: заголовокForml, кнопки сворачивания, разворачивания и закрытия окна, измененияразмеров окна и кнопку вызова системного меню окна. Именно эта формаотображается при первом запуске С + + Builder в окне формы.Любое приложение Windows выполняется в соответствующем окне.
Дажеесли оно ничего не делает в смысле функциональности, т. е. является пустым,то все равно должно иметь свое окно. С++ Builder — это среда разработкиприложений под Windows, поэтому для любого разрабатываемого приложения автоматически предлагается окно (форма), для которой уже созданы двафайла — с описанием и модулем.Итак, простейшее приложение создается автоматически каждый раз в начале работы над новым проектом и является отправной точкой для дальнейших действий. Это приложение имеет минимум того, что нужно любому приложению, выполняемому в среде Windows, и ни одним элементом больше.Простейшее приложение представляет из себя заготовку или каркас, обеспечивающий разработчика всем необходимым для каждого приложения вообще. Так, не нужно писать свой обработчик событий клавиатуры или драйвер мыши, а также создавать пакет процедур для работы с окнами.
Более того,нет необходимости интегрировать драйвер мыши с пакетом для работы с окнами. Это все уже выполнено создателями С++ Builder, и каркас приложенияпредставляет собой полностью завершенное и функционирующее приложение, которое никаких действий не производит.Отметим, что окно (а вместе с ним и приложение) действительно ничегоне делает с точки зрения пользователя — оно не предоставляет функциональ-Часть 3. Современные СУБД и их применение384ности, специфичной для каждого приложения. Вместе с тем это пустое окновыполняет достаточно большую работу с точки зрения программиста. Например, оно ожидает действий пользователя, связанных с мышью и клавиатурой, и реагирует на изменение своего размера, перемещение, закрытие и некоторые другие команды.В полной мере оценить эти возможности окна может только программист,который писал приложения под Windows традиционным способом, т.
е. вручную и без IDE. Изнутри Windows представляет собой систему с индексами,контекстами, обратными вызовами и множеством других сложнейших элементов, которые надо знать, которыми нужно управлять и в которых легко запутаться. Однако поскольку эти элементы имеются в каждом функционирующемприложении Windows, достаточно написать их один раз и в дальнейшем ужепользоваться готовыми блоками. Именно это и осуществляет система С + +Builder, избавляя тем самым программиста от сложной рутинной работы.При компиляции проекта молено использовать специальные пакеты динамически загружаемых библиотек (DLL), что позволяет в значительной степени уменьшить размер приложения. Однако при этом приложение уже неявляется автономным и в процессе своей работы обращается к пакетам, которые были задействованы при компиляции проекта.При конструировании приложения разработчик добавляет к простейшему приложению новые формы, управляющие элементы, а также новые обработчики событий.СозданиепользовательскогоинтерфейсаПользовательский интерфейс приложения составляют компоненты, которые разработчик выбирает в Палитре компонентов и размещает в форме.
Приконструировании интерфейса приложения действует принцип W Y S I W Y G( W h a t You See Is W h a t You Get — «что видите, то и получаете»), и разработчик при создании приложения видит форму почти такой же, как и при еговыполнении.Компоненты являются структурными единицами и делятся на визуальные (видимые) и невизуальные (системные). При этом понятия «видимый»и «невидимый» относятся только к этапу выполнения, на этапе проектирования видны все компоненты приложения.К визуальным компонентам относятся, например, кнопки, списки или переключатели, а также собственно форма. Так как с помощью визуальных компонентов пользователь управляет приложением, их также называют управляющими компонентами или элементами управления.
Именно визуальныекомпоненты образуют пользовательский интерфейс приложения.К невизуальным компонентам относятся компоненты, выполняющие вспомогательные, но не менее важные действия, например, таймер Timer (позволяет отсчитывать интервалы времени)./ I. Borland С++ Builder385При создании интерфейса приложения для каждого компонента выполняются следующие операции:• выбор компонента в Палитре компонентов и размещение его в форме;• изменение свойств компонента.Разработчик выполняет эти операции в окне Ф о р м ы , используя Палитрукомпонентов и Инспектор объектов.
При этом действия разработчика похожи на работу в среде графического редактора, а сам процесс создания интерфейса приложения больше напоминает конструирование или рисование, чемтрадиционное программирование. В связи с этим часто работу по созданиюинтерфейса называют конструированием.Выбор компонента в Палитре компонентов выполняется щелчком мыши нанужном компоненте, например на кнопке Button, в результате чего его значокпринимает утопленный (нажатый) вид. Если после этого щелкнуть на свободном месте формы, то на ней появляется выбранный компонент, а его значок вПалитре компонентов принимает обычный (ненажатый) вид.
Значки компонентов отражают назначение компонентов, и при наличии небольших практических навыков выбор нужного компонента происходит достаточно быстро.Кроме того, при наведении на каждый компонент указателя мыши отображается всплывающая подсказка с информацией о его назначении.Обозначения классов (типов объектов) в С++ Builder, в том числе компонентов, начинаются с буквы Т. Иногда типы ( T B u t t o n , T L a b e l ) используютсявместо имен ( B u t t o n , L a b e l ) для обозначения компонентов. Мы будем использовать для компонентов имена или типы в зависимости от ситуации.После размещения компонента в форме система С++ Builder автоматическивносит изменения в файлы модуля и представления формы.
В описание классаформы (заголовочный файл модуля формы) для каждого нового компонентадобавляется строчка формата<Тип компонента> *<Имя компонентамИмя нового компонента является значением его свойства Name, а тип совпадает с типом выбранного в Палитре компонента. Например, для кнопкиButton 1 эта строчка первоначально будет иметь вид:TButton *Button1;В файле представления для кнопки Button может быть записан следующий код:object Button 1: TButtonLeft = 98Top=110Width = 75Height = 25Caption = ' Button 1'TabOrder = 0end13 Зак. 541Часть 3. Современные СУБД и их применение386Д л я размещения в форме нескольких одинаковых компонентов удобноперед выбором компонента в Палитре компонентов нажать и удерживать клавишу < S h i f t > .
В этом случае после щелчка мыши в области формы и размещения там выбранного компонента его значок в Палитре остается утопленным, и каждый последующий щелчок в форме приводит к появлению в нейеще одного такого же компонента. Д л я отмены выбора этого компонента достаточно выбрать другой компонент или щелкнуть мышью на изображениистрелки в левом углу Палитры компонентов.После размещения компонента в форме можно с помощью мыши изменятьего положение и размеры. В случае нескольких компонентов можно выполнятьвыравнивание или перевод того или иного компонента на передний или задний план.
При этом действия разработчика не отличаются от действий в средеобычного графического редактора. Одновременно выделить в форме несколько компонентов можно щелчками мыши на них при нажатой клавише <Shift>.По умолчанию компоненты выравниваются в форме по линиям сетки, чтоопределяет флажок S n a p t o g r i d ( В ы р а в н и в а т ь п о с е т к е ) , входящий в наборпараметров интегрированной среды разработки.
В ряде случаев этот флажокприходится отключать, например, при плотном размещении компонентов вформе. По умолчанию шаг сетки равен восьми пикселам, а сетка при проектировании отображается на поверхности формы. Необходимость выравнивания по сетке, видимость сетки (флажок D i s p l a y g r i d ( О т о б р а ж а т ь с е т к у ) ) иразмер шага сетки по горизонтали и вертикали устанавливаются на вкладкеD e s i g n e r ( К о н с т р у к т о р ) диалогового окна E n v i r o n m e n t O p t i o n s ( П а р а м е т р ы с р е д ы ) , вызываемого одноименной командой меню T o o l s ( С р е д с т в а ) .Внешний вид компонента определяется его свойствами, которые становятся доступными в окне Инспектора объектов, когда компонент выделен в форме и вокруг него появились маркеры выделения (рис.
11.7). Доступ к свойствам с а м о й ф о р м ы о с у щ е с т в л я е т с я а н а л о г и ч н о , о д н а к о в в ы б р а н н о мсостоянии форма не выделяется маркерами. Д л я выделения (выбора) формыдостаточно щелкнуть в любом ее месте, свободном от других компонентов.Properties j Events |•[•Action[ActionCaptionEnabledOKЩtrue[All shownРис. 11.7.
Доступ к свойствам компонента11. Borland С++ Builder387В раскрывающемся списке, расположенном в верхней части окна Инспектора объектов, отображаются имя компонента и его тип. Выбрать тот или инойкомпонент и, соответственно, получить доступ к его свойствам можно в этомсписке Инспектора объектов. Такой способ выбора удобен в случаях, когдакомпонент полностью закрыт другими объектами.В нижней части окна Инспектора объектов слева приводятся имена всехсвойств компонента, которые доступны на этапе разработки приложения.Справа для каждого свойства стоит его значение.
Отметим, что кроме этихсвойств компонент может иметь и свойства, которые доступны только во время выполнения приложения.Свойства представляют собой атрибуты, определяющие способ отображения и функционирования компонентов при выполнении приложения.
Первоначально значения свойств задаются по умолчанию. После помещения компонента в форму его свойства можно изменять в процессе проектированияили в ходе выполнения приложения.Управление свойствами в процессе проектирования заключается в изменении значений свойств компонентов непосредственно в окне формы («рисование») или с помощью Инспектора объектов.Разработчик может изменить значение свойства компонента, введя иливыбрав нужное значение. При этом одновременно изменяется соответствующий компонент, т. е.