Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (1084484), страница 81
Текст из файла (страница 81)
уже при проектировании видны результаты сделанныхизменений. Например, при изменении заголовка кнопки (свойство C a p t i o n )оно сразу же отображается на ее поверхности.Для подтверждения нового значения свойства достаточно нажать клавишу <Enter> или перейти к другому свойству или компоненту. Отмена изменений производится клавишей <Esc>.
Если введено недопустимое для свойства значение, то выдается предупреждающее сообщение, а изменениезначения отвергается. Изменения свойств автоматически учитываются в файле описания формы, используемом компилятором при создании формы, а приизменении свойства N a m e изменения вносятся и в описание класса формы.Для большинства свойств компонентов (например, для свойств C o l o r ( ц в е т ) ,C a p t i o n ( з а г о л о в о к ) и V i s i b l e ( в и д и м о с т ь ) ) имеются значения по умолчанию.Д л я обращения к компоненту в приложении предназначено свойствоN a m e , первоначальное значение которого образуется автоматически следующим образом: к имени компонента добавляется его номер в порядке помещения в форму.
Например, первая кнопка B u t t o n получает имя B u t t o n 1, вторая — B u t t o n 2 и т. д. Первоначально от значения свойства N a m e получает своез н а ч е н и е и с в о й с т в о Caption.Обычно разработчик предпочитает дать компонентам более информативные имена, чем имена по умолчанию. При этом целесообразно включать в имяданные о типе компонента и его назначении в приложении. Так, кнопке типаT B u t t o n , предназначенной для закрытия окна, можно присвоить имя b t n C l o s e388Часть 3.
Современные СУБД и их применениеили B u t t o n C l o s e . Каждый разработчик самостоятельно устанавливает удобные правила именования компонентов. Для простоты мы будем часто использовать имена, назначаемые по умолчанию, например, F o r m l , B u t t o n 1 илиE d i t 1.Значения свойств, связанных с размерами и положением компонента (например, L e f t и Т о р ) , автоматически изменяются при перемещении компонента мышью и настройке его размеров.Если в форме выделено несколько компонентов, то в окне Инспектораобъектов доступны свойства, общие для всех этих компонентов. При этомсделанные в окне Инспектора объектов изменения действуют на все выделенные компоненты.Для установки значений свойств в Инспекторе объектов используютсяподключающиеся автоматически редакторы свойств:• простой (текстовый) — значение свойства вводится или редактируетсякак обычная строка символов, которая интерпретируется как числовойили строковый тип С++ Builder; используется для таких свойств, какCaption, Left, Height и Hint;• перечисляемый — значение свойства выбирается в раскрывающемся списке.
Список раскрывается щелчком на стрелке, которая появляется приустановке указателя мыши в области значения свойства. Можно не выбирать нужное значение, а ввести его с клавиатуры, однако на практикеэто обычно не делается, т. к. допускаются только предлагаемые значения.Кроме того, возрастает трудоемкость и увеличивается вероятность ошибки. Используется для таких свойств, как F o r m S t y l e , V i s i b l e и M o d a l R e s u l t ;• множественный — значение свойства представляет собой комбинациюзначений из предлагаемого множества.
В окне Инспектора объектов слева от имени свойства множественного типа стоит знак «+». Формирование значения свойства выполняется с помощью дополнительного списка, раскрываемого двойным щелчком на имени свойства. Этот списоксодержит перечень всех допустимых значений свойства, справа от каждого значения можно указать true или false. Выбор true означает, что данное значение включается в комбинацию значений, a false — нет. Используется для таких свойств, как B o r d e r l c o n s и A n c h o r s ;• объекта — свойство является объектом и, в свою очередь, содержитдругие свойства (подсвойства), каждое из которых можно редактировать отдельно. Используется для таких свойств, как F o n t , I t e m s и L i n e s .В области значения свойства-объекта в скобках указывается тип объекта, например, ( T F o n t ) или (TSrings). Д л я свойства-объекта слева отимени может стоять знак «+», в этом случае управление его свойствами выполняется так же, как и для свойства множественного типа, т.
е.через раскрывающийся список. Этот список в левой части содержитимена подсвойств, а в правой — значения, редактируемые обычным/ I. Borland С++ Builder389способом. В области значения может отображаться кнопка с тремя точками. Это означает, что д л я данного свойства имеется специальныйредактор, к о т о р ы й в ы з ы в а е т с я нажатием этой кнопки. Так, д л я свойства F o n t открывается стандартное окно W i n d o w s для установки параметров ш р и ф т а .При выполнении приложения значения свойств компонентов (доступныхв окне Инспектора объектов) можно изменять с помощью инструкций присваивания, например, в обработчике события создания формы.
Так, изменение заголовка кнопки B u t t o n 1 можно выполнить следующим образом:Button 1->Caption = "OK";Такой способ требует, однако, большего объема работ, чем в случае использования Инспектора объектов, кроме того, подобные установки вступают всилу только во время выполнения приложения и на этапе разработки не видны, что в ряде случаев затрудняет управление визуальными компонентами.Тем не менее, д л я наглядности во многих примерах значения отдельныхсвойств мы будем устанавливать с помощью операторов присваивания, а нечерез Инспектор объектов.Отметим, что есть свойства времени выполнения, недоступные через Инспектор объектов, с которыми можно работать только во время выполненияприложения. К таким свойствам относятся, например, число записейR e c o r d C o u n t набора данных или поверхность рисования C a n v a s визуального компонента.ОпределениефункциональностиприложенияНа любой стадии разработки интерфейсной части приложение можно запустить на выполнение.
После компиляции на экране появляется форма приложения, которая выглядит примерно так же, как она была сконструированана этапе разработки. Ф о р м у можно перемещать но экрану, изменять ее размеры, сворачивать и разворачивать, а также закрывать нажатием соответствующей кнопки в заголовке или другим способом. То есть форма ведет себя, какобычное окно Windows.Реакция на приведенные действия присуща каждой форме и не зависит отназначения приложения и его особенностей. В форме, как правило, размещены компоненты, образующие интерфейс приложения, и задача разработчика — определить для этих компонентов нужную реакцию на те или иные действия пользователя, например, на нажатие кнопки или выбор переключателя.Эта реакция и определяет функциональностьприложения.Допустим, что при создании интерфейса п р и л о ж е н и я в форме была размещена кнопка B u t t o n , п р е д н а з н а ч е н н а я д л я з а к р ы т и я окна.
По умолчанию эта кнопка получила и м я и заголовок Button 1, однако заголовок (свойство C a p t i o n ) с п о м о щ ь ю окна И н с п е к т о р а объектов было заменено болеео с м ы с л е н н ы м — О К . П р и в ы п о л н е н и и п р и л о ж е н и я кнопку B u t t o n 1 мож-Часть 3. Современные СУБД и их применение390но нажимать с помощью мыши или клавиатуры. Кнопка отображает нажатие визуально, однако никаких действий, связанных с закрытием формы,не выполняется. Подобное происходит потому, что для кнопки не определена реакция на какие-либо действия пользователя, в том числе и на еенажатие.Чтобы кнопка могла реагировать на то или иное событие, для него необходимо создать или указать процедуру обработки, которая будет вызыватьсяпри возникновении этого события.
Для создания процедуры обработки события, или обработчика, нужно прежде всего выделить в форме кнопку и перейти на страницу Events (События) окна Инспектора объектов, где указываются все возможные для данной кнопки события (рис. 11.8).| Object Inspector|Button113 rf. FormlProperties Events jI1j!ШВ-lnixlT ButtonActionButtonl Clic ^• j — I jOnClick1OnContextPoDi!OnDragDropjJjAH shownш••OKiJ.Рис. 11.8. Доступ к событиям компонентаТак как при нажатии кнопки возникает событие OnClick, следует создатьобработчик именно этого события. Нужно сделать двойной щелчок в областизначения события O n C l i c k , в результате С++ Builder автоматически создает вмодуле формы заготовку процедуры-обработчика.