Сделать контроль прозрачным - PullRequest
5 голосов
/ 30 июня 2010

Есть ли способ сделать элемент управления прозрачным, как кнопка, редактирование, панель или т. Д.? Я имею в виду что-то вроде емкости или альфа-смеси, которую мы имеем в свойстве формы.

Ответы [ 4 ]

3 голосов
/ 30 июня 2010

Некоторые компоненты имеют свойство прозрачный . В других вы можете выбрать 'none' в качестве свойства color . Он отличается от компонента к компоненту, но не все компоненты можно сделать прозрачными, изменив свойство.

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

1 голос
/ 30 июня 2010

Посмотрите на стили окон Win32, особенно WS_TRANSPARENT (или WS_EX_TRANSPARENT).

0 голосов
/ 12 июля 2012

Применение прозрачности для дочернего элемента управления может быть очень легко выполнено с использованием старомодных регионов и функции SetWindowRgn().

Применение альфа-смешивания на дочернем элементе управления, с другой стороны, очень сложно сделать до Windows 8. Это предполагает сначала рисование родительского окна в растровом изображении, а затем альфа-смешение изображения дочернего элемента управления поверх растровое изображение, затем отображение растрового изображения на экране.

В Windows 8 стиль окна WS_EX_LAYERED (который используется в свойствах Tform TransparentColor и AlphaBlendValue для внутреннего использования) наконец-то реализован для дочерних элементов управления.

0 голосов
/ 30 июня 2010

альфа - это обычно первые 2 цифры шестнадцатеричного числа ....

типичный гекс - это #FFFFFF, а гекс с непрозрачностью - это #FFFFFFFF, который будет белым при полной непрозрачности # 00FFFFFF будет белым при непрозрачности 0 ...

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

...