MassageDlgの第3引数で、デフォルトのメッセージではなく、
任意のメッセージとして表示させたいのですが、
mbOKやmbCancelでメッセージとして「OK」や「キャンセル」を
表示するのではなく、自分の好きなメッセージを出すには
どのようにしたらよいのでしょうか?
よろしくお願いします。
これでしょうか?
http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=27#0011.txt
MessageDlgでは、無理でしょうか?
> MessageDlgでは、無理でしょうか?
無理じゃないけど面倒。
わたしだったら自分で Form3 かなんかでつくりますけど。5分くらいでできるんでは。
> 無理じゃないけど面倒。
こんな感じです。
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;
ありがとうございます。
勉強になります。
そうですね、jokさんのおっしゃるとおり、別のフォームで
作ればいいんですね。
試してみたいと思います。
ツイート | ![]() |