Показать сообщение отдельно
Старый 17.06.2011, 01:03   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В итоге переписали метод на .Net
Глюк ядра обошли.

X++:
//pkoz 16.06.2011
// GRD_R2301_reservationMany_pkoz //pkoz 16.06.2011
// обходим глюк ядра когда в диалог попадал текст из статус бара
// [url]http://msdn.microsoft.com/ru-ru/library/6wc4zekd.aspx[/url]
public
client
//server
static DialogButton yesNo_Net(
    str             _text,
    DialogButton    _defaultButton,
    str             _title          = "@SYS11132",
    str             _bottomText     = '')
{
    DialogButton                                    ret;
    System.Windows.Forms.MessageBoxDefaultButton    NetDefaultButton;
    InteropPermission                               interopPerm;
    ;
    if (clientKind() == ClientType::COMObject)
        return _defaultButton;
//    GRD_CheckDialogInTTS("Box::yesNo_Net"); // GRD_CheckDialogInTTS_pkoz, Ловим диалоги внутри транзакции, pkoz, 17.12.2008
    if( SysTaskRecorderEventManager::parmRecording() )
        return SysTaskRecorderGlobal::handleDialogButton(DialogBoxType::YesNoBox, _text, _title, _bottomText, _defaultButton);
/*
    return  new DialogBox(DialogBoxType::YesNoBox,
                          _text,
                          _title,
                          _bottomText,
                          _defaultButton).retval();
*/

    // get dll interop permission
    interopPerm = new InteropPermission(InteropKind::ClrInterop);
    interopPerm.assert();

    if (_defaultButton == DialogButton::Yes)
    {
        NetDefaultButton = System.Windows.Forms.MessageBoxDefaultButton::Button1;
    }
    else
    {
        NetDefaultButton = System.Windows.Forms.MessageBoxDefaultButton::Button2;
    }

    if (System.Windows.Forms.DialogResult::Yes ==
        System.Windows.Forms.MessageBox::Show(
            _text,
            _title, // для _bottomText места не нашлось - и фиг с ним
            System.Windows.Forms.MessageBoxButtons::YesNo,
            System.Windows.Forms.MessageBoxIcon::Question,
            NetDefaultButton
            )
       )
    {
        ret = DialogButton::Yes;
    }
    else
    {
        ret = DialogButton::No;
    }
    return ret;
}
За это сообщение автора поблагодарили: lev (3).