Является ли основная форма fsMDIForm - PullRequest
1 голос
/ 04 марта 2012

Мне нужен способ выяснить, является ли основная форма моего приложения fsMDIForm.

Как это можно сделать?

Ответы [ 3 ]

9 голосов
/ 04 марта 2012

Вы можете проверить Application.MainForm.FormStyle.

0 голосов
/ 05 марта 2012

Я закончил с функцией

function GetMovementArea: TRect;
var
  MovementRect: TRect;
begin
  if Application.MainForm.FormStyle = fsMDIForm then
    Windows.GetWindowRect(Application.MainForm.ClientHandle, MovementRect)
  else
    SystemParametersInfo(SPI_GETWORKAREA, 0, @MovementRect, 0);
  Result := MovementRect;
end;

Возвращает TRECT, в котором моя форма может перемещаться

0 голосов
/ 04 марта 2012

Предполагая, что вы хотите знать для главной формы другого процесса (кроме вызывающего приложения), тогда, если у вас есть дескриптор этой главной формы, используйте:

MDIActive := FindWindowEx(MainFormHandle, 0, PAnsiChar('MDICLIENT'), nil) <> 0;
...