Мне нужен способ выяснить, является ли основная форма моего приложения fsMDIForm.
Как это можно сделать?
Вы можете проверить Application.MainForm.FormStyle.
Application.MainForm.FormStyle
Я закончил с функцией
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, в котором моя форма может перемещаться
Предполагая, что вы хотите знать для главной формы другого процесса (кроме вызывающего приложения), тогда, если у вас есть дескриптор этой главной формы, используйте:
MDIActive := FindWindowEx(MainFormHandle, 0, PAnsiChar('MDICLIENT'), nil) <> 0;