ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problemas com o PNGImageList
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Rallu
Novato
Novato


Registrado: Quarta-Feira, 4 de Março de 2009
Mensagens: 24

MensagemEnviada: Ter Mar 17, 2009 2:42 pm    Assunto: Responder com Citação

Pode mandar sim.

email: rafael_lsantos@yahoo.com
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Qua Mar 18, 2009 10:05 am    Assunto: Responder com Citação

Olá, Rallu, tudo bem?
Acabei de enviar o programa de exemplo que fiz.
A versão dos componentes PNG que eu uso é a 1.4.

Espero ter ajudado!

Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Rallu
Novato
Novato


Registrado: Quarta-Feira, 4 de Março de 2009
Mensagens: 24

MensagemEnviada: Qua Mar 18, 2009 10:32 am    Assunto: Responder com Citação

Marco

O teu programa funcionou, mas você está usando os PNGSpeedButtons. Eu não queria usar eles, eu gostaria de usar os botões da Toolbar mesmo, os TToolButtons. É com os TToolButtons que o PNGImageList não funciona direito. Até poderia usar os PNGSpeedButtons, mas quando eu boto eles dentro de uma ToolBar e modifico a propriedade flat para true os botões ficam com um risco no meio, é um bug, acontece com os SpeedButtons do Delphi tb. Pelo menos aqui acontece isso. Uso o Delphi 7.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
marcocunhasilva
Profissional
Profissional


Registrado: Segunda-Feira, 21 de Agosto de 2006
Mensagens: 740
Localização: Porto Alegre

MensagemEnviada: Qui Mar 19, 2009 5:57 pm    Assunto: Responder com Citação

Olá, Rallu, tudo bem?
Fiz os testes aqui e também algumas de minhas imagens ficaram pretas.
Originalmente, os componentes do Delphi 7 não foram projetados para trabalhar com as imagens PNG. Já a versão 2009 do Delphi isso foi modificado e já aceita essas imagens.
Use os PNGSpeedButtons, é mais apropriado.
Espero ter ajudado.
Abraços.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Mar 19, 2009 7:07 pm    Assunto: Responder com Citação

marcocunhasilva escreveu:
Olá, Rallu, tudo bem?
Fiz os testes aqui e também algumas de minhas imagens ficaram pretas.
Originalmente, os componentes do Delphi 7 não foram projetados para trabalhar com as imagens PNG. Já a versão 2009 do Delphi isso foi modificado e já aceita essas imagens.
Use os PNGSpeedButtons, é mais apropriado.
Espero ter ajudado.
Abraços.



lógico q foi projetado.

ele tem um canvas, quem souber escrever/desenhar nele pode usar a vontade.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Qui Mar 19, 2009 7:09 pm    Assunto: Responder com Citação

amanha eu vou testar num pc q tem o d7 com pngcomponents instalado

pq no meu D5 tenho GPNGCompontes
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Rallu
Novato
Novato


Registrado: Quarta-Feira, 4 de Março de 2009
Mensagens: 24

MensagemEnviada: Qui Mar 19, 2009 11:22 pm    Assunto: Responder com Citação

Dá para desenhar PNGs direto no canvas sim. Eu usei o evento OnCustomDrawButton da ToolBar e consegui desenhar. Mas é claro, com o PNGImageList isso ficaria bem mais prático.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gilsonnrodrigues
Moderador
Moderador


Registrado: Quinta-Feira, 14 de Abril de 2005
Mensagens: 9009
Localização: Governador Valadares-MG

MensagemEnviada: Sex Mar 20, 2009 10:47 am    Assunto: Responder com Citação

teste esse código

Código:
procedure TForm1.ToolBar1CustomDrawButton(Sender: TToolBar; Button: TToolButton;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  R : TRect;
begin
  R := Button.BoundsRect;
  //ToolBar1.Canvas.FillRect(R);
  PngImageList1.Draw(ToolBar1.Canvas, (R.Left + R.Right - PngImageList1.Width) div 2 , (R.Top + R.Bottom - PngImageList1.Height) div 2, Button.ImageIndex, Button.Enabled);
  DefaultDraw := False;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Rallu
Novato
Novato


Registrado: Quarta-Feira, 4 de Março de 2009
Mensagens: 24

MensagemEnviada: Sex Mar 20, 2009 3:01 pm    Assunto: Responder com Citação

O código funciona, o problema é ter que desenhar cada possível estado do botão. Para uma Toolbar isto não é tão difícil. Mas tem outro problema, o PNGImageList também não funciona com o TListView, acontece o mesmo problema da ToolBar, os ícones escurecem. Desenhar no TListView é mais complicado, ele tem diferentes maneiras de ser visualizado (vsIcon, vsReport, vsSmallIcon, vsList), eu não consegui desenhar perfeitamente. O ideal seria que o PNGImageList funcionasse...

Mas vlw a dica Gilson!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB