Нажать кнопку на панели инструментов

Автор convas, 9 июня 2010, 09:50

0 Пользователи и 1 гость просматривают эту тему.

convas

Можно ли программно нажать кнопку на панели инструментов, нажать на пункт меню?

N2H4

#1
Можно так - по имени команды, соответствующей пункту меню или кнопке (например, "Найти и заменить..." - SearchDialog)

sub testuno
dim oProvider   as Object
dim oDispHelper as Object

oProvider   = ThisComponent.CurrentController.Frame
oDispHelper = createUnoService("com.sun.star.frame.DispatchHelper")
oDispHelper.executeDispatch(oProvider, ".uno:SearchDialog", "", 0, Array())
end sub

или по номеру соответствующего слота ("Найти и заменить..." - 5961)

sub testslot
GlobalScope.BasicLibraries.LoadLibrary("Tools")
DispatchSlot(5961)
end sub

Главное здесь - найти имя/номер нужной команды: при записи макроса часто отпечатываются не те имена, что нужны.
Список всех есть по адресу http://api.openoffice.org/files/documents/22/1344/slots.sxc

в книге Питоньяка "OpenOffice.org. Объяснение макросов" (OpenOffice.org Macros Explained.Master.pdf) сказано, что изменение номеров слотов более вероятно, чем изменение имён, а также что лучше так, как здесь написано, вообще не делать. :-)

Игнорируя это предостережение, пользуюсь обоими способами довольно часто, и ничего - со времён OOo 1.x у применяемых мной команд не изменились ни имена, ни номера - видимо, действительно нет ничего более постоянного, чем вр́еменные конструкции.

convas

N2H4, спасибо за информацию к размышлению.

Рыбка Рио

См. также тему (там есть ссылка на тот же файл, что и ниже).

[вложение удалено Администратором]
ubuntu 12.04 + LibO3.6.0

ape

#4
Питоньяк на русском (есть пока доступные для скачивания ссылки):
1. http://biotex.ibss.org.ua/lib_profile.html?id=441 - страница; http://biotex.ibss.org.ua/ftp/library/computer/soft_manual/Pitoniyak2004.pdf.zip - ссылка.
2. http://topdownloads.ru/documents/file/OpenOffice-org-Macros-Explained-Master/3316438.htm - страница; http://authors.i-rs.ru/Basic/OpenOffice.org%20Macros%20Explained.Master.pdf - ссылка.