--- ---

Here is some code that shows how to change the captions in a message dialog box.

    function MyMessageDialog(const Msg: string; DlgType: TMsgDlgType;
      Buttons: TMsgDlgButtons; Captions: array of string): Integer;
    var
      aMsgDlg: TForm;
      i: Integer;
      dlgButton: TButton;
      CaptionIndex: Integer;
    begin
      { Create the Dialog }
      aMsgDlg := CreateMessageDialog(Msg, DlgType, Buttons);
      captionIndex := 0;
      { Loop through Objects in Dialog }
      for i := 0 to aMsgDlg.ComponentCount - 1 do
      begin
       { If the object is of type TButton, then }
        if (aMsgDlg.Components[i] is TButton) then
        begin
          dlgButton := TButton(aMsgDlg.Components[i]);
          if CaptionIndex > High(Captions) then Break;
          { Give a new caption from our Captions array}
          dlgButton.Caption := Captions[CaptionIndex];
          Inc(CaptionIndex);
        end;
      end;
      Result := aMsgDlg.ShowModal;
    end;

Usage example:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if MyMessageDialog('How much...?', mtConfirmation, mbOKCancel,
        ['1', '2']) = mrOk then
        ShowMessage('"1" clicked')
      else
        ShowMessage('"2" clicked');
    end;