Помогите !!!!!На слайде нарисована таблица.Ка...

Автор ForumOOo (бот), 14 ноября 2012, 20:57

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

Yakov

Доработанный вариант.
Пришлось по ячейкам таблицы нарисовать прозрачные прямоугольники,
и на них подключить обработчики событий, так как стандартное событие при клике на таблицу
не работает как ожидалось

[вложение удалено Администратором]

NataliaGirl

Спасибо огромное)))))А почему когда презентация в режиме демонстрации не работает макрос по выделению ячейки??Просто если запустить, то на втором слайде ничего не будет, а когда выйти из режима демонстрации, то на втором слайде видно залитую ячеку?И так же происходит с кнопками математических операций...

Yakov

Я это то же заметил.
Надо ещё в макрос по выделению ячейки дописать команду по переходу на новый слайд.
И по макросам - событиям нажатиям на кнопки добавить команду на перезагрузку  слайда (освежению информации на слайде).

NataliaGirl

А как это дописать???Как примерно должна выглядеть процедура??

Yakov

По идее должно быть что -то типа [объект].refresh  Но такой вариант не работает.
Точно работает такой вариант:
если у объекта (например строки) установить событие по щелчку мыши, и выбрать лицу
команду "перейти  к слайду или объекту"  и в качестве объекта выбрать любой объект на текущем слайде (я выбирал таблицу),
то происходит перерисовка слайда, и строка обновляется!


p.s.
Ещё есть хорошая книга по программированию на OpenOffice (перевод на русский язык), но к сожалению, примеров по Impress и Draw там очень мало...

http://www.pitonyak.org/AndrewMacro_rus.odt

NataliaGirl

Извините, что опять беспокою..но у меня все равно не получается сделать так что бі при нажатии на кнопку осуществился переход на второй слайд и обновилась таблица...не могу дописать макрос(((

Hasim

Цитата: NataliaGirl от 30 ноября 2012, 16:17обновилась таблица...не могу дописать макрос
Нужно добавить макрос
Sub RndFill
oDoc = ThisComponent
oPresentation = oDoc.Presentation
oController = oPresentation.getController()
oController.gotoSlideIndex(1)
End Sub

и вставить вызов этого макроса, например в макрос main(), вызываемый по щелчку на верхней таблице
sub main()
...
...
Cell.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Cell.FillColor = 222222

RndFill

End sub


Теперь при щелчке на ячейке верхней таблицы будет окрашиваться ячейка в нижней таблице.



[вложение удалено Администратором]

Yakov

#22
Цитата: Hasim от  1 декабря 2012, 00:22Нужно добавить макрос
Макрос RndFill надо добавить в конец всех процедур в программу из http://forumooo.ru/index.php/topic,2981.msg18482.html#msg18482
тогда всё будет работать правильно, и ввод команд + - / * и щелчки по ячейкам будут сразу же копироваться в строку формул (возможна задержка до 1 секунды в полноэкранном режиме)

NataliaGirl

#23
Спасибо)))Все работает)))Добавила тот макрос ко всем функциям мат операций, ячейкам и кнопочкам все работает)))Хотя и видна задержка, даже не 1 секунда...У меня вообще Libre не то что долго думает, даже загружается минут 5(((

Yakov

Цитата: NataliaGirl от  1 декабря 2012, 14:47У меня вообще Libre не то что долго думает, даже загружается минут 5(((
Если сравнивать LibreOffice 3.4 и OpenOffice 3.4.1, то время первоначального старта у OpenOffice 3.4.1 гораздо быстрее, чем у LibreOffice 3.4. Скорость же работы программ в загруженном состоянии примерно одинаковая.
Вот только LibreOffice выигрывает в скорости  у OpenOffice 3.4.1 при открытии docx,  xlsx  (документов формата MSO 2007, MSO 2010)