動作環境
C++ Builder XE4
RAD Studio 10.2 Tokyo Update 2 (追記: 2018/01/05)
Form1からForm2をShowModal()で開いている場合を考える。
Form2を閉じた時の戻り値はModalResultの値になると認識している。
Form2でClose()した場合にModalResultの値はどうなるか疑問に思った。
関連
モーダルなフォームのOnShowイベントでそのフォームを閉じる by Owl's perspectiveさん
情報感謝です。
Close()した時のModalResult値
上記リンク先ではDelphi2007のForms.pasにてModalResult
への代入例がある。
XE4の場合は、Vcl.Forms.pas
が該当しそう。
TCustomForm.Closeにおいて以下の実装が見つかった。
Vcl.Forms.pas
procedure TCustomForm.Close;
var
CloseAction: TCloseAction;
begin
if fsModal in FFormState then
ModalResult := mrCancel
else
...
end;
end;
実際にClose()で閉じた場合はmrCancelになることを確認した。
フォームを開いた時にModalResultの値をmrNoneにする例などを見たことがあるが、Close()をした場合には上記の例ではmrCancelになる。