Fórum Semitransparência? #370302

08/05/2009

0

Estive pensando.
Como fazer transparência (ou semitransparente) de um TForm sem que seus componentes também assumam a propriedade Blend?
ou
Como fazer para um componente, TPanel por exemplo, ficar transparente (ou semitransparente) sem que os componentes dentro dele também assumam a transparência.

Estou perguntando isto porque ainda não vi meios de criar um efeito ´Glass´ sem que todos os componentes da aplicação (Form que seja) sejam afetados.


Marcosrocha

Marcosrocha

Responder

Posts

08/05/2009

Woinch

Se todos os controles são considerados ´Forms´ a baixo nível. Será que não tem como utilizar a API do Windows passando apenas o Handle do componente que você quer deixar transparente?


Responder

Gostei + 0

08/05/2009

Marcosrocha

Hierarquia de um TForm
TForm
  TCustomForm
    TScrollingWinControl
      TWinControl
        TControl
          TComponent
            TPersistent, IInterface, IInterfaceComponentReference
Hierarquia de um TEdit
TEdit
  TCustomEdit
    TWinControl
      TControl
        TComponent
          TPersistent, IInterface, IInterfaceComponentReference
Nos fontes do Delphi a propriedade AlphaBlend (que define transparência) chama uma função chamada SetLayeredAttribs que defina a transparência de um TCustomForm, porém se a API do Windows não suportar (não sei se suporta) não adianta definir o Handle de um componente para esta função.
Certa vez tentei fazer com que a linha inteira de uma TreeView ficasse selecionada quando a propriedade ShowLines estivesse ligada, contudo, a API do Windows não suporta este método então não adiantou ´forçar´ o código.

Por isso estou querendo saber se tem como, se for por meio de API Calls ou algum método (função) pronta do Delphi, definir transparência apenas para o Form e não seus componentes para que eu possa continuar um de meus projetos pessoais.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar