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

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

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

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: начало и конец страницы  (Прочитано 3216 раз)
0 Пользователей и 1 Гость смотрят эту тему.
shadow_mmv
Участник
**
Offline Offline

Сообщений: 9


« Стартовое сообщение: 31 Август 2012, 10:42 »

Уважаемые! подскажите пожалуйста как узнать начало и конец страницы в Basic. делаю ThisComponent.CurrentController.ViewCursor.Start для того чтобы сравнить в compareRegionStarts.

но судя по результатам, возвращается положение относительно какой-то текстовой области а не страницы. потому что на одной странице курсор до и после якоря дают разные результаты.
Записан
ALexey7ov
Участник
**
Offline Offline

Пол: Мужской
Расположение: г.Мелеуз
Сообщений: 17



WWW
« Ответ #1: 9 Октябрь 2012, 12:48 »

Код:
Option Explicit ' Включение обязательного объявления переменных
dim oDoc as object ' Объявление переменной модели текстового документа
dim flag as boolean ' Объявление логической переменной типа документа
dim oTCurs as object ' Объявление переменной модели текстового курсора
dim oVCurs as object ' Объявление переменной модели видимого текстового курсора

sub Sravnen
Rem Программа трёхпозиционного определения положения видимого курсора
Rem Для http://forumooo.ru/index.php/topic,2837.0.html
Rem Использует подпрограмму TextDocComp
dim oTCursStartPage as object ' Объявление переменной модели текстового курсора конца страницы
dim oTCursEndPage as object ' Объявление переменной модели текстового курсора начала страницы
call TextDocComp ' Вызов подпрограммы определения типа документа
if flag=false then exit sub ' Если открытый документ не является текстовым, выход из процедуры
oVCurs=oDoc.CurrentController.getViewCursor ' Получение модели видимого текстового курсора
oTCurs=oDoc.text().CreateTextCursorByRange(oVCurs.getstart()) ' Создание текстового курсора в позиции видимого
oVCurs.jumpToStartOfPage ' Видимый курсор переходит к началу страницы
oTCursStartPage=oDoc.text().createTextCursorByRange(oVCurs.getstart())
oVCurs.jumpToEndOfPage ' Видимый курсор переходит к концу страницы
oTCursEndPage=oDoc.text().createTextCursorByRange(oVCurs.getstart())
oVCurs.gotoRange(oTCurs,false) ' Переход в изначальную позицию курсора
if oDoc.Text().compareRegionStarts(oTCurs.getStart(),oTCursStartPage.getStart())=0 then
msgbox "Видимый курсор находится в начале страницы.",64,"Готово."
elseif oDoc.Text().compareRegionStarts(oTCurs.getStart(),oTCursEndPage.getStart())=0 then
msgbox "Видимый курсор находится в конце страницы.",64,"Готово."
else
msgbox "Видимый курсор находится где то на странице.",64,"Готово."
endif
end sub

sub TextDocComp
Rem Подпрограмма распознаёт тип документа
oDoc=thiscomponent
flag=true ' Состояние флага перед проверкой типа документа
rem Макрос, проверяющий, является ли текущий открытый документ
rem текстовым документом, если нет, флаг переходит в отрицательное состояние
if not oDoc.supportsservice("com.sun.star.text.TextDocument") then
msgbox "Документ не является текстовым документом Writer."&chr(13)_
&"Поэтому этот макрос не применим для него."&chr(13)_
&"Откройте или создайте текстовый документ"&chr(13)_
&"для возможности работы программы.",16,"Сообщение."
flag=false
end if
end sub
« Последнее редактирование: 9 Октябрь 2012, 12:54 от ALexey7ov » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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