Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать, чтобы форму нельзя было закрыть и уничтожить пока [D7, WinXP]


Gear ©   (2004-09-12 18:48:00) 

Как сделать так, чтобы форму нельзя было закрыть и уничтожить пока не выполниться какое-либо условие?


Семен Сорокин   (2004-09-12 18:56:00) [1]

Form.OnClose
Action := caNone
более глобально (работает когда винду вырубают)
Form.OnCloseQuery
CanClose = false


QuasiLamo   (2004-09-12 18:53:00) [2]

С сайта delphiworld
----------
Перехват нажатия на системные кнопки формы (закрытие, минимизация окна и т.д.)
--------------------------------------------------------------------------------

Сообщение WM_SYSCOMMAND приходит перед выполнением соответствующей команды, что дает возможность переопределить код.

WM_SYSCOMMAND
 uCmdType = wParam;     // type of system command requested
 xPos = LOWORD(lParam); // horizontal postion, in screen coordinates
 yPos = HIWORD(lParam); // vertical postion, in screen coordinates



Например, перехват события минимизации окна приложения:

type
 TMain = class(TForm)
 protected
   procedure WMGetSysCommand(var message : TMessage);
   message WM_SYSCOMMAND;
end;
...

// Обработка сообщения WM_SYSCOMMAND
procedure TMain.WMGetSysCommand(var message : TMessage) ;
begin
 if (message.wParam = SC_MINIMIZE) then
   Main.Visible := False
 else
   inherited;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо