Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jore

Campo Image com PNG dando erro no Delphi XE4

Recommended Posts

Olá amigos,
Estou aqui pedindo a ajuda de vocês para tentar solucionar o meu problema que é o seguinte:

Estou usando o Delphi XE4 e tenho um componente Image que vai receber imagens do tipo PNG que Não têm cor de fundo.

Estou chamando as imagens com o seguinte comando:

begin

if OpenPictureDialog1.Execute then
ImagemPNG1.Picture.LoadFromFile(OpenPictureDialog1 .FileName);

 



Como já disse as imagens não têm cor de fundo (transparente) porém ao carregá-las elas aparecem com um fundo branco.

Gostaria de saber se existe algum comando ou componente para eu utilizar para resolver este problema.

PS. Já tentei usar o componente PngComponents for Delphi 2009-XE5 do site da Embarcadero. Segue o Link: http://cc.embarcadero.com/item/26127

Porém o pacote só tem os seguintes componentes depois de instalado:

 

TPngSpeedButton
TPngBitBtn
TPngImageList
TPngImageCollection
TPngCheckListBox

 



Espero que possam me ajudar!

Muito obrigado à todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Roberto Fagundes,

Obrigado por responder!

 

Seguem abaixo a mesma imagem em 3 exemplos:

 

1 - A imagem que usei nos exemplos:

zaj0.png

2 - A mesma imagem foi carregada pelo Picture do componente Image e roda normalmente sem mostrar cor de fundo. Como deve ser!

vcmg.jpg

 

3 - Quando a imagem é carregada com o programa em execução. Veja que mostra um fundo branco.

dk8g.jpg

 

Tem alguma sugestão?

Quando você cria um campo como o meu da certo sem aparecer o fundo em branco?

 

Mais uma vez Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui esta funcionando esta imagem perfeitamente

creio que este componente não esteja funcionando.

Tente usar este:

 

http://www.devmedia.com.br/png-no-delphi-win32/2919



Agora que eu reparei que você está usando o XE4

no XE4 não precisa de componente externo o próprio TImage já aceita PNG

só adicione nas Uses:

 

Vcl.Imaging.pngimage

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Roberto Fagundes,

Mais uma vez muito obrigado por responder!

 

Bom, vamos ao caso...

No meu projeto estou suando Skins do pacote Alpha Control e acho que isso que esta dando este erro.

Pois criei um novo projeto só para testar as imagens em PNG e deu certo de primeira! E nem precisa por sua dica:

Uses: Vcl.Imaging.pngimage

 

Agora é que ferrou tudo mesmo!!

 

Vou recomçar e ir testando até achar o que da este erro e depois posto aqui.

 

Voltei! O erro esta no comando que ponho no ComboBox onde troco as skins veja:

 

 

begin
if not Loading and (sSkinManager1.SkinName <> sComboBox1.Items[sComboBox1.ItemIndex]) then begin
sSkinManager1.SkinName := sComboBox1.Items[sComboBox1.ItemIndex];
end;
end;
Você tem alguma ideia do que por ou mudar neste código para eu resolver isto?
Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sim

as skins atrapalham muito em relação a cores

se você tentar alterar a cor de um label vai ver que ele não vai ficar com a cor selecionada em tempo de execução.

 

Mas como você está utilizando componente de skin, devo te informar que a partir do Delphi XE,

o próprio Delphi tem suas skins, basta você ir em "Project>Options>Application>Aparence";

 

35t3.jpg

 

E ai você pode selecionar qualquer tipo de skin

 

Funciona da mesma forma com cores, porém não existe a necessidade de instalar um novo componente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Roberto Fagundes,

Muito Obrigado por toda a sua ajuda!

E realmente eu não sabia das skins no Delphi XE4.

Como faço para trocar as skins que vem no Delphi XE em tempo de execução é possível?

 

Vou reiniciar o projeto e volto dizendo se consegui solucionar o problema.

 

Muito Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.