Показать сообщение отдельно
Старый 01.07.2010, 10:58   #2  
Alexanderrrr is offline
Alexanderrrr
Участник
Аватар для Alexanderrrr
 
54 / 19 (1) ++
Регистрация: 06.03.2009
Адрес: Саратов
Копал не в том направлении.

Привожу работающий код для добавления прямоугольника в OpenOffice:

X++:
    COM oRange;
    COM oSheets;
    COM oSheet;
    COM oShape;
    COM oSize;
    COM oPos;
    COM oPage;
    ComDispFunction func;
    COMVariant varArg1 = new COMVariant();
    ;

    //что такое oDocument можно посмотреть в предыдущей теме про опенофис
    oSheets   = oDocument.getSheets();
    oSheet    = oSheets.getByIndex(0);

    oPage = osheet.getDrawPage();
    oShape = oDocument.createInstance('com.sun.star.drawing.RectangleShape');    

    //зададим размеры прямоугольника
    oSize = oDocument.Bridge_GetStruct('com.sun.star.awt.Size');
    
    func = new COMDispFunction(oSize, "width",  COMDispContext::PropertyPut);
    varArg1.int(1000);
    func.call(varArg1);
    
    func = new COMDispFunction(oSize, "height",  COMDispContext::PropertyPut);
    varArg1.int(1000);
    func.call(varArg1);        
    
    oShape.setSize(oSize);

    //зададим позицию прямоугольника
    oPos = oDocument.Bridge_GetStruct('com.sun.star.awt.Point');

    func = new COMDispFunction(oPos, "x",  COMDispContext::PropertyPut);
    varArg1.int(100);
    func.call(varArg1);
    
    func = new COMDispFunction(oPos, "y",  COMDispContext::PropertyPut);
    varArg1.int(100);
    func.call(varArg1);
   
    oShape.setPosition(oPos);
 
    oPage.add(oShape);
__________________
..в каждой программе есть хотя бы одна ошибка..