[[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