![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Растягивание иконкиDelphi , Графика и Игры , ICOРастягивание иконкиАвтор: Bill StretchDraw не работает с иконками. В данной ситуации я бы поступил так: рисовал бы иконку в Timage и затем назначал изображение другому, большему Timage. Пример кода:
Дополнение Андрей Бреслав пишет: предложенный способ не работает, ибо компонента TImage использует тот же метод StretchDraw, что и спрашивающий. Растянуть иконку можно так:
Есть более человечный способ, чем просто рисовать в Image: функция DrawIconEx Win32 API:
Кстати, думаю, людям будет полезно знать по подробнее о DrawIconEx: Рисует иконку или курсор в соответствии с заданными занчениями.
hdc - контекст устройства (TCanvas.Handle) xLeft, yTop - координаты левого верхнего угла hIcon - дескриптор объекта Windows - Icon cxWidth, cyWidth - размеры istepIfAniCur - (!) номер отображаемого кадра в анимированном курсоре hbrFlickerFreeDraw - кисть diFlags - сумма след. занчений: DI_COMPAT - буду благодарен, если объясните DI_DEFAULTSIZE - если cxWidth, cyWidth равны 0, рисует в default размере DI_IMAGE - применяет одну часть кисти DI_MASK - применяет другую часть кисти DI_NORMAL = DI_IMAGE and DI_MASK - применяет обе части кисти В статье рассматривается проблема растяжения иконки в приложении Delphi, предлагаются различные способы решения этой проблемы, включая использование TImage, BitMap и функции DrawIconEx из Win32 API. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |