Fórum Mudar a função do botão fechar #293315

26/08/2005

0

Olá
Eu tenho um form onde deixei habilitado apenas o botão fecha (x). E tenho um código que coloca o programa no System Tray quando o executo. Ai que vem o problema:

Queria que quando o usuário clicasse no botão Fechar (Padrão da Janela), ai invés do sistema se encerrar ele executasse a função:

 MSNAlerta.ClosePopUps;
 Application.Minimize;
 H := FindWindow(Nil,´Alerta - RS1´);
 if H <> 0 then ShowWindow(H,SW_HIDE);



Tem como???

[]´s
Oberdan


Oberdan

Oberdan

Responder

Posts

26/08/2005

Kapak

Defina:
procedure WndProc(var Msg:TMessage); override;
Depois:
procedure TForm1.WndProc(var Msg:TMessage);
var H:HWND;
begin
  if Msg.Msg <> WM_Close then
    inherited
  else
  begin
    MSNAlerta.ClosePopUps;
    Application.Minimize;
    H := FindWindow(Nil,´Alerta - RS1´);
    if H <> 0 then ShowWindow(H,SW_HIDE);
  end;
end;



Responder

Gostei + 0

27/08/2005

Emerson Nascimento

é simples:

depois do seu código basta acrescentar a linha:
Action := caNone;

procedure Form1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MSNAlerta.ClosePopUps;
  Application.Minimize;
  H := FindWindow(Nil,´Alerta - RS1´);
  if H <> 0 then ShowWindow(H,SW_HIDE);
  Action := caNone;
end;



Responder

Gostei + 0

27/08/2005

Macario

Olá Eu tenho um form onde deixei habilitado apenas o botão fecha (x). E tenho um código que coloca o programa no System Tray quando o executo. Ai que vem o problema: Queria que quando o usuário clicasse no botão Fechar (Padrão da Janela), ai invés do sistema se encerrar ele executasse a função:
 MSNAlerta.ClosePopUps;
 Application.Minimize;
 H := FindWindow(Nil,´Alerta - RS1´);
 if H <> 0 then ShowWindow(H,SW_HIDE);
Tem como??? []´s Oberdan



Voce pode usar o evento OnCloseQuery, que é disparado antes do OnClose


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar