Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

18 Апрель 2021, 18:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: [MEMO] Использование диспетчера  (Прочитано 6203 раз)
0 Пользователей и 1 Гость смотрят эту тему.
dr.Faust
Администратор
**
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Стартовое сообщение: 10 Июнь 2010, 12:24 »

Для использования диспетчера вам необходимо будет получить два объекта 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

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

[вложение удалено Администратором]
« Последнее редактирование: 13 Июнь 2010, 16:55 от dr.Faust » Записан

Свобода информации - свобода личности!
convas
Форумчанин
***
Offline Offline

Сообщений: 310


« Ответ #1: 10 Июнь 2010, 19:14 »

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

Записан
Рыбка Рио
Форумчанин
***
Offline Offline

Сообщений: 1 678


« Ответ #2: 10 Июнь 2010, 22:44 »

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

ubuntu 12.04 + LibO3.6.0
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #3: 10 Июнь 2010, 23:11 »

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

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 340


« Ответ #4: 10 Июнь 2010, 23:15 »

Столбец  пустой потому, что ест надежда, что его помогут заполнить...
Записан

Свобода информации - свобода личности!
VlhOwn
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ростов-на-Дону
Сообщений: 1 076


« Ответ #5: 11 Июнь 2010, 00:08 »

Чтобы надежда тебя окончательно не съела, могу попробовать сделать это 16-го июня. Дотерпишь?
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!