Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
lleal Novato
Registrado: Sábado, 10 de Janeiro de 2015 Mensagens: 2
|
Enviada: Sáb Jan 10, 2015 8:28 pm Assunto: Problemas com tray icon |
|
|
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 |
|
|
gadeji Novato
Registrado: Terça-Feira, 25 de Janeiro de 2011 Mensagens: 26
|
Enviada: Dom Jan 11, 2015 1:05 am Assunto: |
|
|
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 |
|
|
lleal Novato
Registrado: Sábado, 10 de Janeiro de 2015 Mensagens: 2
|
Enviada: Dom Jan 11, 2015 7:09 pm Assunto: |
|
|
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 |
|
|
natanbh1 Colaborador
Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Seg Jan 12, 2015 10:04 am Assunto: |
|
|
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 |
|
|
|