LoginSignup
0
1

More than 5 years have passed since last update.

C++ Builder XE4, 10.2 Tokyo > ModalResult > Close時はmrCancel

Last updated at Posted at 2017-10-19
動作環境
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になる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1