Colunista ainda sem descrição. Caro colunista, por favor envie-nos sua descrição.
Componentes Usados:
• PopupMenu (Standart)
• RxTrayIcon ( RXTools - biblioteca RXLIB)
Obs.: Não esqueça de selecionar um ícone para o componente RxTrayIcon, caso contrario na hora que a aplicação for minimizada para o tray ela sumirá.
Desative a propriedade active do RxTrayIcon caso queira que o ícone só apareça no Tray quando a janela for minimizada.
No Evento OnDblClick do RxTrayIcon insira o código:
procedure TForm1.RxTrayIcon1DblClick(Sender: TObject);
begin
show; {Mostra o form}
H := FindWindow(nil,'TrayIcon'); { acha o ponteiro da aplicação no sistema}
ShowWindow(h,SW_RESTORE); { mostra aplicação na barra de tarefas}
RxTrayIcon1.Active := false; {oculta ícone do tray icon}
end;
No evento OnCloseQuery do Form insira o Código:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if CanClose then { se o comando para fechar for acionado }
CanClose := false; { cancela o comando }
h := FindWindow(nil,'TrayIcon'); { acha o ponteiro da aplicação no sistema}
ShowWindow(h,SW_HIDE); { esconde a aplicação da barra de tarefas}
RxTrayIcon1.Active := true; { coloca ícone no tray icon}
hide; { esconde o form }
end;
No popupmenu crie dois menus:
Abrir e Fechar;
No evento OnClick do menu abrir coloque a ação: ”RxTrayIcon1DblClick” (sem aspas)
No evento OnClick do menu Fechar insira o código:
procedure TForm1.Fechar1Click(Sender: TObject);
begin
Application.Terminate; {Termina a Aplicação}
end;
Código fonte completo:
unit uTray;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RXShell, Menus;
type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
RxTrayIcon1: TRxTrayIcon;
Fechar1: TMenuItem;
procedure Fechar1Click(Sender: TObject);
procedure RxTrayIcon1DblClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
H : THandle;
implementation
{$R *.dfm}
procedure TForm1.Fechar1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.RxTrayIcon1DblClick(Sender: TObject);
begin
show;
H := FindWindow(nil,'TrayIcon');
ShowWindow(h,SW_RESTORE);
RxTrayIcon1.Active := false;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if CanClose then
CanClose := false;
h := FindWindow(nil,'TrayIcon');
ShowWindow(h,SW_HIDE);
RxTrayIcon1.Active := true;
hide;
end;
end.
Espero ter sido clara e útil essa dica.
Abraços
Edimar
Qualquer Dúvida edimarlnx@gmail.com
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009