форма: прозрачная, контроль формы: непрозрачная?

Как можно изменить alphablend формы, не влияя на управление в форме?

Делфи XE7

введите здесь описание изображения


person user3231667    schedule 01.10.2014    source источник
comment
Насколько я знаю, это невозможно с альфа-смешением форм. Единственное известное мне решение — сделать копию фона, изменить его и нарисовать на форме, чтобы он выглядел полупрозрачным.   -  person iamjoosy    schedule 01.10.2014
comment
Я сделал что-то подобное, прежде чем использовать две формы. Одна форма сверху с элементами управления без alphablend с прозрачностью, используемой для всего фона. Затем это отображалось в фиксированном относительном положении с другой формой, которая была смешана в альфа-канале. К сожалению, я не думаю, что у меня больше есть код, но вы можете найти этот эффективный подход.   -  person Kanitatlan    schedule 01.10.2014
comment
Если вы ищете что-то вроде этого imgur.com/8ImgFIO, было бы очень широко дать ответ, поскольку это комбинация многослойных окон с собственными компонентами, вызывающими отрисовку на многослойном растровом изображении других форм с использованием областей, помещенных в Move(var Message: TWMMove) основной формы.   -  person bummi    schedule 01.10.2014
comment
эта ссылка (imgur.com/8ImgFIO) не имеет отношения к моей проблеме. пожалуйста, посмотрите верхнюю картинку! Благодарность   -  person user3231667    schedule 01.10.2014


Ответы (2)


Одним из решений этой проблемы является использование Multi-Device Application (если использование VCL невозможно).

Если вам нужно оставить прозрачный TForm, просто изменив свойство Transparency = True.

Если вам нужно оставить полупрозрачный компонент, все компоненты имеют свойство Opacity, которому можно присвоить более прозрачное значение от 0 до 1, где 0 ближе к этому компоненту.

Например, вы можете поместить элементы управления в TLayout и изменить его Opacity по своему усмотрению, не влияя на другие компоненты, или наоборот.

person Emerson Biondo    schedule 12.11.2014

На самом деле ответ на этот вопрос может быть довольно простым... (только для окон)

В библиотеке JEDI VCL есть компонент (TJvTransparentForm), который позволяет вам брать PNG-изображение с альфа-смешением (т. е. серый фон, показанный на рисунке выше) и использовать его для создания элемента управления формой. Изображение на самом деле хранится в TImage, и вам нужно будет разместить свои «значки» на самом изображении. Затем просто отвечайте на щелчки мыши на TImage.

У вас есть то, о чем вы просите (может быть?).

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

person Vivian Mills    schedule 02.10.2014