分析源代码:procedure TCustomForm.CloseModal;
var
  CloseAction: TCloseAction;
begin
  try
    CloseAction := caNone;
    if CloseQuery then
    begin
      CloseAction := caHide;
      DoClose(CloseAction);
    end;
    case CloseAction of
      caNone: ModalResult := 0;
////////////////////////////////////////////
// 这里是对 Action 的判断      caFree: Release;////////////////////////////////////////////
    end;
  except
    ModalResult := 0;
    Application.HandleException(Self);
  end;
end;// Release 方法procedure TCustomForm.Release;
begin
  PostMessage(Handle, CM_RELEASE, 0, 0);
end;// CMRelease 处理 CM_RELEASE 消息procedure TCustomForm.CMRelease;
begin
  Free; // 释放窗体
end;