Mudar a função do botão fechar

Delphi

26/08/2005

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

Curtidas 0

Respostas

Kapak

Kapak

26/08/2005

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;



GOSTEI 0
Emerson Nascimento

Emerson Nascimento

26/08/2005

é 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;



GOSTEI 0
Macario

Macario

26/08/2005

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


GOSTEI 0
POSTAR