Вниз
Скачать: CL | DM;

hide and shutdown   Найти похожие ветки 

 
velsi   (2003-04-29 16:53) [0]

Подскажите, как сделать так, чтобы прога реагировала на нажатие кнопки "закрыть" (крестик вверху любого окна) убиранием самой формы, но тем не менне прога при shutdown пормально закрывалась.

У меня сейчас сделано так.

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Visible then begin
CanClose := False;
Hide;
end;
end;

Но это позволяет только прятать форму, а сама прога не хочет закрываться при Log Off или ShutDown


 
jack128 ©   (2003-04-29 17:11) [1]

TForm1 = class(TForm)
private
{ Private declarations }
f : boolean;
procedure QuerySession(var Message : TMessage); message WM_QUERYENDSESSION;
public
{ Public declarations }
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Visible and not f then begin
CanClose := False;
Hide;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
f := false;
end;

procedure TForm1.QuerySession(var Message: TMessage);
begin
f:= true;
end;


 
jack128 ©   (2003-04-29 17:31) [2]

по хорошему надо вот так
procedure TForm1.QuerySession(var Message: TMessage);
begin
f:= true;
inherited;
end;


 
Shurik   (2003-04-30 01:11) [3]

Попробуй ещё и это:
TForm1 = class(TForm)
...
private
Ok2Shutdown: Boolean; // присвой :=False, где-нить в OnCreate
procedure WMGetSysCommand (var Message :TMessage); message WM_SYSCOMMAND;
procedure QuerySession (var Message : TMessage); message WM_QUERYENDSESSION;
end;

...

procedure TForm1.WMGetSysCommand (var Message: TMessage);
begin
case Message.WParam of
SC_CLOSE: // Здесь можно не только SC_CLOSE, вообще любую константу SC_XXX
begin
if Ok2Shutdown then
inherited
else
Form1.Minimize; // или Hide/Close, вообще, что угодно
end
else
inherited;
end;
end;

procedure TForm1.QuerySession(var Message: TMessage);
begin
Ok2Shutdown:=True;
end;


 
velsi   (2003-04-30 11:07) [4]

Спасибо за помощь !!!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
1-44729
pkert
2003-07-01 12:39
2003.07.14
Свернуть программу в SysTray


1-44740
Луарвик
2003-07-01 13:38
2003.07.14
.dll =>


14-44809
Александр из Минска
2003-06-28 16:04
2003.07.14
Интересное наблюдение (советую прочитать)


8-44772
lexusU
2003-03-26 13:33
2003.07.14
Как узнать яркость в данной точке изображения?


14-44813
delphimun
2003-06-25 20:26
2003.07.14
Компонент для создания архивов и извлечения файлов из них




   Наверх