Карта сайтаСсылкиКонтакты

Как переопределить кнопку Восстановить формы

PDF Печать
Статьи

При обработке сообщения WM_SYSCOMMAND Windows можно перехватывать операцию восстанвления окна. Когда форма максимально развернута, кнопка меняет свой вид и назначение. Нажатие кнопки Восстановить возвращает форме первоначальное положение и размер.

Переопределив операцию восстановления, можно, например, создать форму, которую можно будет только развернуть и свернуть.

Чтобы уловить и отреагировать на операцию восстанвления формы, нужно обработать сообщение WM_SYSCOMMAND Windows.

Сначала создадим обработчик сообщения в разделе private формы:


type
  TForm1 = class(TForm)
  private
    { Private declarations }
    procedure WMSysCommand(
            var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

Теперь напишем перехватчик сообщения:


procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
  if Msg.CmdType = SC_RESTORE then
  begin
    if Self.WindowState = wsMaximized then
    begin
      Self.WindowState:= wsMinimized;
      Msg.Result:= 0;
      Exit;
    end;
    if Self.WindowState = wsMinimized then
    begin
      Self.WindowState:= wsMaximized;
      Msg.Result:= 0;
      Exit;
    end;
  end;
  DefaultHandler(Msg);
end;

Установите свойство WindowsState в состояние wsMinimized или wsMaximized.

Примечание: не путайте восстановление приложения OnRestore с восстановлением формы или окна. Событие OnRestore объекта TApplication срабатывает, когда приложение восстанавливается из Панели задач.


 

Добавить комментарий


Защитный код
Обновить