Utilizando o componente TTrayIcon no Delphi
Veja neste artigo como utilizar o componente TTrayIcon no Delphi
Uma funcionalidade comum de se ver em vários tipos de aplicação é a utilização de ícones na chamada tray bar, a barra de ícones que fica ao lado do relógio do Windows. Veremos neste artigo que não é difícil adicionar esta função à nossa aplicação, fazendo uso do componente TTrayIcon que o Delphi nos fornece nativamente.
Para desenvolver os exemplos a seguir, utilizei o Delphi 2007, mas outras versões podem ser usadas sem comprometimento do código.
Conhecendo o componente
Antes de partirmos para os exemplos práticos, vejamos alguns detalhes relacionados as propriedades deste componente.
- Animate: indica quando o componente exibirá ícones animados. Na prática, o que ocorre é uma variação dentre os ícones de uma lista predefinida.
- AnimateInterval: tempo, em milisegundos, que cada ícone da lista passará exibido antes de dar lugar ao próximo.
- BaloonFlags: ícone que aparecerá em uma caixa de diálogo no formato de balão informativo. As possibilidades são bfError(erro), bfInfo(informação), bfNone(nenhum) ou bfWarning(alerta).
- BaloonHint: texto que será exibido no balão citado no item anterior.
- BaloonTimeout: tempo, em milisegundos, que o balão informativo passará visível antes de ser fechado automaticamente.
- BaloonTitle: título do balão informativo.
- Hint: texto que aparecerá quando o cursor do mouse for posicionado sobre o ícone na tray bar, se deixado em branco, será exibido o nome do projeto.
- Icon: imagem com extensão .ico que deve ser usada como ícone da aplicação na tray bar. Só possui efeito se a propriedade Icons for deixada em branco.
- IconIndex: índice (começando em zero) da imagem da lista (Icons) que será exibida por padrão.
- Icons: TImageList ou derivado contendo uma imagens que servirão de ícones da aplicação na tray bar.
- PopupMenu: TPopupMenu ou derivado que será exibido quando o usuário clicar com a direita sobre o ícone.
- Visible: indica quando o ícone da aplicação estará visível na tray bar.
Podemos agora partir para a parte prática da utilização deste componente. Para isso criemos uma aplicação VCL no Delphi e, no form principal, adicionemos um componente TTrayIcon.
Ícone básico
Para visualizar o ícone da aplicação na tray bar, basta selecionar um ícone na propriedade Icon, definir a propriedade Visible como true e executar o projeto. Nenhum código adicional é necessário.
Ícone animado
Para visualizar o ícone com animação, devemos adicionar um componente ImageList ao form, preenchê-lo com algumas imagens e selecioná-lo na propriedade Icons do TTrayIcon. Logo após, devemos marcar a propriedade Animate como true e executar a aplicação. Veremos que as imagens contidas no ImageList são exibidas alternadamente como ícone da aplicação.
Balão informativo
Para visualizar o balão informativo, devemos inicialmente definir um ícone, um texto e um título para ele. Fazemos isso alterando as propriedades BaloonFlags, BaloonHint, BaloonTitle quaisquer valores possíveis entre os permitidos. Feito isso, executamos o seguinte código, por exemplo, no evento onClick de um botão.
procedure TForm1.Button1Click(Sender: TObject);
begin
TrayIcon1.ShowBalloonHint();
end;
Consideramos, no exemplo acima, que o nome do controle foi mantido como TrayIcon1. A Figura 1 ilustra o resultado da execução deste código.
Menu Popup
Adicionemos um componente TPopupMenu ao form com alguns itens (pode-se, aqui, executar algum código no evento onClick dos itens para se certificar do funcionamento). Depois, devemos selecionar este controle na propriedade PopupMenu do TrayIcon e executar a aplicação. Ao clicar com a direita sobre o ícone, o menu definido será exibido.
Escondendo a aplicação e mantendo apenas o ícone
Toda essa parte de exibir ícones, balões informativos e menus popup não teriam tanta aplicação prática se o ícone da aplicação continuar visível na barra de tarefas como qualquer outro programa minimizado. Na maioria das vezes é necessário esconder a aplicação ao minimizar o form principal, para isso, poderíamos usar um componente TApplicationEvents e, no evento onMinimize, tornar o form principal invisível, como mostra a Listagem 2.
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
Self.Hide();
Self.WindowState := wsMinimized;
TrayIcon1.Visible := True;
TrayIcon1.Animate := True;
TrayIcon1.ShowBalloonHint;
end;
E para tornar o form novamente visível poderíamos, por exemplo, usar o evento onDblClick do TrayIcon (Listagem 3), assim, quando o usuário clicasse duas vezes sobre o ícone, a aplicação seria novamente exibida.
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
TrayIcon1.Visible := False;
Show();
WindowState := wsNormal;
Application.BringToFront();
end;
Consideramos, nas listagens 3 e 4, que o TrayIcon está no form principal, por isso usamos a palavra reservada Self nos exemplos acima.
Conclusão
Concluímos que o Delphi nos fornece um componente bastante simples de se utilizar e que torna prática a tarefa de exibir o ícone da aplicação na tray bar. Caso o leitor tenha alguma dúvida com relação ao assunto aqui apresentado, sinta-se à vontade para questionar, utilizando a seção de comentários nesta página.
Agradeço a atenção e por aqui me despeço.
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo