On-line: PSP, Haz, гостей 4. Всего: 6 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 295
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 24.07.07 22:50. Заголовок: Где можно взять примеры работы с OLE Open Office


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

Заранее благодарю.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 34 , стр: 1 2 All [только новые]







Пост N: 160
Зарегистрирован: 05.10.06
ссылка на сообщение  Отправлено: 18.08.16 17:52. Заголовок: Andrey пишет: "..


Andrey пишет:

 цитата:
"file://"


у меня так "file:///"

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3574
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.07.17 16:12. Заголовок: Хозяйке на заметку (..


Хозяйке на заметку (полезные рецепты):

В 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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5969
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 18.07.18 18:14. Заголовок: Всем привет. Как зак..


Всем привет.
Как закрыть Эксель, знаю: oExcel:Application:Quit()
А как закрыть OO Calc незнаю.
Может кто подскажет ?

И ещё один вопрос по Калку.
Как окно с Калком вывести на передний план ?
В Экселе это просто:
 
hWnd := oExcel:hWnd // хендл окна Excel
ShowWindow( hWnd, 6 ) // MINIMIZE windows
ShowWindow( hWnd, 3 ) // MAXIMIZE windows
BringWindowToTop( hWnd ) // a window on the foreground



Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3778
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 19.07.18 08:17. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как закрыть OO Calc незнаю.
Может кто подскажет ?



гугль сразу же подсказал:

oDoc:close(.t.)

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5972
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.18 12:17. Заголовок: Pasha пишет: oDoc:c..


Pasha пишет:

 цитата:
oDoc:close(.t.)


СПАСИБО !

А как быть со вторым вопросом ?


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6876
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.18 13:32. Заголовок: Andrey пишет: А как..


Andrey пишет:

 цитата:
А как быть со вторым вопросом ?


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5973
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.18 14:25. Заголовок: Не, не то... Как пол..


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


Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6877
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 19.07.18 14:30. Заголовок: Andrey Попробуй гуг..


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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5974
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 19.07.18 17:32. Заголовок: Спасибо Дима. Код п..


Спасибо Дима.

Код перевести не смог. Сделал по старинке - перебором окон, как для Ворда.
Только срабатывает код ОДИН раз, если есть открытое окно уже с Калком,
то повторный перевод окна на передний план не срабатывает.
По ссылке что ты дал, там об этом и говорилось.

Кому интересно, вот код:
Скрытый текст



Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6728
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 21.06.20 12:23. Заголовок: Andrey пишет: Как п..


Andrey пишет:

 цитата:
Как получить хендл окна с Калком ?
Для Экселя так:

hWnd := oExcel:hWnd // хендл окна Excel



Возвращаюсь опять к этому вопросу !
Как получить хендл окна для OO Calc и для LibreOffice ?

Пример MiniGUI\SAMPLES\Advanced\Tsb_Export\demo.exe работает и под LibreOffice

Только там настроено переключение окна на OO Calc.
Как сделать универсальной функцию:
// окно Calc на передний план  
// срабатывает только если нет окна ОО 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


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3268
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 21.06.20 12:49. Заголовок: Andrey пишет Как пол..


Andrey пишет
 цитата:
Как получить хендл окна для OO Calc и для LibreOffice ?


В hmg есть ф-я EnumWindows(), попробуй через нее определить
 
LOCAL ahWnd := EnumWindows()
FOR nI := 1 TO Len(ahWnd)
? nI, , ahWnd[ nI ], GetClassName(ahWnd[ nI ]), GetWindowText(ahWnd[ nI ])
NEXT
в списке найди ClassName и Text для нужных окон потом по ним получи нужные handle
*-----------------------------------------------------------------------------*
STATIC FUNCTION myGetWindowHandles( cText, cClass, lLogOut )
*-----------------------------------------------------------------------------*
LOCAL i, h, t
LOCAL aWnd := EnumWindows()
LOCAL aTmp := {}
LOCAL aRet := {}

IF empty(cClass); aTmp := aWnd
ELSE ; AEVal(aWnd, {|hw| iif( GetClassName(hw) == cClass, AAdd( aTmp, hw ), )})
ENDIF

IF ! empty(cText) .and. HB_ISCHAR(cText) .and. Len(aTmp) > 0
FOR EACH h IN aTmp
t := GetWindowText( h )
IF cText $ t ; AAdd( aRet, h )
ENDIF
NEXT
ELSE
aRet := aTmp
ENDIF

IF ! Empty(lLogOut)
FOR i := 1 TO Len(aTmp)
t := GetWindowText(aTmp[ i ])
_FileLog( str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t )
NEXT
ENDIF

RETURN aRet


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6729
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.20 11:53. Заголовок: SergKis пишет: в сп..


SergKis пишет:

 цитата:
в списке найди ClassName и Text для нужных окон


А без класса нельзя ?
Нет у меня LibreOffice . Не знаю какой класс для него используется.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3269
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 22.06.20 12:07. Заголовок: Andrey У тебя текст..


Andrey
У тебя текст ф-ии перед глазами, разберись, запусти myGetWindowHandles( , , .T. )
поправь только (я из своей версии переносил)
_FileLog( .T., str(i, 5), aTmp[ i ], GetClassName(aTmp[ i ]), t )

Получишь весь список handle окон с классами и title текстом
Если запустишь где уст. LibreOffice узнаешь имя класса (у меня тоже его нет).
Вопрос. Меняется ли имя класса от версии ?
Если знаешь кусок текста в title окна для LibreOffice, задай его.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 6730
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 22.06.20 12:12. Заголовок: SergKis пишет: запу..


SergKis пишет:

 цитата:
запусти myGetWindowHandles( , , .T. )


Запустил. Переделываю его под себя.
SergKis пишет:

 цитата:
Если знаешь кусок текста в title окна для LibreOffice, задай его.


Да делаю поиск по имени файла.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 34 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 368
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет