-
Имеем приложение со скиновым интерфейсом (это требование заказчика). Картинки кнопок загружаются в TImageList, потом ресайзятся в зависимости от размеров рабочей области изображения, сохраняясь в другой TImageList затем выводятся через ImageList1.GetIcon(1,Image1.Picture.Icon); т.е. используются только стандартные компоненты. На нескольких протестированных машинах этот метод работает без проблем (XP, win 7). Но на машине заказчика - не хочет. В месте где должна быть прозрачность - чёрный фон. На этой машине просто установлена с нуля XP, драйвера, net и всё, т.е. ничего специфического. Программа собирается под delphi XE2. В чём может быть дело, и как возможно обойти этот глюк?
-
-
Специально установил update 4. Ничего не изменилось. По ссылке ничего похожего на мою проблему не увидел.
-
Попробуйте выставить глубину цвета 32 бита для ImageList и добавить XPManifest на главную форму.
-
Я, так думаю, лучше будет показать демо-пример в виде исходного кода, наглядно отображающий суть проблемы...
-
Проблема была решена с помощью написание собственного кода отрисовки картинок с прозрачностью. Естественно тот код был верен, так как работал на практически всех машинах, на которых запускал. Собственно в дельфе вся работа с графикой мёртворождённая, ну и похоже в XE2 они сами себя перемудрили с оптимизациями.
-
> Akad (21.03.12 12:29) [5] Проблема была решена с помощью написание собственного кода отрисовки картинок с прозрачностью.
Очень интересно узнать, как ты решил эту проблему. Хотя бы в общем виде.
-
> Картинки кнопок загружаются в TImageList
Это зря. Как вариант из-за этого всё. А вообще мало информации, просто скин-кнопки или полностью Layered?
-
-
> как я понимаю это полностью Layered
Во первых теме до вас было более полутора лет. А во-вторых у них был самодельный мутант, построенный на хаках, и близко не Layered, потому и глючил.
|