Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "Система";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.012 c
1-44628
No_Name
2003-07-01 20:49
2003.07.14
ComponentsVisible


1-44669
Vint45
2003-07-02 14:23
2003.07.14
Функции для дин.массивов


7-44933
Shurik
2003-04-27 00:57
2003.07.14
Привязка к железу


1-44673
Vit@all
2003-07-02 16:30
2003.07.14
Как прочитать определенную строку из текстового файла?


14-44903
vidiv
2003-06-27 11:14
2003.07.14
Вобщем Код и эффект!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский