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 tray icon

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
lleal
Novato
Novato


Registrado: Sábado, 10 de Janeiro de 2015
Mensagens: 2

MensagemEnviada: Sáb Jan 10, 2015 8:28 pm    Assunto: Problemas com tray icon Responder com Citação

Boa noite galera, sou novo por aqui.

Estou testando o trayicon, quando rodo o sistema, ele minimiza normal na tray, ai programei para dar duplo click no ícone e aparecer o form, até ai blz. Mas quando tento minimiza-lo novamente, tenho que clicar no ícone da barra de tarefas para que o form tenha um foco e assim ele minimiza, já viram esse problema. Porque na primeira vez ele minimiza legal, a partir da segunda eu preciso fazer isso. Fora que aparece duplicado os ícones na tray. Se por acaso alguém souber o porque disso, me de uma luz.

Desde já obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gadeji
Novato
Novato


Registrado: Terça-Feira, 25 de Janeiro de 2011
Mensagens: 26

MensagemEnviada: Dom Jan 11, 2015 1:05 am    Assunto: Responder com Citação

Seguinte.. eu não sei exatamente no que tu tá errando.. vou passar aqui os passos q vc precisa fazer pra dar certo o que vc quer..

1. Coloque o componente TTrayIcon no seu form...

2. no onDoubleClick do TTrayIcon coloque o seguinte codigo...
Código:

  Show;
  WindowState := wsNormal;
  Winapi.Windows.SetFocus(Application.Handle);


-- Partindo do pressuposto que o seu form se chame Form1

3. no onResize do formulário coloque esse código
Código:

  if WindowState = wsMinimized then
    Hide;


4. e claro.. não se esqueça de definir o visible como True no TTrayIcon

Ah e quanto a ficar icones repetidos.. pra garantir que isso n aconteça coloque no onClose do seu form o seguinte:
TrayIcon1.Visible := False;
substituindo TrayIcon1 pelo nome do seu componente do trayicon
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
lleal
Novato
Novato


Registrado: Sábado, 10 de Janeiro de 2015
Mensagens: 2

MensagemEnviada: Dom Jan 11, 2015 7:09 pm    Assunto: Responder com Citação

gadeji escreveu:
Seguinte.. eu não sei exatamente no que tu tá errando.. vou passar aqui os passos q vc precisa fazer pra dar certo o que vc quer..

1. Coloque o componente TTrayIcon no seu form...

2. no onDoubleClick do TTrayIcon coloque o seguinte codigo...
Código:

  Show;
  WindowState := wsNormal;
  Winapi.Windows.SetFocus(Application.Handle);


-- Partindo do pressuposto que o seu form se chame Form1

3. no onResize do formulário coloque esse código
Código:

  if WindowState = wsMinimized then
    Hide;


4. e claro.. não se esqueça de definir o visible como True no TTrayIcon

Ah e quanto a ficar icones repetidos.. pra garantir que isso n aconteça coloque no onClose do seu form o seguinte:
TrayIcon1.Visible := False;
substituindo TrayIcon1 pelo nome do seu componente do trayicon


Não deu certo, com teu código ele aparece na barra de tarefas do mesmo jeito. Quanto a essa linha do Winapi.Windows.SetFocus(Application.Handle); ele da erro ao rodar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Seg Jan 12, 2015 10:04 am    Assunto: Responder com Citação

Eu faço assim no evento onClick do TrayIcon:

Código:
procedure TformPrincipal.TrayIcon1Click(Sender: TObject);
begin
  if Showing then // Se a aplicação estiver sendo mostrada
    Hide // Esconde
  Else
  Begin
    Show; // Senão, mostra a aplicação
    formPrincipal.WindowState := wsMaximized; // Maximiza a tela
  End;

  TrayIcon1.ShowBalloonHint; // mostra o balão
end;


E no evento OnShow do FormPrincipal:
Código:
procedure TformPrincipal.FormShow(Sender: TObject);
begin
  TrayIcon1.Visible := True; // Visivel
  TrayIcon1.ShowBalloonHint;  // Mostra balão
end;

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
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
Página 1 de 1

 
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