16bit!

エンジニアじゃなくなっちゃった人が何かを書くブログ

【Delphi】MessageDlgのデフォルトボタンを変える

MessageDlgでデフォルトでフォーカスされているボタンを、CancelやNoにしたい場合
//以下はYesとNoを出してデフォルトフォーカスをNoにする場合のサンプル
try
  Dlg := CreateMessageDialog(msg,mtWarning,[mbYes,mbNo]);
  Dlg.ActiveControl := TWinControl(Dlg.FindComponent('No'));

  Result := Dlg.ShowModal;
finally
  Dlg.Free;
end;

MessageBoxならDefaultBtnを引数で渡すことができるが、


MessageDlgは出来ない。

仕方ないからいったんCreateDlgした後にActiveControlを変更するという方法で対応しました。