MassageDlgのcaptionを変更するには?

解決


PND  2004-05-26 01:50:45  No: 9122

MassageDlgの第3引数で、デフォルトのメッセージではなく、
任意のメッセージとして表示させたいのですが、
mbOKやmbCancelでメッセージとして「OK」や「キャンセル」を
表示するのではなく、自分の好きなメッセージを出すには
どのようにしたらよいのでしょうか?
よろしくお願いします。


ふぐちゃん  2004-05-26 02:10:52  No: 9123

これでしょうか?
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=27#0011.txt


PND  2004-05-26 05:06:06  No: 9124

MessageDlgでは、無理でしょうか?


jok  2004-05-26 05:27:30  No: 9125

> MessageDlgでは、無理でしょうか?

無理じゃないけど面倒。
わたしだったら自分で Form3 かなんかでつくりますけど。5分くらいでできるんでは。


jok  2004-05-26 10:11:58  No: 9126

> 無理じゃないけど面倒。

こんな感じです。

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    procedure WMApp(var Msg:TMessage);message WM_APP;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle,WM_APP,0,0);
  if MessageDlg('mbYes のキャプションを「うん」に変えたよ',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    ShowMessage('「うん」を選んだね');
end;

procedure TForm1.WMApp(var Msg: TMessage);
var
  Form:TForm;
  YesButton:TButton;
  i:integer;
begin
  YesButton := nil;
  Form := Screen.ActiveForm;
  for i := 0 to Form.ControlCount-1 do
    if Form.Controls[i] is TButton then
      if TButton(Form.Controls[i]).Caption = 'はい(&Y)' then
        YesButton := TButton(Form.Controls[i]);
  if Assigned(YesButton) then YesButton.Caption := 'うん(&U)';
end;


PND  2004-05-26 18:41:18  No: 9127

ありがとうございます。
勉強になります。
そうですね、jokさんのおっしゃるとおり、別のフォームで
作ればいいんですね。
試してみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加