Надати характеристику поняттю середовище 3 страница

Событие OnChangeвозникает при активизации страницы, а со­бытие OnChanging- перед активизацией. Поэтому с помощью об­работчика события OnChangingможно заблокировать переключе­ние страниц, если не выполнено какое-либо необходимое условие.

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

Рассмотрим важнейшие свойства одностраничного блокнота.

Свойство Style(тип TTabStyle)определяет стиль, кото­рым будет отображаться компонент TabControl. Данное свойство может принимать одно из трех значений:

tsTabs- стандартные закладки объемного вида;

tsButtons- закладки в виде кнопок;

tsFlatButtons- закладки в виде плоских кнопок.

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

Свойство Tabs(тип TString)содержит список всех закладок и дает возможность обращаться к каждой из них по индексу. Дан­ное свойство доступно для редактирования с помощью Инспекто­ра объектов.

Свойство MultiLine(тип Boolean)определяет, могут ли закладки отображаться в виде нескольких строк. Когда данное свойство имеет значение True,то закладки будут располагаться на нескольких строках, если не помещаются в одну строку. В про­тивном случае закладки будут размещаться на одной строке, и если они не помещаются полностью, то в правой части данного компонента появляются стрелки, с помощью которых можно осуществлять прокрутку закладок.

Свойство TabPosition(тип TTabPosition)определяет расположение закладок в различных местах одностраничного блокнота: вверху, внизу, справа или слева.

Свойство ScrollOpposite(тип Boolean)задает поведе­ние закладок при выборе в случае, когда они размещаются в нескольких строках (имеет смысл только в случае, когда свой­ству MultiLineприсвоено значение True).Если свойство ScrollOppositeимеет значение True,то строка с выбран­ной закладкой автоматически перемещается в первый ряд. В противном случае такого перемещения не происходит. При установке данному свойству значения Trueсвойство Multi-Lineтакже автоматически устанавливается в True.

Свойство TabWidth(тип Small In t)устанавливает ширину закладок в пикселях.

Свойство TabHeight(тип Smalllnt)задает высоту закла­док в пикселях.

По умолчанию свойства TabWidthи TabHeightимеют зна­чение 0, то есть размеры закладки устанавливаются автоматиче­ски в зависимости от длины названия.

Свойство Tablndex(тип Integer)содержит номер выбран­ной закладки компонента TabControl. С помощью изменения зна­чения данного свойства можно совершать программное переклю­чение между закладками.

Свойство HotTrack(тип Boolean)установленное в True,за­дает режим подсветки заголовка закладки синим цветом в момент, когда на нее наведен указатель мыши. Свойство Images(тип TCustomlmageList)дает возмож­ность отображать на закладках графические изображения из спис­ка ImageList, ссылка на который задается в качестве значения дан­ного свойства. Рисунки из списка будут распределяться в соответ­ствии с номерами закладок в списке свойства Tabs.

Пример 9.3. Пусть необходимо создать приложение с использо­ванием компонента TabControl, который бы позволял переключаться между закладками с названиями стран и получать в таблице инфор­мацию о столице, валюте, территории и населении данной страны.

Решение. На первом этапе на форму добавляется компонент TabControl. Затем поверх него помещается таблица StringGrid.

В редакторе свойства Tabsдля компонента TabControl вно­сятся названия стран, которые будут отображаться в виде закла­док одностраничного блокнота (см. рис. 9.6). Свойству Multi-Lineприсваивается значение True.

 

Таблица будет содержать два столбца и четыре строки, поэто­му для компонента StringGrid значение свойства ColCountуста­навливается равным 2, а свойства RowCount- равным 4. Число фиксируемых строк, определяемое свойством FixedRows,зада­ется равным 0.

Во время выполнения программы пользователь имеет возмож­ность получить краткую справочную информацию о стране, выбирая соответствующую закладку одностраничного блокнота TabControl.

При этом следует отметить, что заголовки строк таблицы задают­ся при создании формы и при изменении страницы не переопреде­ляются. В обработчике события OnChangeкомпонента TabControl.

выполняется только внесение необходимых данных о стране во вто­рой столбец таблицы в зависимости от выбранной закладки.

Ниже показано, как программно реализуется решение постав­ленной задачи. Сведения о странах вносятся в разделе констант (const)в виде массива типа PChar.Дальнейшее заполнение таблицы осуществляется на основе совпадения названия выбран­ной закладки с соответствующим элементом данного массива.

 

Многостраничный блокнот PaseControl.

Компонент PageControl является управляющим элементом, включающим на­бор из нескольких страниц, размещаемых одна под другой. Каж­дая страница имеет закладку, которая является неотъемлемой ча­стью данной страницы, в отличие от одностраничного блокнота. Страницы используются для объединения различных управляю­щих элементов в группы, обеспечивая их компактное размещение и простое переключение между ними.

Многостраничный блокнот является более сложным управляю­щим элементом, чем компонент TabControl, однако многие свойства этих двух элементов совпадают. Поэтому будут рассмотрены только свойства, специфичные для компонента PageControl.

Свойство ActivePage(тип TTabSheet)определяет назва­ние текущей (выбранной) страницы компонента PageControl.

Свойство ActivePagelndex(тип Integer)служит для опре­деления индекса текущей страницы.

С помощью свойств ActivePageи ActivePagelndexможно программно устанавливать новую активную страницу.

Свойство PageCount(тип Integer)используется для опре­деления общего количества страниц многостраничного блокнота.

Свойство Pages [Index: Integer](тип TTabSheet)содержит полный список всех страниц управляющего элемента PageControl. Доступ к любой странице блокнота по ее номеру можно получить путем использования данного свойства во время выполнения приложения. Порядковый номер страницы задается параметром Index.

Добавление и удаление страниц, а также перемещение между страницами компонента PageControl в процессе проектирования приложения осуществляется с помощью вызова контекстного меню (нажатием правой кнопки мыши в поле компонента) и дальнейшего выбора соответствующего пункта этого меню. Перемещаться между страницами можно также простым нажатием на закладке необходи­мой страницы. Это возможно, потому что каждая страница (включая закладку) является отдельным независимым объектом.

На практике данный компонент очень часто используется при создании окон настроек параметров приложения.

Контрольні питання

1. Навести огляд поняття елементи з закладками

2. Надати характеристику властивостей компонента елементи з закладками

3. Навести поняття та властивості одно сторінкового блокноту.


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

 

Самостійне заняття №8 –Список графічних образів

План заняття

4. Огляд поняття списку графічних образів

5. Характеристика властивостей компонента список графічних образів

Компонент ImageList является списком графических обра­зов и служит для хранения графических изображений. Данный компонент может содержать несколько образов одинакового типа и размера, на каждый из которых можно ссылаться по его номеру в списке. Список ImageList обеспечивает удобное управление большими наборами пиктограмм или битовых образов. Этот ком­понент является невизуальным и на экране не отображается, как и хранящиеся в нем образы. Списки графических образов применя­ют для быстрого отображения рисунков в случае необходимости. Более того, данный компонент специально предназначен для раз­мещения изображений на поверхности некоторых элементов управления (например кнопок панели управления ToolBar).

В контейнере ImageList могут запоминаться изображения типа ICO и BMP. В списке также могут храниться маски образов. Такие маски определяют, как будет прорисовываться графический образ на поверхности рисования. Если бит маски имеет нулевое значе­ние, то в этом месте бит образа будет иметь цвет фона, то есть будет невидим. С другой стороны, при ненулевом значении бита маски образ в данном месте будет прорисовываться.

Для добавления новых образов или удаления уже существую­щих элементов из контейнера применяется специальный редактор (см. рис. 9.7). Этот редактор позволяет перемещать элементы спи­ска, тем самым изменяя их порядковые номера в контейнере. Также редактор дает возможность устанавливать некоторые свой­ства для отдельных изображений: задавать фоновый цвет, созда­вать и заполнять маску и т.д.

Вызвать данный редактор можно двойным нажатием левой кнопки мыши на компоненте ImageList, помещенном на форму, либо выбором пункта ImageList Editor в контекстном меню данно­го компонента.

По умолчанию все хранимые в списке изображения имеют размер 16x16 пикселей! Разработчик приложения может установить новые размеры хранимых в списке образов. Для определения параметров списка и его элементов используются следующие свойства.

 

Свойство Height(тип Integer)задает высоту образа.

Свойство Width(тип Integer)устанавливает ширину об­раза.

Свойство Count(тип Integer)определяет количество обра­зов в списке.

Свойство BkColor(тип TColor)задает фоновый цвет, при­меняемый для рисования образа. По умолчанию свойство имеет значение clNone,что означает отсутствие фонового цвета.

Свойство DrawingStyle(тип DrawingStyle)устанавли­вает стиль прорисовки образа на поверхности рисования и может принимать одно из таких значений:

dsFocused- цвет образа на 25% смешивается с систем­ным цветом подсветки;

dsSelected- цвет образа на 50% смешивается с сис­темным цветом подсветки;

dsNormal- образ рисуется с учетом цвета, заданного свойством BkColor.Образ рисуется с использованием маски, если свойство BkColorимеет значение clNone;

dsTransparent- образ рисуется с применением маски, независимо от значения свойства BkColor.

Свойство ImageType(тип TImageType)задает тип объекта, используемого при прорисовке элементов списка. Это свойство может принимать одно из двух значений:

itlmage-для рисования образа;

itMask-для рисования маски образа.

Свойство Masked(тип Boolean)определяет, будет ли список включать маски, которые могут совмещаться с образами.

Для программного управления компонентом ImageList и его элементами используются следующие методы.

Метод Add (Image, Mask: Tbitmap) : Integerпозво­ляет добавить в конец списка битовый образ и маску, задаваемые параметрами Imageи Maskсоответственно. В качестве результа­та возвращается значение индекса нового образа в списке. Данный метод требует, чтобы заранее был создан образ и его маска.

Метод AddMasked (Image: TBitmap; MaskColor: TColor) : Integerдобавляет образ в конец списка и автома­тически формирует маску с учетом цвета, заданного параметром MaskColor, который фактически устанавливает фоновый цвет образа.

Метод Addlcon (Image: TIcon) : Integerпредназна­чен для добавления пиктограммы, на которую ссылается параметр TIcon, в конец списка. При этом если свойство Maskedкомпо­нента ImageList имеет значение True,то пиктограмма копируется вместе с маской, а если False- то без маски.

Метод Addlmage (Value: TCustomlmageList)дает возможность добавить в конец списка содержимое другого спис­ка, указанного параметром Value.

Метод Assign (Source: TPersistent)заменяет содер­жимое списка новыми элементами, взятыми из источника Source.

Для вставки образов в список используются методы Insert, InsertMasked, Insertlcon,которые, в отличие от аналогич­ных методов Add, AddMasked, Addlcon,позволяют задавать позицию в списке, куда будут вставлены новые образы.

Для замены образа и маски, находящихся на указанной пози­ции в списке, новыми образом и маской применяются методы Replace, ReplaceMasked, Replacelcon.

Метод Move (Си г Index, Newlndex: Integer)позволя­ет переместить образ в списке с позиции, указанной параметром Curlndex,на новую позицию, заданную параметром Newlndex.

Метод Clearудаляет все элементы из списка графических образов.

Метод Delete (Index: Integer)удаляет из списка об­раз, позиция которого задана параметром Index.

Метод Draw (Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean)выводит образ с индексом, за­даваемым параметром Index,на поверхности рисования, опреде­ляемой параметром Canvas.Параметры X и Y указывают координа­ты верхнего левого угла, начиная с которого будет выводиться образ. Параметр Enabled,как правило, не указывается и по умолчанию имеет значение True,что определяет доступность изображения.

 

Контрольні питання

1. Надати характеристику поняттю списку графічних образів

2. Охарактеризувати властивості компонента список графічних образів


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

 

Самостійне заняття №9 –Індикатори

План заняття

1. Огляд компонента індикатори

2. Характеристика властивостей компонента індикатори

 

Индикатор представляет собой диаграмму простейшего вида, которая используется для отображения в графическом и тексто­вом виде хода выполнения приложением различных длительных операций. В Delphi для индикации процесса выполнения операций используются компоненты ProgressBar и Gauge.

Компонент ProgressBar является индикатором хода выполнения операций. Оформление данного компонента соответст­вует общему стилю оформления Windows (см. рис. 9.8). Компо­нент ProgressBar располагается на странице Win32 палитры компонентов. По мере выполнения операции прямоугольное поле данного индикатора заполняется слева направо (либо снизу вверх, в зависимости от ориентации компонента) синими прямоугольника­ми или сплошной синей полосой.

Рассмотрим основные свойства данного компонента.

Свойство Minустанавливает минимальное значение диапазона индикатора. По умолчанию данное свойство имеет значение 0.

Свойство Махзадает максимальное значение диапазона инди­катора (по умолчанию равно 100).

Свойство Position определяет позицию индикатора и, соот­ветственно, объем выполненной операции, который рассчитыва­ется относительно диапазона, заданного значениями свойств Minи Мах.Данное свойство можно также изменять программно, при­сваивая ему определенное значение.

Свойство Stepустанавливает, на какую величину возрастает позиция индикатора при каждом последующем наращивании. По умолчанию этому свойству присвоено значение 10.

Свойство Orientationзадает, будет ли индикатор Progress-Bar расположен вертикально или горизонтально.

Свойство Smoothопределяет, будет ли заполнение индикато­ра сплошным или сегментированным.

Для изменения позиции индикатора, наряду со свойством Position,могут также быть использованы методы Stepltи StepBy.

