Форум » [x]Harbour » Где можно взять примеры работы с OLE Open Office » Ответить

Где можно взять примеры работы с OLE Open Office

Andrey: Всем привет. В связи с борьбой с пиратами нужно переползать на открытый ОФИС. А как работать с этим OLE в хХарборе - я не знаю. Может кто-нибудь поделиться примерами ? Заранее благодарю.

Ответов - 29, стр: 1 2 All

MIKHAIL: Andrey пишет: "file://" у меня так "file:///"

Pasha: Хозяйке на заметку (полезные рецепты): В OpenOffice Calc пожно заполнять значения сразу диапазону ячеек, состоящему из нескольких строк. Пример (несамодостаточный): ... nRow := 10 nCol := 1 oRange := oSheet:getCellRangeByPosition(nCol-1, nRow-1, nCol+1, nRow) oRange:setDataArray({{1,2,"Example"},{4,5,"fill"}}) Причем для OO не надо создавать двумерный массив, как это требует MS Excel, а достаточно передать одномерный массив Variant, каждый элемент которого является подмассовом, как это и делает harbour hbwin

Andrey: Всем привет. Как закрыть Эксель, знаю: oExcel:Application:Quit() А как закрыть OO Calc незнаю. Может кто подскажет ? И ещё один вопрос по Калку. Как окно с Калком вывести на передний план ? В Экселе это просто:[pre2] hWnd := oExcel:hWnd // хендл окна Excel ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // a window on the foreground[/pre2]


Pasha: Andrey пишет: А как закрыть OO Calc незнаю. Может кто подскажет ? гугль сразу же подсказал: oDoc:close(.t.)

Andrey: Pasha пишет: oDoc:close(.t.) СПАСИБО ! А как быть со вторым вопросом ?

Dima: Andrey пишет: А как быть со вторым вопросом ? Помнится ты с MS WORD тоже долго парился на эту тему , попробуй в нее заглянуть , мож поможет.

Andrey: Не, не то... Как получить хендл окна с Калком ? Для Экселя так: [pre2]hWnd := oExcel:hWnd // хендл окна Excel [/pre2]

Dima: Andrey Попробуй гугл спросить Вот тут обсуждали тему тут

Andrey: Спасибо Дима. Код перевести не смог. Сделал по старинке - перебором окон, как для Ворда. Только срабатывает код ОДИН раз, если есть открытое окно уже с Калком, то повторный перевод окна на передний план не срабатывает. По ссылке что ты дал, там об этом и говорилось. Кому интересно, вот код: [pre2].... If lActivate oDoc:getCurrentController:getFrame:getContainerWindow:setVisible( .t. ) SetCalcWindowToForeground(cFile) Else oDoc:close(.t.) // закрыть Calc EndIf RETURN Nil ////////////////////////////////////////////////////////////////////// // окно Calc на передний план STATIC FUNCTION SetCalcWindowToForeground(cFile) LOCAL hWnd, cTitle // поиск ХЕНДЛА открытого окна документа cTitle := hb_FNameNameExt(cFile) + " - OpenOffice Calc" hWnd := FindWindowEx(,,, cTitle ) IF hWnd == 0 MsgStop("Не нашёл окно: " + cTitle, "Error") ENDIF IF hWnd > 0 ShowWindow( hWnd, 6 ) // MINIMIZE windows ShowWindow( hWnd, 3 ) // MAXIMIZE windows BringWindowToTop( hWnd ) // A window on the foreground ENDIF RETURN NIL[/pre2]



полная версия страницы