Buscar

Botão fechar minimiza a aplicação

nome

Edimar Cardoso

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.


Source delphi 6 

 

Espero ter sido clara e útil essa dica.

 

Abraços

Edimar

Qualquer Dúvida edimarlnx@gmail.com

Publicidade

Vote no artigo




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes do artigo

Categoria: Outros
Adicionado dia: 12/10/05
Por: Edimar Cardoso
Visualizado: 36319 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009