Как вариант, чем Вам не подходит?
Код:
var I:integer;
begin
with CreateMessageDialog('message', mtConfirmation, [mbYes, mbCancel]) do
try
for i := 0 to componentcount - 1 do begin
if components[i].classname = 'TButton' then
if (components[i] as TButton).modalResult = mrYes then
(components[i] as TButton).caption := 'A';
if components[i].classname = 'TButton' then
if (components[i] as TButton).modalResult = mrcancel then
(components[i] as TButton).caption := 'B';
end;
Caption := 'aaa';
ShowModal;
finally
Release;
end;
Просто заменяем заголовки кнопок.
События отлавливай через ShowModal.