Показать сообщение отдельно
Старый 01.11.2012, 11:09   #15  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Перепешите метод класса ComOfficeDocument_RU.visible() следующим образом

X++:
// Show / hide application
public void visible(boolean _bVisible = true)
{
    ComVariant      comVariant;
    COMDispFunction funcDisp;
    ;

    if (!m_comApplication)
        throw error(StrFmt("@DIS100406", this.GetApplicationName()));

    this.activate(_bVisible); // Activate application, if necessary

    comVariant = ComVariant::createFromBoolean(_bVisible);
    // RTG, 05.08.2010, МВБ -->
    // По непонятным причинам в Excel 2007 следующая команда ИНОГДА приводит к ошибке
    // Метод был вызван с неверным числом параметров.
    // Чтобы ее обойти необходимо сделать присвоение свойству через COMDispFunction
//    m_comApplication.Visible(comVariant);

    funcDisp = new COMDispFunction(m_comApplication, "Visible", COMDispContext::PROPERTYPUT);
    funcDisp.call(comVariant);
    funcDisp.finalize();
    // RTG, 05.08.2010, МВБ <--

}
После этого сделайте инкрементную компиляцию класса ComOfficeDocument_RU
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Antonuch (1).