Тема: MDI формы
Показать сообщение отдельно
  #3  
Старый 22.05.2009, 15:03
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Ограничить область перемещения окна можно так.

А так можно сделать, чтобы дочерняя форма разворачивалась только на всю клиентскую область родительской (чтобы системное меню с кнопками оставалось видимым):
Код:
procedure WMSIZE(var Msg: TMessage); message WM_SIZE;

................................

procedure TForm2.WMSIZE(var Msg: TMessage);
begin
  inherited;
  if Msg.WParam = SIZE_MAXIMIZED then
  begin
    ShowWindow(Handle, SW_RESTORE);
    Left := 0;
    Top := 0;
    Width := Form1.ClientWidth - 4; // бордюр 4 px...
    Height := Form1.ClientHeight - 4;
  end;
end;

P.S. Эту процедуру нужно вписать в Unit дочерней формы.
P.P.S. Забыла пояснить, что у меня в этом примере Form1 —fsMDIForm, а Form2 — fsMDIChild.
Ответить с цитированием