Метод Stepltпозволяет увеличить позицию индикатора на значение свойства Step.

Метод StepBy (Delta: Integer)увеличивает позицию индикатора на значение параметра Delta.

Для того чтобы дополнить предоставляемую индикатором графическую информацию текстом, отражающим числовое значе­ние объема выполненной работы, необходимо отдельно добавлять текстовую надпись, например с помощью компонента Label, так как сам компонент ProgressBar не поддерживает таких свойств, как Textили Caption.

Компонент Gauge " является простейшим индикатором, показывающим значение какого-либо параметра в процентном отношении. Данный компонент располагается на странице Sam­ples палитры компонентов. Стиль оформления данного компонен­та не соответствует современному интерфейсу Windows, ввиду этого индикатор Gauge используется редко, поэтому в данной книге он рассматриваться не будет.

 

Контрольні питання

1. Навести огляд компонента індикатори

2. Охарактеризувати властивості компонента індикатори

 


САМОСТІЙНА РОБОТА СТУДЕНТА

ЗМІСТОВИЙ МОДУЛЬ 1: ОСНОВНІ ПОНЯТТЯ ТА ОЗНАЧЕННЯ. ЕЛЕМЕНТИ МОВИ. КЕРУВАННЯ ПРОЦЕСОМ ОБЧИСЛЕНЬ

ТЕМА 1.4: ЕЛЕМЕНТИ ІНТЕРФЕЙСУ

 

Самостійне заняття №10 –Список дій

План заняття

1. Огляд компонента список дій

2. Характеристика властивостей компонента список дій

 

В данном занятии невозможно обойти вниманием такой важный компонент, как ActionList -2» . С одной стороны, можно превос­ходно обойтись без использования данного компонента и при этом с успехом создавать полноценные действующие приложе­ния. Однако, с другой стороны, следует отметить, что применение компонента ActionList значительно облегчает работу программи­ста, позволяет застраховать себя от некоторых досадных ошибок в процессе создания приложения, а также делает сам код програм­мы более изящным, красивым и, главное, легко читаемым. Возни­кает вопрос, каково же назначение данного компонента.

С помощью компонента ActionList осуществляется синхрони­зация элементов управления. Чтобы пояснить, что это означает, достаточно будет внимательно взглянуть на саму среду разработ­ки Delphi. Легко заметить, что, например, операцию открытия файла можно осуществить с помощью пункта меню File \ Open, a также нажатием кнопки быстрого доступа - которая распо­ложена на панели инструментов. Другой пример: окно настройки панели инструментов можно вызвать, обратившись к пункту глав­ного меню View \ Toolbars | Customize или же выбрав пункт Cus­tomize в локальном меню главного окна среды разработки. Таким образом, возникает ситуация, когда одну и ту же операцию вы­полняют различные элементы управления. Чтобы не создавать для разных компонентов несколько различных обработчиков событий, которые должны будут выполнять одну и ту же функцию, следует использовать компонент ActionList, расположенный на странице Standard Палитры компонентов. При использовании данного ком­понента достаточно будет создать один обработчик событий, ко­торый будет реагировать на различные события нескольких управляющих элементов. Кроме этого, ActionList позволяет согла­совывать еще некоторые действия, например, синхронно управ­лять доступностью и видимостью логически взаимосвязанных компонентов в различные моменты времени.

Реализуется описанный механизм с помощью объектов дейст­вия Action(тип TAction),которые содержатся в компоненте ActionList. Объекты класса TActionсоздаются с помощью спе­циального редактора, который вызывается двойным щелчком мыши на компоненте либо обращением к пункту Action List Editor локального меню данного компонента. Общий вид этого редакто­ра показан на рис. 9.9.

 

Объекты действия, создаваемые программистом, по умолча­нию имеют имена Actionl, Action2и т.д. Кроме этого, суще­ствует целый ряд стандартных объектов действия, таких, как, на­пример, открытие, закрытие и сохранение файла, размещение окон каскадом или мозаикой и т.д., которые выбираются из раз­личных категорий (список категорий находится в правой части окна редактора) и имеют соответствующие имена, например FileOpen(Открыть файла) или EditCut(вырезать). При ис­пользовании стандартных действий можно обойтись даже без соз­дания соответствующих обработчиков событий, так как необхо­димые действия будут выполняться автоматически.

В качестве основных свойств объекта действия Actionмож­но выделить следующие: Caption, Imagelndex, Enabled, Visible, Checked, Hintи Shortcut,которые аналогичны та­ким же свойствам пункта меню TMenuItem.Значения этих свойств будут автоматически присваиваться соответствующим свойствам компонентов, с которыми связан объект действия. Это предоставляет определенные преимущества. Часто возникает необ­ходимость заблокировать или сделать невидимыми элементы управления, выполняющие некоторые действия. Например, должен быть невидим пункт меню Save {Сохранить), если в данный момент не открыт ни один из файлов, либо не должна быть доступна кноп­ка быстрого доступа Paste {Вставить), если предварительно текст не был скопирован в буфер. В том случае, если одно и то же дейст­вие выполняется различными элементами управления, возникает необходимость крайне внимательно отслеживать подобные момен­ты и соответствующим образом изменять значения свойств Enab­ledили Visibleдля каждого из компонентов. Если же использу­ется объект действия, который связывает несколько таких компо­нентов, то достаточно будет только установить требуемое значение указанных свойств для самого объекта Action,а аналогичные свойства самих компонентов изменятся автоматически, одновре­менно делая данные компоненты видимыми или невидимыми, до­ступными или недоступными.

Несомненные удобства возникают также благодаря тому, что для группы связанных компонентов с помощью объекта действия можно задать «горячие» клавиши, устанавливая требуемое значе­ние свойству Shortcut,или определить одинаковую всплываю­щую подсказку, задавая свойство Hint.Подобные возможности позволяют избежать некоторых досадных оплошностей и неточ­ностей при разработке приложения.

Основными событиями для объекта действия являются OnExecuteи OnUpdate.

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

Событие OnUpdateвозникает, когда очередь сообщений для приложения пуста или когда обновляется содержимое списка дей­ствий.

Связь элементов управления с объектом действия осуществля­ется через свойство Action(тип TBasicAction).Если, напри­мер, необходимо связать кнопку Buttonlс объектом действия Actionl,то это делается следующим образом:

Buttonl.Action:= Actionl;

Безусловно, это свойство можно установить не только про­граммным образом, но и с помощью Инспектора объектов.

Теперь при нажатии кнопки Buttonlбудет выполняться об­работчик события OnExecuteобъекта Actionl,а обработчик события OnClickсамой кнопки не вызывается.

В Delphi 6 появилось еще несколько компонентов для работы с действиями, а в Delphi 7 состав этих компонентов был еще больше расширен. Теперь для более удобной и эффективной работы с объектами действия введены такие компоненты:

1) компонент управления действиями ActionManager (аналогичен ActionList), который используется для создания и управления объектами действия Action;

2) компонент меню ActionMainMenuBar позволяющий
конструировать меню на основе существующих объектов дейст­
вия;

3) компонент панели инструментов ActionToolBar, кото­рый дает возможность разрабатывать панель инструментов с ис­пользованием объектов действия;

4) компоненты цветовых схем XP Color Map, Standard Color Map и TwilightColorMap "', позволяющие задавать раз­личные общепринятые цветовые схемы для ActionMainMenuBar меню и панелей инструментов ActionToolBar.

Проиллюстрировать обращение с этими компонентами можно на небольшом примере.

Пример 9.4. Пусть необходимо создать приложение, которое позволяло бы с помощью меню или панели инструментов изме­нять цвет текста, выводимого на экран с помощью компонента Label.

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

1.Создается новый проект.

2.На форму добавляется компонент Label, в свойство Cap­tionкоторого записывается произвольный текст.

3.На форму также помещаются следующие компоненты: ImageList, ActionManager, ActionMainMenuBar, ActionToolBar, XPColorMap.

4.В компонент ImageList добавляются четыре рисунка, кото­рые будут размещаться на кнопках панели инструментов, предна­значенных для выбора цвета текста и выхода из программы.

5.Двойным щелчком по компоненту ActionManager открыва­ется редактор списка действий. В этом редакторе последователь­ным нажатием кнопки New Action создается четыре объекта действия.

6.Свойству Imagesкомпонента присваивается значение ImageListl,а затем, путем установки требуемого значения свойству Imagelndexобъектов Action,с каждым действием связывается соответствующий рисунок из списка графических образов. В результате этого окно редактора ActionManager при­нимает вид, показанный на рис. 9.10.

7.С помощью мыши все объекты действия перетаскиваются на панель инструментов ActionToolBar. Кнопки выбора цвета отде­ляются от кнопки выхода разделителем. Для этого из окна Ac­tionManager следует перетащить кнопку Drag to create Separators на панель инструментов, где она отобразится в виде вертикально­го разделителя.

8. Для того чтобы на кнопках панели инструментов отобража­
лись только рисунки без текста, необходимо для каждой кнопки
установить свойство ShowCaptionв False,а свойство Show-
Glyph -
в True.








Дата добавления: 2014-12-01; просмотров: 1027;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.05 сек.