I am doctor (X-ray). Asking my friend to create text macros for me to write protocols faster. I just wanted to push ALT+Q (or another letter). Then push ALT+number (from 0 to 9). For each ALT+number I insert prepared text. It is work. Part of inserted text should be bold. I insert text, then select 2-3 words and press Ctrl+B. But I wanted to customised macro.
I need: vvod(0).Value = //bold "Вариант строения bold// — // regular один корень, один канал. regular//"
I tried to figure it out on my own, but I can't, because I'm a piece of shit. Can someone tell me in which direction to think, because I'm stuck?
I am attaching part of the code.
enter code here
REM ***** BASIC *****
GLOBAL number as Integer
GLOBAL vid as Integer
public Sub Main
End Sub
public Sub ALTQ
vid = 1
End Sub
public Sub ALTW
vid = 2
End Sub
public Sub ALTE
vid = 3
End Sub
public sub ALT1
number = 1
solve()
end sub
public sub ALT2
number = 2
solve()
end sub
public sub ALT3
number = 3
solve()
end sub
public sub solve
rem —-----------------------------------------------------------------------------------—
rem Определение переменных и получение доступа к ним, не трогай
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem —---------------------------------------------------------—
rem определение переменных, которые ты сам будешь создавать и использовать
dim vvod(0) as new com.sun.star.beans.PropertyValue
rem Name обязательно равняется ТЕКСТ
vvod(0).Name = "Text"
rem —------------------------------------------------------------------------------------—
if vid = 1 Then
if number = 1 Then
vvod(0).Value = "коронковая часть реставрирована. "
elseif number = 2 Then
vvod(0).Value = "коронковая часть реставрирована пломбами. "
elseif number = 3 Then
vvod(0).Value = "депульпирован. Коронковая часть реставрирована. "
End if
I tried to figure it out myself and this is what I came up with:
1)
Dim sVar As String
sVar = "Это тест"
sVar.CharWeight = com.sun.star.awt.FontWeight.BOLD
error
2)
Dim TextX As Object
TextX.String = "Это тест"
RectangleShape.CharWeight = com.sun.star.awt.FontWeight.BOLD
vvod(0).Value = TextX
error
I will be very grateful if you help me.
I'm unable to give exact details because I don't use Libreoffice Basic but in python
you need to grab the cursor
and apply the font attributes to that.
ie something along the lines of:
desktop = XSCRIPTCONTEXT.getDesktop()
cursor = desktop.getCurrentComponent().getCurrentController().getViewCursor()
oFontWeight = cursor.CharWeight
Text_Weight = FontWeight.BOLD
cursor.CharWeight=Text_Weight
text.insertString(cursor, insert_text, 0)
cursor.CharWeight=oFontWeight
In principle, grab the current cursor and make a note of the current setting.
Apply Bold text to the cursor
Insert text using the adjusted cursor
Reset cursor to previous text setting, or everything after this will be Bold .
ps I'm still grinning at your description of yourself. Good luck!
The above assumes:
model = desktop.getCurrentComponent()
text = model.Text
and that you imported com.sun.star.awt.FontWeight
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.