• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Delphi 7 для профессионалов

Компонент TlmageList

Таким образом, с любой точки зрения правильнее явно читать картинки из ресурсов. Последовательность действий для этого следующая:

  1. Создать исходный файл ресурсов, куда нужно включить и поименовать требуемые файлы с расширением bmp, к примеру:
inout BITMAP "inout.bmp"
tools BITMAP "tools.bmp"

Сохранить этот файл с расширением .rс, скажем, bitmap.rс.

  1. Скомпилировать ресурсы при помощи утилиты brcc32.exe, поставляемой с Delphi:
C:\Program Files\Borland\Delphi7\bin\brcc32 bitmap.rc
  1. Появившийся файл bitmap.res нужно включить в состав проекта. Для этого используется директива $R:
{$R bitmap.res}
  1. Теперь картинка содержится в ресурсах и будет включена в состав исполняемого файла. Осталось загрузить ее в компонент 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('с:\test.bmp');
bmp.Transparent: = True;
ImageListl.AddMasked(bmp, bmp.TransparentColor);

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

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

property Handle: HImageList;

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.