Jul 31

Как изменить палитру на Дельфи при выводе нужного изображения?

Давайте сегодня рассмотрим эту, далеко не тривиальную задачку, заставим наш мозг поднапрячься, ведь палитра MDI-окна не такая уж и легкая вещица...

В том обработчике сообщения, который мы собираемся использовать в нашей работе, а это будет именно WM_PaletteChanged, Вы практически сразу же сможете убедиться в том, что видимая TImage.Picture.Bitmap.Palette является постоянно "реализованной".

Вот:

private

procedure WMPaletteChanged(var Msg: TWMPaletteChanged);

message WM_PaletteChanged;

...

procedure Form1.WMPaletteChanged(var Msg: TWMPaletteChanged);

begin

if Msg.PalChg <> Form1.Handle then

begin

PaletteChanged(true);

Msg.Result := 0;

end;

end;

Уже теперь у нас есть возможность масштабировать наше неотображенное изображение, так, как мы этого хотим и проблем больше быть не должно вообще.

Единственная вещь, о которой нам нужно помнить - когда надо будет вывести изображение неотображенное на уже видимый TImage, в обьязательном порядке нужно вызвать PaletteChanged снова именно после того, как само изображение полностью выведено. С тем же кодом, который ранее использовали мы...

Image1.Picture.Bitmap := obitmap;

PaletteChanged(true);

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

Спонсор поста: ищете на просторах интернета качественную SEO-программу? CS Yazzle – это программа для раскрутки сайта купить которую всегда есть возможность с помощью ресурса предназначенного для любителей и профессионалов продвижения и оптимизации веб-ресурсов в Интернете - seo-zar.ru!


Поделитесь вашими мыслями



Ссылки в комментариях будут свободны от nofollow.

Поддерживаемые теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

Ссылки в комментариях будут свободны от nofollow.

http://gss.kz/ ландшафтный проект 3d: самых популярных программ для ландшафтного.
-->