[[oktatas:programozás:basic:basic_libreoffice|< Basic LibreOffice]]
====== Basic LibreOffice Writer ======
* **Szerző:** Sallai András
* Copyright (c) 2011, Sallai András
* Szerkesztve: 2011, 2013
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Szöveg beszúrása =====
sub Beir
Doc = ThisComponent
cur = Doc.getText.createTextCursor
Doc.getText.insertString(cur, "valami", false)
end sub
===== Fájl megnyitása, új fájl =====
Set oSM = CreateObject("com.sun.star.ServiceManager")
Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
Dim args()
rem Meglévő dokumentum megnyitása
Set oDoc = oDesk.loadComponentFromURL("file:///h:\oraimunka\szovegszerkesztes\10e\20120213\LoreIpsumKonyv.odt", "_blank", 0, args())
rem Új dokumentum nyitása
Set objDocument= oDesk.loadComponentFromURL("private:factory/swriter","_blank", 0, args)
===== Szövegdoboz =====
==== Kontrollok ====
A komponensek vagy kontrollok elhelyezéséhez űrlapot hozunk létre.
Először tervezzük meg az űrlapot. Szükségünk van az űrlap vezérlőelemekre:
Nézet -> Eszköztárak -> Űrlap-vezérlőelemek
Az űrlap-vezérlőelemek eszköztár egy külön kis, kétoszlopos ablakban nyílik meg.
A jobb felső ikonnal lehet a tervezőmódot ki és bekapcsolni.
Helyezzünk el először egy "Nyomógomb"-ot. Az ikonok felet mozgatva az egeret
a gyorstippekben tájékozódhatunk a kontrollokról.
Ezek után helyezzünk el egy szövegdobozt.
==== Makró ====
Készítsük el a makrót.
Eszközök -> Makrók -> Makrók rendezése -> LibreOffice Basic...
A "Basci-makrók" ablakban a "Makrók forrása" részben állítsuk be hova
szeretnénk menteni a makrót. Válasszuk a dokumentumot.
A makrók modulokba vannak rendezve, a modulok könyvtárakba. Mindig van egy alapértelmezett könyvtár,
amelynek neve "Standard". Jelöljük ki, majd jobboldalon válasszuk az
"Új" gombot.
Az előugró párbeszédablakban beállíthatjuk az új modulunk nevét, amely alapértelmezetten:
Modul1
Ekkor a LibrOffice Basic ablak ugrik elénk, amelyben van egy alapértelmezett eljáráskezdemény:
REM ***** BASIC *****
Sub Main
End Sub
Ezt javítsuk az alábbiak szerint:
Global oForm As Object
Global oDoc as Object
Global doboz As Object
sub InitOnLoad
oDoc = ThisComponent
oForm = oDoc.DrawPage.Forms.GetByName("Űrlap")
doboz = oForm.GetByName( "doboz1" )
end sub
sub Leker
Dim a As Integer
a = doboz.Text
doboz.Text = a + 2
end sub
==== Esemény kezelése ====
Jelöljük ki a nyomógombot, majd az Űrlap-vezérlőelemek ablakban válassza a
"Vezérlőelem" ikont. Az előugró ablakban, válasszuk az "Események" fület.
Kattintsunk bármely három pontot tartalmazó gombra az előugró ablakban.
Az újabb ablakban válasszuk ki a kezelendő eseményt, majd "Makró"
gombra kattintva keressük ki a megírt makrót.
===== Kontrollok =====
==== Felirat szövege ====
Sub Main
doc = Thiscomponent
docCrl = doc.CurrentController
form = doc.DrawPage.Forms.GetByName("Űrlap")
cimke = form.getByName("cimke1")
CimkeCrl = docCrl.getControl(cimke)
cimkeCrl.setText("árvíztűrő")
End Sub