[MEMO] Использование диспетчера

Автор dr.Faust, 10 июня 2010, 13:24

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

dr.Faust

Для использования диспетчера вам необходимо будет получить два объекта API OOo — создать сервис com.sun.star.frame.DispatchHelper и получить доступ к фрейму (носителю GUI) целевого объекта. Далее нужно будет вызвать executeDispatch указав ему целевой фрейм и команду которую необходимо отправить указанному фрейму.
   Следующий код демонстрирует вставку из буфера обмена в позицию курсора:

Sub PasteFromDispatcher
   ' Вставка данных из буфера обмена
   Dim oFrame As Object
   Dim oDispath As Object
   ' Получаем фрейм документа
   oFrame      = ThisComponent.CurrentController.Frame
   ' Создаём диспетчер
   oDispath   = createUnoService("com.sun.star.frame.DispatchHelper")
   ' Выполняем действие
   oDispath.executeDispatch(oFrame, ".uno:Paste", "", 0, Array())
End Sub

   Для использования некоторых команд вам также придётся создать массив содержащий аргументы команды — массив структур com.sun.star.beans.PropertyValue.
   В следующем коде, выполняющем вставку формулы в текущую (активную) ячейку Calc, как раз используется команда диспетчера требующая аргументов:

Sub EnterFormulaFromDispatcher
   ' Ввод формулы в текущую ячейку листа Calc
   Dim oFrame As Object
   Dim oDispath As Object
   ' Получаем фрейм документа
   oFrame      = ThisComponent.CurrentController.Frame
   ' Создаём диспетчер
   oDispath   = createUnoService("com.sun.star.frame.DispatchHelper")
   ' Создаём массив аргументов
   Dim Args(0) As New com.sun.star.beans.PropertyValue
   Args(0).Name = "StringName"
   Args(0).Value = "=A1+A2"
   ' Выполняем действие
   oDispath.executeDispatch(oFrame, ".uno:EnterString", "", 0, Args())
End Sub

   В прикреплённом файле приведён полный перечень команд диспетчеру.

[вложение удалено Администратором]
Свобода информации - свобода личности!

convas

А почему столбец "Действие" практически пустой?


Рыбка Рио

#2
Там потому что, видимо, английские названия хорошо передают смысл. Можно перевести Гуглом. Вначале заменяем все .uno: на пустоту, затем заменяем ([a-z])([A-Z]) на $1 $2 (нужно в диалоге поиска и замены поставить галочку на регулярные выражения и учитывать регистр), чтобы к примеру из AdjustPrintZoom
получить Adjust Print Zoom, затем переводим переводчиком Гугл, и получаем:
Настройка печати Увеличить
Лучшие названиям
Автоматическое заполнение
Автоматический расчет
Формат ячеек Диалог
Принять изменения
Комментарий изменении
Трейс Change Mode
Показать изменения
Скрыть столбец
Установить оптимальные Ширина столбца Прямой
Подбор ширины колонки
Показать колонке
Ширина столбца
Условного форматирования
(...)

ubuntu 12.04 + LibO3.6.0

VlhOwn

Ежели это [МЕМО] предназначено для занесения в какие-то анналы, то после дядюшки Гугла неплохо бы еще напильничком доработать.

dr.Faust

Столбец  пустой потому, что ест надежда, что его помогут заполнить...
Свобода информации - свобода личности!

VlhOwn

Чтобы надежда тебя окончательно не съела, могу попробовать сделать это 16-го июня. Дотерпишь?