Label transparente (de verdade, existe MESMO?)

Delphi

15/09/2009

Pessoal,

Preciso que o label fique transparente DE VERDADE. Deixem-me explicar: já ajustei a propriedade Transparent do Label para True. Acontece que aí ele age de 2 maneiras distintas:

* Windows Vista: ele REALMENTE fica transparente (OK).
* Windows XP e 2003: ele NÃO FICA transparente de verdade, ele pega a cor do fundo e aplica.

Acontece que tenho alguns labels sobre um TImage e aí no Windows XP/2003, como ele NÃO FICOU TRANSPARENTE, fica o retângulo da cor do fundo envolta do texto.

Já mudei a configuração da placa de vídeo para 32 bits para ver se de repente era essa a informação que faltava para o componente mas continua vindo opaco.

Alguma sugestão para resolver isso? Estou fazendo algo errado? Alguém conhece algum componente FREE que faça isso? Algo desse tipo no Jedi?


Willian

Willian

Curtidas 0

Respostas

Jaime Santos

Jaime Santos

15/09/2009

Estamos com um problema muito parecido, o que vem acontecendo é o seguinte:
Na minha máquina utilizo o Windows 7 Ultimate

Na minha aplicação utilizo Labels (TLabel) com a propriedade Transparent setada para True, pois bem, isto executando com a aparência do Windows com o Tema Aero do Windows 7, desta forma funciona perfeitamente ficando:

[img]http://arquivo.devmedia.com.br/forum/imagem/354833-20140702-134537.jpg[/img]

Porém se modifico a Aparência do Windows para o Tema clássico do Windows, fecho o delphi e abro novamente o projeto, ou até se executar o .exe compilado no tema anterior diretamente, todas as propriedades Transparent ficam como False, ficando:

[img]http://arquivo.devmedia.com.br/forum/imagem/354833-20140702-134522.jpg[/img]

Alguém já passou por isso? Já procurei e no projeto não existe o XPManifest (que já li alguns indicando como causa do problema).
GOSTEI 0
Jaime Santos

Jaime Santos

15/09/2009

Percebi que o form está com as propriedades corretas porém o dfm não está a acompanhando... logo por exemplo:
                object lblDataHoraSaida: TLabel
                  Left = 578
                  Top = 13
                  Width = 111
                  Height = 13
                  Caption = 'Data Sa'#237'da/Entrada'
                  Font.Charset = DEFAULT_CHARSET
                  Font.Color = clWindowText
                  Font.Height = -11
                  Font.Name = 'Tahoma'
                  Font.Style = [fsBold]
                  ParentFont = False
                end

Em modo Form a propriedade Transparent = True
caso eu coloque para False e depois para True novamente ele acrescenta no modo Text a propriedade ficando:
                object lblDataHoraSaida: TLabel
                  Left = 578
                  Top = 13
                  Width = 111
                  Height = 13
                  Caption = 'Data Sa'#237'da/Entrada'
                  Font.Charset = DEFAULT_CHARSET
                  Font.Color = clWindowText
                  Font.Height = -11
                  Font.Name = 'Tahoma'
                  Font.Style = [fsBold]
                  ParentFont = False
                  Transparent = True
                end


Alguém sabe se existe alguma forma de atualizar o dfm automaticamente ou só indo de componente por componente?

Att.
GOSTEI 0
POSTAR