Показать сообщение отдельно
Старый 26.08.2015, 19:33   #12  
AlGol is offline
AlGol
Участник
 
277 / 93 (4) ++++
Регистрация: 24.12.2001
Адрес: Тверь.
По такому принципу пытаюсь переделать форматирование шрифта в ячейке, который был написан так:
X++:
void bold(MSOfficeBookMark_RU _bookMark, int _workSheet = 1)
{
    Com     MultiRange;
    Com     ComApplication;
    Com     Font;
    ;

    if (m_comDocument)
    {
        comApplication = m_comDocument.application();
        if (comApplication)
        {
            MultiRange = this.findRange(_bookMark, _workSheet);
            Font = MultiRange.Font();
            Font.Bold(1);
        }
    }
}
И не получается никак подобрать замену Font.Bold(1);

При написании такой конструкции
X++:
            funcGet = new ComDispFunction(Font, "Bold", COMDispContext::PropertyGet);
            varRet  = new COMVariant(COMVariantInOut::OUT_RETVAL, COMVariantType::VT_DISPATCH);
            varArgInt = new COMVariant(COMVariantInOut::In, COMVariantType::VT_INT);
            varArgInt.int(1);
            funcGet.call(varArgInt);
            //--------------
            //Font.Bold(1);
Получаю ошибку
--------------------
Метод "Bold" в COM-объекте класса "Font" возвратил код ошибки 0x8002000E (DISP_E_BADPARAMCOUNT), который означает: Число аргументов, указанных в вызове функции, отличается от числа аргументов в объявлении метода.
--------------------
При вызове без аргументов funcGet.call(); работает отлично.
Каким образом сделать шрифт болдом?
__________________
Ален ноби, ностра алис.
Что означает - если один человек построил, другой завсегда разобрать может.
За это сообщение автора поблагодарили: NeveB (1).