Poznámkové bloky, papieriky či iné pomôcky uľahčujú život pri práci s hociktorým programom. Preto si takýto poznámkový blok navrhneme aj v OpenOffice.org. Ako základ je návrh pracovného okna, do ktorého budeme poznámky vkladať. Jeho najdôležitejšia časť je textové pole pre vlastné poznámky, ktorú doplníme tlačidlami, pomocou ktorých budeme blok ovládať – uloženie obsahu bloku do pracovného súboru, načítanie obsahu z pracovného súboru, vymazanie a koniec.

V module OpenOffice.org Writer môžeme ešte pridať tlačidlá pre kopírovanie textu z dokumentu (označeného, alebo na ktorom sa nachádzame) do bloku a, naopak, vloženie obsahu bloku do dokumentu – preto si radšej navrhneme pre tento modul osobitné pracovné okno.

Toľko k „teórii“ poznámkového bloku stačí a preto nezostáva nič iné, ako uvedenie vlastného makra. Ako obvykle, makro riešime tým spôsobom, že obsahuje funkcie pre jazykové lokalizácie.
dim oDlg
REM Funkcia pre zistenie jazyka OO.o
function Jazyk_OOo as string
dim ConfigProvider, MasterKey as object
dim NodePath(0) as new com.sun.star.beans.PropertyValue
NodePath(0).Name = "nodepath"
NodePath(0).Value = "org.openoffice.Setup/L10N/"
ConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider")
MasterKey = ConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", NodePath())
Jazyk_OOo = left(MasterKey.getByName("ooLocale"), 2) '"sk", "cs", ...
end function
REM Procedúra pre nastavenie jazyka dialógu
Sub Set_jazyk_Dialogu(oDlg, sNazov, sZahlavie)
dim riadok, premenna, definicia as string
dim rovna as integer
dim sf, inStream, inFile ' Pre čítanie z lokalizačného súboru
on error resume next
if fileexists(sNazov) then ' Ak lokalizačný súbor existuje, tak načítame definície do premenných
sf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
inStream = sf.openFileRead(sNazov)
inFile = createUnoService("com.sun.star.io.TextInputStream")
inFile.InputStream = inStream
inFile.Encoding = "UTF-8" ' lokalizačný súbor musí byť v UTF-8, inak nebude dobrá diakritika
Do While not inFile.IsEOF
riadok = inFile.readLine ' namiesto Line Input #subor, riadok
rovna=instr(riadok,"=")
if rovna<>0 then
premenna=trim(left(riadok,rovna-1)) ' Budeme ignorovať medzery
definicia=trim(right(riadok,len(riadok)-rovna))
if premenna=sZahlavie then
oDlg.Title=definicia
else
oDlg.model.getByName(premenna).setpropertyvalue("Label",definicia)
end if
end if
loop
' Zatvorenie definičného súboru – namiesto close #subor
inStream.closeInput
inFile.closeInput
end if
end sub
REM Funkcia volaná pri stlačení tlačidla "Kopíruj" (iba Writer)
REM Ak sme v textovom dokumente, vyberieme označený reťazec alebo slovo, na ktorom sa nachádzame a to vložíme do poznámkového bloku
sub Kopiruj_Initiated
dim sRetazec$ : sRetazec=""
dim sPom$
dim oViditelnyKurzor, oAktualnyText, oAktualnyKurzor, oVyber
if ThisComponent.supportsService("com.sun.star.text.TextDocument") then ' Ak sme v textovom dokumente
oVyber=ThisComponent.getCurrentSelection() ' aktualny vyber
if oVyber.getCount() > 0 then
sRetazec= trim(oVyber.getByIndex(0).getString()) ' riadok z vyberu
endif
if sRetazec="" then ' Ak je reťazec prázdny, vyberieme slovo, na ktorom sa nachádzame
oViditelnyKurzor=ThisComponent.getCurrentController().getViewCursor() ' Viditeľný kurzor
oAktualnyText=ThisComponent.getText() ' Aktuálny text
oAktualnyKurzor=oAktualnyText.createTextCursorByRange(oViditelnyKurzor.getStart()) ' Vytvoríme nový kurzor (s pozíciou na viditeľnom kurzore), aby sme neoznačovali "viditeľne"
if not oAktualnyKurzor.isStartOfWord then oAktualnyKurzor.gotoStartOfWord(false) ' Ak nie sme, tak skočíme na začiatok slova
oAktualnyKurzor.gotoEndOfWord(true) ' Označíme aktuálne slovo
sRetazec=oAktualnyKurzor.string
oAktualnyKurzor.collapseToEnd() ' Zrušíme označenie
endif
endif
if sRetazec<>"" then
' Ak je nejaký reťazec, pridáme ho do poznámkového bloku za predchádzajúci text (ak je)
sPom=oDlg.model.Poznamky.Text
if sPom<>"" then sRetazec=sPom+chr$(13)+sretazec
oDlg.model.Poznamky.Text=sretazec
end if
end sub
REM Funkcia volaná pri stlačení tlačidla "Vlož" (iba writer)
REM Ak sme v textovom dokumente, vložíme na aktuálnu pozíciu text z poznámkového bloku
sub Vloz_Initiated
dim oDokument
dim sPom$
dim tabulka as boolean
if ThisComponent.supportsService("com.sun.star.text.TextDocument") then ' Ak sme v textovom dokumente
oDokument=ThisComponent.currentcontroller.getViewCursor() ' Aktuálna pozícia kurzora
tabulka= not IsEmpty(oDokument.Cell) ' Identifikácia, či je kurzor v tetxovej tabuľke
if tabulka Then ' Sme v tabuľke
oDokument=oDokument.cell
else
oDokument.collapseToEnd() ' Presun na koniec a zrušenie označenia, ak je označený text
endif
sPom$=oDokument.getstring() ' Text na konci kurzora
oDokument.setstring(oPom+oDlg.model.Poznamky.Text) ' Pridáme text z poznámkového bloku
if not tabulka then
oDokument.collapseToEnd() ' Presun na koniec vloženého dátumu
endif
endif
end sub
REM Funkcia volaná pri stlačení tlačidla "Vymaž"
REM Vymazanie poznámkového bloku
sub Vymaz_Initiated
oDlg.model.Poznamky.Text=""
end sub
REM Funkcia volaná pri stlačení tlačidla "Ulož"
REM Odpamätanie obsahu poznámkového bloku do pracovného súboru "jp_notebook_set.txt"
sub uloz_initiated
dim sf, outStream, outFile ' Pre zápis do súboru
dim sNazov$, kde$
kde=basiclibraries.getLibraryLinkURL("JP_Notebook") ' Adresár, kde je rozšírenie nainštalované
sNazov=left(kde,len(kde)-10)+"jp_notebook_set.txt" ' Súbor s textom
sf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
outStream = sf.openFileWrite(sNazov)
outFile = createUnoService("com.sun.star.io.TextOutputStream")
outFile.OutputStream = outStream
outFile.Encoding = "UTF-8" ' Súbor bude v UTF-8 aby bola dobrá diakritika
outStream.truncate() ' Vymazanie predchádzajúceho obsahu
outFile.writeString(oDlg.model.Poznamky.Text)
outStream.closeOutput
outFile.closeOutput
end sub
REM Funkcia volaná pri stlačení tlačidla "Obnov"
REM Načítanie obsahu poznámkového bloku z pracovného súboru "jp_notebook_set.txt"
sub Obnov_Initiated
dim riadok$
dim sPom$ : sPom=""
dim sNazov$, kde$
dim sf, inStream, inFile ' Pre čítanie z lokalizačného súboru
on error resume next
kde=basiclibraries.getLibraryLinkURL("JP_Notebook") ' Adresár, kde je rozšírenie nainštalované
sNazov=left(kde,len(kde)-10)+"jp_notebook_set.txt" ' Súbor s textom
if fileexists(sNazov) then ' Ak lokalizačný súbor existuje, tak ho načítame
sf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
inStream = sf.openFileRead(sNazov)
inFile = createUnoService("com.sun.star.io.TextInputStream")
inFile.InputStream = inStream
inFile.Encoding = "UTF-8" ' lokalizačný súbor musí byť v UTF-8, inak nebude dobrá diakritika
Do While not inFile.IsEOF
riadok = inFile.readLine ' namiesto Line Input #subor, riadok
if sPom<>"" then sPom=sPom+chr$(13)
sPom=sPom+riadok
loop
' Zatvorenie definičného súboru – namiesto close #subor
inStream.closeInput
inFile.closeInput
end if
oDlg.model.Poznamky.Text=sPom
end sub
REM Makro, ktoré zneviditeľní dialóg – t.j. nastaví, že sa má ukončiť čakací cyklus (volané stlačením klávesy "Koniec" v dialógu)
sub Koniec_Dialog_Initiated
oDlg.setVisible(false )' Zneviditeľnenie dialógu
end sub
REM Procedúra pre volanie dialógu v module Writer
sub NotebookW
DialogLibraries.LoadLibrary("JP_Notebook")
oDlg=CreateUnoDialog(DialogLibraries.JP_Notebook.DialogW)
kde=basiclibraries.getLibraryLinkURL("JP_Notebook") ' Adresár, kde je rozšírenie nainštalované
nazov=left(kde,len(kde)-10)+"jp_notebook_"+Jazyk_OOo+".txt" ' Súbor s jazykovou lokalizáciou
Set_jazyk_dialogu(oDlg, nazov, "Dialog") ' Nastavenie jazyka dialógu
oDlg.setVisible(true) ' zviditeľnenie dialógu – namiesto dlg.Execute(), aby sa dalo paralelne pracovať s textom
while oDlg.isVisible() ' Cyklus, ktorý čaká na stlačenie klávesy "Koniec" v dialógu (kým je dialóg viditeľný)
wait 500 ' Časová medzera 500 milisekúnd (0,5 sec) na to, aby sa dalo paralelne pracovať s dokumentom
wend
oDlg.dispose() ' Zatvorenie dialógu
end sub
REM Procedúra pre volanie dialógu v ostatných moduloch
sub NotebookO
DialogLibraries.LoadLibrary("JP_Notebook")
oDlg=CreateUnoDialog(DialogLibraries.JP_Notebook.DialogO)
kde=basiclibraries.getLibraryLinkURL("JP_Notebook") ' Adresár, kde je rozšírenie nainštalované
nazov=left(kde,len(kde)-10)+"jp_notebook_"+Jazyk_OOo+".txt" ' Súbor s jazykovou lokalizáciou
Set_jazyk_dialogu(oDlg, nazov, "Dialog") ' Nastavenie jazyka dialógu
oDlg.setVisible(true) ' zviditeľnenie dialógu – namiesto dlg.Execute(), aby sa dalo paralelne pracovať s textom
while oDlg.isVisible() ' Cyklus, ktorý čaká na stlačenie klávesy "Koniec" v dialógu (kým je dialóg viditeľný)
wait 500 ' Časová medzera 500 milisekúnd (0,5 sec) na to, aby sa dalo paralelne pracovať s dokumentom
wend
oDlg.dispose() ' Zatvorenie dialógu
end sub
Makrá v OpenOffice.org: Poznámkový blok
Novinky a inšpirácie
Z nášho blogu
Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.
Oznamy
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?
Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...
Oznamy
Večerná „prestávka“ pre server VIP033
Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...
Novinky
Novinky na Inet.sk (09 / 2026)
Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...
Oznamy
Plánovaná údržba v datacentre (20.09.2026)
Stabilita a nepretržitá dostupnosť vašich webov je pre nás kľúčová. Aby sme tento štandard nielen udržali, ale neustále zvyšovali, naši p...
Podpora klientom
Máte ďalšie otázky?
Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.
Naše výhody
Prečo si nás vybrať?
Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.
Slovenská
firma
Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.
Dlhoročné
skúsenosti
Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.
Spokojní
zákazníci
Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.
Maximálna
bezpečnosť
Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.
Ochotná
podpora
Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.
Férová
cena
Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.
Pravidelné
zálohovanie
Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.
Prehľadný
Admin Panel
Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.
Správa
používateľov
Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.
Vernostné
zľavy
Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.
Bez
obmedzení
Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.
WordPress
na 1 klik
Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.
Referencie
Spokojní zákazníci
Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.
"S firmou Inet.sk sme veľmi spokojní, vrelo ju odporúčam. Profesionálny a ústretový prístup pána Slančíka, seriózne jednanie a rýchla implementácia našich požiadaviek, 100% spokojnosť. Všetky služby od webhostingu cez výrobu stránky až po detailný servis počas chodu tu máme pod jednou strechou."
Ing. Jozef Brázdik
BB motors, s.r.o.
"Mal som možnosť vyskúšať rôzne webhostingy, ale nakoniec som sa rozhodol všetky moje stránky zveriť Inet.sk. Webhosting zvláda jednoduché, ale aj veľmi náročné stránky a magazíny. Podporuje najnovšie technológie a má veľmi prehľadnú a jednoduchú správu domén. Komunikácia s technickou podporou Inet.sk je vynikajúca a za mňa môžem túto firmu iba doporučiť."
Richard Horný
Final Vision, s. r. o.
"Pri migrácii našej stránky sme sa stretli s maximálnou podporou a profesionálnym prístupom. Inet.sk nám nielen pomohol celý proces zvládnuť bez komplikácií, ale tiež poskytol odborné poradenstvo, ktoré zabezpečilo hladký prechod. Ich hosting je rýchly a najmä stabilný, rovnako oceňujeme aj ich priateľskú komunikáciu."
Peter Kasan
Svet-mineralov.sk
"Proces migrácie bol zrealizovaný hladko a efektívne, pričom všetky kroky boli vykonané precízne a bez výpadkov. Inet.sk poskytol spoľahlivé a profesionálne riešenie, ktoré zjednodušilo správu domén a optimalizovalo ich prevádzku. Oceňujeme ich stabilnú infraštruktúru a kvalitné hostingové služby."
Lukáš Kazík
LKStudio.sk
"Mám u Inet.sk zaparkovanú jednu doménu a mám pocit, že tam zaparkujem aj všetky ostatné domény, ktoré mám, pretože po dlhoročných skúsenostiach s rôznymi inými firmami, mi Vaše služby vyhovujú zatiaľ najviac. Odporúčam kvôli dobrej konektivite a primeranej cene + rýchly support."
Ladislav Kéry
vypnutieimobilizera.sk
"Po rokoch skúšania dodávateľov na poli webhostingových služieb sme našli svojho spoľahlivého a stabilného partnera tu. Stabilita, ochota, znalosť, dobrá cena a rýchle vyriešenie prípadných problémov - to je pre nás Inet.sk."
Jaroslav Mráz
Allycom, s.r.o.
"Máme u Vás doménu a hosting. So službami sme nadmieru spokojní. Z Vašej strany máme pozitívne skúsenosti ako sú: rýchle jednanie, znalosť v problematike, ochota pomôcť, stabilita, zavádzanie noviniek, ak ich klient vyžaduje a dobrá cena. Za nás môžeme Inet.sk len odporučiť. Ďakujeme."
Mgr. Zuzana Valovičová
BL servis, s.r.o.