С: \Prcgram Files\Borland\Delphi7\bin\brcc32 bitmap, гс

3. Появившийся файл bitmap.res нужно включить в состав проекта. Для этого используется директива $R:

{$R bitmap.res}

4. Теперь картинка содержится в ресурсах и будет включена в состав исполняемого файла. Осталось загрузить ее в компонент TimageList. Для

ЭГСГО ИСПОЛЬЗ^еТСЯ МгГОД ResourceLoad:

ImageListl.ResourceLoad(rtBitmap, 'bitmaps',TColor(0)); При этом произойдет автоматическая "нарезка" картинок в соответствии со свойствами width и Height. Если размер большой картинки, к примеру, 256x16 пикселов, а ширина, заданная свойством TimageList, равна 16 пикселам, то в список будут включены 16 элементов размером 16x16. Поэтому еще во время разработки нужно правильно настроить размеры в компоненте TimageList, иначе после загрузки ресурса картинки будут разрезаны как попало.

Есть и другой метод загрузки - FileLoad:

function FileLoad(ResType: TResType;
Name: string;
MaskColor: TColor): Boolean;

Аналогичным путем он позволяет загружать картинки из любого пригодного файла. Но загрузка из файла менее надежна - нет гарантии, что у пользователя вашего приложения нужный файл всегда находится на месте и он не изменен.

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

ИСПОЛЬЗОвагь ИХ СЮЙСГВО Transparent: Var bmp: TBitmap;
bmp.LoadFromFile('c:\test.bmp');
bmp.Transparent := True;
ImageListl.AddMasked(bmp, bmp.TransparentColor);

В методе AddMasked нужно вторым параметром указать "прозрачный" (фоновый) цвет, который В данном случае равен bmp.TransparentColor.

Как элемент управления Win32, компоннет TimageList имеет собственный дескриптор:

property Handle: HlmageList;

Не следует путать этот дескриптор с дескрипторами растровых картинок, входящих в состав списка. В файле CommCtrl.pas приведены прототипы всех функций для работы с этим элементом управления, и для их вызова необходимо значение свойства Handle. Обратитесь к ним, если опубликованных свойств TimageList вам недостаточно.

Ком пон енты TTreeViewviTListView

Эти компоненты известны каждому, кто хоть раз видел Windows 98 или Windows 2000. Именно на их базе создано ядро пользовательского интерфейса - оболочка Explorer, да и большинство других утилит Windows. Они включены в библиотеку ComCtl32.dll и доступны программистам.

Компонент TTreeView называют деревом (рис. 5.3).

Компонент TTreeView - правопреемник компонента TOutline, разработанного Borland еще для Delphi 1 и предназначен для отображения иерархической информации. Его "сердцем" является свойство

property Items: TTreeNodes;
Программирование в Delphi 7

Рис. 5.3. Внешний вид компонента TTreeView

Данное свойство - это список всех вершин дерева, причем список, обладающий дополнительными полезными свойствами. Каждый из элементов списка - это объект типа ТТгееТЧоёе. Свойства его сведены в табл. 5.3.

Таблица 5.3. Список свойств объекта ТТгееЫобе

Объявление

Описание

property HasChildren: Boolean;

Равно True, если узел имеет дочерние узлы

property Count: Integer;

Счетчик числа дочерних узлов данного узла

property Item[Index: Integer]: TTreeNode;

Список дочерних узлов

property Parent: TTreeNode;

Ссылка на объект - родительский узел (верхнего уровня)

property Level: Integer;

Уровень, на котором находится узел. Для корневого узла это свойство равно 0; его потомки имеют значение Leve 1 = 1 и т. д.

property Text: string;

Текстузла

property Data: Pointer;

Данные,связанные с узлом

property TreeView: TCustomTreeView;

Ссылка на компонент TTreeView, в котором отображается данный узел

property Handle: hwnd;

Дескриптор окна компонента TTreeView, в котором отображается данный узел

property Owner: TTreeNodes;

Ссылка на компонент TTreeNodes, которому принадлежит данный узел

Таблица 5.3 (окончание)

Объявление

Описание

property Index: Longint;

Индекс узла в списке своего родителя

property IsVisible: Boolean;

Равно True, если узел видим (все его родительские узлы развернуты)

property Itemld: HTreeltem;

Дескриптор узла (применяется при вызове некоторых методов)

property Absolutelndex: Integer;

Абсолютный индекс узла в списке корневого узла

property ImageIndex: Integer;

Индекс картинки, соответствующей невы-бранному узлу в нормальном состоянии

property Selectedlndex: Integer;

Индекс картинки, соответствующей выбранному узлу

property OverlayIndex: Integer;

Индекс картинки, которая может накладываться поверх основной

property Statelndex: Integer;

Индекс дополнительной картинки, отражающей состояние узла

property Selected: Boolean;

Равно True, если данный узел выбран пользователем

property Focused: Boolean;

Равно True, если данный узел выбран пользователем для редактирования текста узла

property Expanded: Boolean;

Равно True, если данный узел развернут (показываются его дочерние узлы)

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


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Август
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс