Как нанести прозрачный цвет на форму? - PullRequest
0 голосов
/ 25 августа 2009

У меня есть форма с изображением в качестве фона.

Теперь мне нужно поместить несколько прозрачных темных областей в нескольких областях формы.

Мне не нужно скрывать фон. Как я могу это сделать?

Ответы [ 3 ]

4 голосов
/ 25 августа 2009

Стандартный элемент управления Delphi не поддерживает AFAIK такого рода прозрачность. Поэтому у вас есть две возможности:

  • использовать сторонние компоненты
  • создайте свой собственный компонент (вы можете извлечь его из существующего) и переопределить метод рисования. В методе рисования просто нарисуйте правильную часть фонового изображения и затемните каждый пиксель, чтобы получить желаемый эффект.
1 голос
/ 26 августа 2009

Фоновое изображение и более темные области - единственное, что вам нужно в вашей форме, или у вас есть другие компоненты, которые тоже должны быть смешаны?

Если это только фоновое изображение и темные области, я бы порекомендовал вам проверить Graphics32 . Это поддержка изображений, поддерживающая слои. Должно быть довольно легко архивировать то, что вы хотите (или то, что я предполагаю, что вы хотите ...) из этого.

1 голос
/ 25 августа 2009

Вы можете попробовать Delphi 2009/2010, который поддерживает использование изображений PNG. Формат изображения PNG обеспечивает прозрачность альфа-слоя, что звучит так, как вы ищете. Это предполагает, что вы хотите иметь фиксированную форму на вашей форме.

РЕДАКТИРОВАТЬ - В Delphi 2007 вы можете попытаться использовать PNG Components , который, если я правильно помню, правильно обрабатывает альфа-прозрачность.

...