Как выделить несколько участков текста? [ЧАСТИЧНО РЕШЕНО]

Автор Рыбка Рио, 24 мая 2010, 18:04

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

smaharbA

#15
как то так (в мсо есть замечательное свойство чарсетс)

global pos
sub getPos
doc=ThisComponent
contr=doc.CurrentController
curs=contr.getViewCursor
sel=doc.getCurrentSelection()
txtRange=sel.getByIndex(0)
curs.gotostart(false)
curs.gotoRange(txtRange.getStart,true)
sel=doc.getCurrentSelection()
txtRange=sel.getByIndex(0)
pos=len(txtRange.getString())
cur.gotoRange(txtRange.getEnd,false)
end sub

sub goPos
doc=ThisComponent
contr=doc.CurrentController
curs=contr.getViewCursor
curs.gotostart(false)
curs.goright(pos,false)
end sub


глобальная для примера
Я конечно далек от мысли... (с)

Рыбка Рио

Что-то напутано в макросе выше. Кстати, в строчке
Цитироватьcur.gotoRange(txtRange.getEnd,false)
опечатка. cur ---> curs

Не работает почему-то.
Так тоже не работает:
curs.goRight(10,false)
curs.goRight(10,true)
curs.goRight(10,false)
curs.goRight(10,true)

ubuntu 12.04 + LibO3.6.0

smaharbA

так понятнее ? (это к вопросу возвращения на позицию после рукоприкладства)

function getPos(doc)
contr=doc.CurrentController
curs=contr.getViewCursor
sel=doc.getCurrentSelection()
txtRange=sel.getByIndex(0)
curs.gotostart(false)
curs.gotoRange(txtRange.getStart,true)
sel=doc.getCurrentSelection()
txtRange=sel.getByIndex(0)
Pos=len(txtRange.getString())
curs.gotoRange(txtRange.getEnd,false)
getPos=Pos
end function

sub ClearAndGoPos
disp=createUnoService("com.sun.star.frame.DispatchHelper")
doc=ThisComponent
contr=doc.CurrentController
frame=contr.Frame
curs=contr.getViewCursor
Pos=getPos(doc)
curs.goLeft(10,false)
curs.goRight(20,true)
disp.executeDispatch(frame,".uno:Cut","",0,Array())
curs.gotostart(false)
curs.goright(Pos,false)
end sub
Я конечно далек от мысли... (с)