Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
ВнизМастера, помогите советом! Найти похожие ветки
← →
Barman (2003-01-02 11:08) [0]С Новым годом всех!
У меня такой вопрос: как сделать так, чтобы по нажатию на кнопку "закрыть" (наверху с крестиком, не знаю как правильно ее назвать...) программа не закрывалась?
Пробовал писать в событии OnCloseQuery вот так:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:= False;
Form1.Hide;
end;
Но тогда Windows не может завершить свою работу, если работает программа! Я понимаю, что надо ловить каким-то образом сообщение о закрытии, но я не знаю как :-(
← →
Anatoly Podgoretsky (2003-01-02 11:13) [1]Обрабатывай сообщение WM_QUERYENDSESSION
← →
Barman (2003-01-02 12:43) [2]А как? Мне стыдно, но я не умею :-(
Можно пример или ссылку, где можно было бы это посмотреть?
← →
Song (2003-01-02 13:45) [3]Procedure IsWindowsShutDown(Var Msg:TMessage); message WM_QUERYENDSESSION;
и далее пишешь обработчик в процедуре IsWindowsShutDown
← →
Barman (2003-01-02 14:45) [4]Все равно не получается. Пишу следующее:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:= False;
Hide;
end;
Procedure TForm1.IsWindowsShutDown(var Message : TMessage);
Begin
Application.Terminate;
End;
Теперь программа закрывается, но толку от этого нет, т.к. Windows работу все равно почему-то не завершает :-( Где я не прав?
← →
Song (2003-01-02 15:35) [5]Надо ещё результат от сообщения возвращать. См. в хэлпе что нужно вернуть.
← →
Barman (2003-01-02 17:22) [6]Хелп посмотрел. Но ничего не понял :-(
Не связывался я с сообщениями никогда, поэтому совета и прошу...
← →
Song (2003-01-02 17:56) [7]Return Values
If an application can terminate conveniently, it should return TRUE; otherwise, it should return FALSE.
← →
alvin (2003-01-02 18:31) [8]Попробуй так :
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
end;
Должно работать
← →
lamachok (2003-01-02 21:58) [9]вот вот надо обрабатывать onclose
← →
Mihey (2003-01-02 22:41) [10]Убрать кнопку нафиг (или ты прикол какой бацаешь?)!
procedure TForm1.Button1Click(Sender: TObject);
var
hwndHandle : THANDLE;
hMenuHandle : HMENU;
begin
hwndHandle := FindWindow(nil, "Untitled - Notepad");
if (hwndHandle <> 0) then begin
hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
if (hMenuHandle <> 0) then
DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c