Смекни!
smekni.com

Панель компонентов Win32 (стр. 2 из 7)

Нет смысла удалять какой - то из компонентов, а создавать новые пока еще не умеем. В стандартном наборе страниц палитры компонентов есть страница Samples, содержащая довольно часто используемые компоненты. В то же время ее закладка в палитре закрыта двумя небольшими кнопками «прокрутки» закладок палитры. Имеет смысл поменять ее местами с менее используемой страницей, например, со страницей ADO. Можно «перетащить» строку Samples станет доступна в любой момент. Ели к тому же использовать в своих проектах технологию ADO для доступа к базам данных, перетащите строку ADO в самый конец списка.

Глава 1. Компоненты панели Win32

1.1. Компонент переключаемые страницы (TTabControl)

Данный компонент, как и компонент TPageControl, является наследником класса TCustomTabControL Он имеет общие черты с набором страниц, однако главное его отличие в том, что, несмотря на наличие нескольких корешков, реально доступна только одна страница и только одна клиентская область. То есть, пользователь может переключать только корешки, а не страницы. При переключении корешков содержимое единственной страницы, естественно, не изменяется автоматически.

Данный компонент используется, когда надо реализовать особо сложную логику работы такого элемента управления. Контролировать содержимое каждой «виртуальной» страницы приходится программно, то есть динамически создавать и уничтожать или делать невидимыми различные группы элементов и графические изображения в моменты переключения между корешками.

В программе-самоучителе в примере использования данного компонента использованы 4 вкладки для демонстрации его свойств.

1.2. Компонент Набор страниц (TPageControl)

Компонент представляет собой набор страниц, наложенных одна на другую. Доступ к каждой странице, содержащей свой набор элементов управления, осуществляется через так называемые корешки — небольшие выступы над страницей, содержащие короткое название. Большинство настроечных диалоговых окон в различных программах для Windows сегодня созданы именно по такому принципу. Это и окно Параметры в редакторе Word, и окно Свойства обозревателя в браузере Internet Explorer, и всевозможные средства настройки системы Delphi 7 и прочее. Данный элемент управления хорош в первую очередь тем, что позволяет эффективно экономить экранное пространство, фактически неограниченно увеличивая его «глубину».

Первоначально компонент, помещенный на форму, будет пустым — не содержащим ни одной страницы. Новая страница добавляется командой New Page (Создать страницу) из контекстного меню. При этом в списке объектов в Инспекторе объектов (и в описании класса TForml) появляется описывающий ее новый объект TabSheetl.

Добавим таким образом две страницы. На этапе проектирования между ними можно переключаться простым щелчком мыши на корешке. В клиентской области каждой страницы можно размещать любые компоненты Delphi 7.

Названия, указанные на закладках, меняются так. Сначала выбирается нужная страница (но не объект PageControll!) при помощи щелчка на ее клиентской части или выбором в списке Инспектора объектов. Затем нужное название вводится в свойство Caption (Заголовок), например Лист 1 и Лист 2.

В программе-самоучителе в примере использования данного компонента использованы 3 вкладки для демонстрации его свойств.

1.3. Компонент Список изображений (TImageList)

Этот компонент незаменим при создании приложений, в которых производится работа с графическими изображениями. Он позволяет хранить наборы картинок фиксированного размера, обращаться к ним по номерам и осуществлять вывод изображений на экран различными способами. В частности, при реализации различных анимационных эффектов может использоваться «прозрачный» цвет.

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

____________________________________________________________________________________________________

Свойство Назначение

____________________________________________________________________________________________________

АИосВу Число новых элементов, добавляемых, если при добавлении очередного изображения требуется расширение списка. Например, если значение свойства AllocBy равно 4 и список содержит четыре'картинки, то при добавлении пятой длина списка увеличится до 8 элементов (на 4). С помощью данного свойства можно регулировать распределение памяти, если планируется активная работа программы с большим числом изображений BkColor Фоновый цвет рисунка. При выводе этим цветом заполняется маскируемая область BlendColor Цвет переднего плана. Используется, когда изображение рисуется как выделенное (например, имеющее фокус) Count Число картинок в списке DrawingStyle Способ вывода изображения на экран. Возможные значения — dsFocused (цвет картинки смешивается с цветом BlendColor на 25%), dsSelected (цвет картинки смешивается с цветом BlendColor на 50%), dsNormal (в качестве фонового цвета используется цвет BkColor).

Если значение свойства равно clNone (цвет не задан), то изображение рисуется с использованием прозрачного цвета и маски. Значение dsTransparent указывает, что изображение рисуется прозрачным независимо от значения свойства BkColor ImageType Тип изображения. Возможные значения — itlmage (картинка), itMask (маска)

Masked Имеет значение True, если при выводе изображения используется маска.

Маскируемая часть изображения либо выводится как прозрачная, либо заполняется цветом, указанным в свойстве BkColor Sharelmages Имеет значение False, если область памяти, выделенная для списка картинок, освобождается после завершения работы программы. Значение True имеет смысл устанавливать, только если доступ к списку картинок выполняется нестандартным путем, например обращением к ресурсам другой программы

В свойствах Width и Height указываются ширина и высота одного изображения в пикселах. Все изображения в списке должны иметь одинаковые размеры.

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

Новые картинки добавляются с помощью кнопки Add (Добавить). Пока редактор не закрыт, добавленные изображения можно редактировать. Раскрывающийся список Transparent Color (Прозрачный цвет) позволяет выбрать цвет, который будет счи¬таться прозрачным. Пикселы этого цвета не выводятся на холст. Если прозрачность не нужна, следует выбрать значение clNone.

На панели Options (Параметры) задается способ позиционирования картинки.

>> Вариант Crop (Обрезка) означает, что изображение вкладывается в элемент списка, начиная от его верхнего левого угла.

>> Вариант Stretch (Растяжение) указывает, что изображение сжимается или рас-тягивается, чтобы соответствовать параметрам ширины и высоты элемента списка.

>> Вариант Center (По центру) позиционирует изображение по центру допусти¬мого прямоугольника. Если оно в нем не помещается, то выступающие части обрезаются.

Метод Назначение

function Add( Image, Mask: TBitmap): Integer; Добавление в список изображения него

маски (черно-белого точечного изображения, где белый цвет обозначает прозрачную область).

Возвращаемое значение — номер изображения в списке. Нумерация начинается с нуля

function AddIcon( Image: TIcon): Integer; Добавление значка. Значки всегда рисуются

прозрачными

procedure Addlmages( Value: TCustomlmageList); Копирование всех изображений из

другого объекта ImageList

function AddMasked(Image: TBitmap; MaskColor: TColor): Integer; Аналогично методу

Add, но вместо дополнительной картинки-маски задается цвет изображения, который считается

прозрачным, подобно работе с редактором списка

procedure Clear; Удаление всех изображений из списка

procedure Draw(Canvas: TCanvas; X, Y, Index: Integer; Enabled: Boolean-True); Основная

процедура вывода изображения с номером Index на холст Canvas в позицию (X, Y). Способ

отображения определяется значением свойства DrawingStyle. Если значение свойства Enabled

равно False, то изображение будет рисоваться в сером «выключенном» стиле

function FileLoad(ResType: TResType; Name: string;

MaskColor: TColor): Boolean; Загрузка изображения из файла ресурсов с именем Name.

В параметре ResType указывается тип ресурса, в параметре MaskColor задается прозрачный цвет

procedure GetBitmap(Index: Integer; Image: TBitmap); Получение элемента изображения

с номером Index как объекта класса TBitmap. Результат возвращается во втором параметре,

который должен быть переменной

procedure GetIcon(Index: Integer; Image: TIcon); Получение элемента изображения

(или его части) с номером Index как объекта класса TIcon

procedure Getlmages(lndex: Integer; Image, Mask: TBitmap); Разделение изображения с

номером Index на две части: цветное точечное изображение и монохромную маску. Эти

изображения возвращаются во втором и третьем параметрах

procedure Insert(Index: Integer; Image, Mask: TBitmap); Добавление изображения и маски в

конкретную позицию списка

procedure InsertIcon(Index: Integer; Image: TIcon); Добавление изображения с маскируемым

цветом в конкретную позицию списка

procedure InsertMasked(Index: Integer; Image: TBitmap; MaskColor: TColor); Добавление

изображения с маскируемым цветом в конкретную позицию списка

procedure Move( Curlndex, Newlndex: Integer);

Curlndex в позицию Newlndex Перестановка изображения в списке из позиции

procedure Replace(Index: Integer; Image, Mask: TBitmap); Замена элемента списка на новое

изображение (с маской)

procedure ReplaceIcon(Index: Integer; Image: TIcon); Замена элемента списка (значка)

на новое изображение

procedure ReplaceMasked(Index: Integer;

Newlmage: TBitmap; MaskColor: TColor); Замена элемента списка на новое изображение