主要形式是fsMDIForm

时间:2012-03-04 17:56:15

标签: forms delphi mdi

我需要一种方法来确定我的应用程序的mainform是否是fsMDIForm。

如何做到这一点?

3 个答案:

答案 0 :(得分:9)

您可以测试Application.MainForm.FormStyle

答案 1 :(得分:0)

假设您想知道另一个进程的主要表单(除了调用应用程序之外),那么如果您拥有该主表单的句柄,请使用:

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

答案 2 :(得分:0)

我最终得到了一个功能

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,我的表单可以在其中移动