V poslednom dieli nášho seriálu sme si stručne načrtli funkcie pre prácu s dialógmi. Na základe toho môžeme teraz pristúpiť k ďalšiemu kroku, v ktorom dialóg využijeme pre vlastné nastavenie parametra v našich podprogramoch ohľadne predložky „a“. Pretože všetky potrebné funkcie sme v nižších verziách už uviedli, môžeme priamo pristúpiť k vlastnému programovaniu bez toho, aby sme obzvlášť museli komentovať jednotlivé podprogramy.
global ObsluhaDokumentu, ObsluhaKlavesnice as object
global PosledneSlovo, OddelovaceSlov, JednoznakovePredlozky as string
global Priznak_nezalomitelna_a as integer
REM Funkcie pre prácu so súborom, kde sú nastavené príznaky
function Subor_nezalomitelne_predlozky as string
Subor_nezalomitelne_predlozky="file:///c:/Program files/OpenOffice.org 2.0/Nezalomitelna_Predlozka_a.dat"
end function
sub Init_zoznam_predloziek
JednoznakovePredlozky="AiIkKoOsSuUvVzZ"
if Priznak_nezalomitelna_a=1 then
JednoznakovePredlozky="a"+JednoznakovePredlozky
endif
end sub
sub Uloz_nastavenie_predlozky
dim i, subor as integer
subor = Freefile
open Subor_nezalomitelne_predlozky for Output as #subor
print #subor,str(Priznak_nezalomitelna_a)
close #subor
end sub
sub Citaj_nastavenie_predlozky
dim i, subor as integer
dim riadok as string
' Inicializácia na štandardné štandardné hodnoty
Priznak_nezalomitelna_a=1
next i
' Ak nastavovací súbor neexistuje, vutvoríme ho a uložíme do neho štandardné hodnoty
if not fileexists(Subor_nezalomitelne_predlozky) then
Uloz_nastavenie_predlozky
endif
' Teraz súbor určite existuje - načítame ho
subor = Freefile
open Subor_nezalomitelne_predlozky for Input as #subor
i=0
if not eof(subor)
i=i+1
Line Input #subor, riadok
Priznak_nezalomitelna_a=val(riadok)
endif
close #subor
' Ak v súbore chýbal nejaký údaj, tak ho opravíme
if i<1 then
Uloz_nastavenie_predlozky
endif
Init_zoznam_predloziek
end sub
Teraz si napíšeme funkcie pre vlastnú prácu s dialógovým oknom „Dialog_nezalomitelne_predlozky_“. Pretože sme sa tomuto ešte nevenovali podrobne, budeme príslušné funkcie trochu viac komentovať.
REM Procedúra, pomocou ktorej nastavíme počiatočné hodnoty príslušných položiek dialógového okna
sub init_dialog_predlozky(oDialog as object)
REM Načítame ich zo súboru
Citaj_nastavenie_predlozky
REM Nastavenie počiatočnej hodnoty podľa toho, ako ju máme odpamätanú v inicializačnom súbore
oDialog.model.Za_spojku_a.State=Priznak_nezalomitelna_a
end sub
REM Procedúra, pomocou ktorej zapíšeme získané hodnoty z príslušných položiek dialógového okna do inicializačného súboru
sub zapis_dialog_predlozky(oDialog as object)
Priznak_nezalomitelna_a=oDialog.model.Za_spojku_a.State
Uloz_nastavenie_predlozky
REM Po uložení do súboru je vhodné, aby sme si zmenené nastavenie aj zmenili v globálnych premenných
Init_zoznam_predloziek
end sub
REM Vlastné volanie dialógu s príslušnými nastaveniami
sub Nastav_Priznak_Nezalomitelne_a
dim dlg as object
REM Sprístupnenie knižnice
DialogLibraries.LoadLibrary("Vlastne_makra")
REM Sprístupnenie dialógového okna
dlg=CreateUnoDialog(DialogLibraries.Vlastne_makra.Dialog_Nezalomitelne_Predlozky_)
REM Inicializácia počiatočných hodnôt
init_dialog_predlozky(dlg)
REM Vlastné volanie dialógového okna
if dlg.Execute()=1 then
REM Ak sme ukončili tlačidlom „OK“, tak zmenené hodnoty zapíšeme
zapis_dialog_predlozky(dlg)
endif
REM Uvoľnenie dialógového okna z pamäte
dlg.dispose()
end sub
Celé nastavenie vykonáme zavolaním poslednej procedúry „Nastav_Priznak_Nezalomitelne_a“. Teraz už môžeme pridať procedúry pre vkladanie nezalomiteľných medzier za jednoznakové predložky počas ich písania. Na rozdiel od už uverejnenej verzie budeme teraz nastavovať zoznam predložiek podľa inicializačného súboru (volanie funkcie „Citaj_nastavenie_predlozky„).
sub SpustiObsluhuKlavesnice
on error goto next
' Inicializácia premenných
Citaj_nastavenie_predlozky
PosledneSlovo = ""
' Znaky, ktoré ukončujú slová – medzera, nezalomiteľná medzera, tabelátor, CR, LF
OddelovaceSlov=" "+chr(&HA0)+chr(&H09)+chr(&H0A)+chr(&H0D)
' pomlčka, lomítko, bodka, čiarka, výkričník, otáznik, bodkočiarka, trojbodka
OddelovaceSlov=OddelovaceSlov+"-/.,!?;…"
' zátvorky
OddelovaceSlov=OddelovaceSlov+"()[]{}"
' Aktuálny dokument
ObsluhaDokumentu = ThisComponent.getCurrentController
' Vlastná obsluha klávesnice
ObsluhaKlavesnice = createUnoListener("Klavesnica_","com.sun.star.awt.XKeyHandler")
' Priradenie tejto obsluhy k aktuálnemu dokumentu
ObsluhaDokumentu.addKeyHandler(ObsluhaKlavesnice)
end sub
sub UkonciObsluhuKlavesnice
on error goto next
ObsluhaDokumentu.removeKeyHandler(ObsluhaKlavesnice)
PosledneSlovo = ""
end sub
sub VlozZnak(Retazec as string)
' Na aktuálnu pozíciu v dokumente vložíme reťazec
dim ViditelnyKurzor, AktualnyText, AktualnyKurzor as object
ViditelnyKurzor = ThisComponent.getCurrentController().getViewCursor()
AktualnyText = ThisComponent.getText()
AktualnyKurzor = AktualnyText.createTextCursorByRange(ViditelnyKurzor.getStart())
AktualnyText.insertString(AktualnyKurzor.getStart(), Retazec, true)
end sub
function Klavesnica_KeyPressed(StlacenaKlavesa) as boolean
' Obsluha stlačenej klávesy
dim Obsluzena as boolean
'Predpokláme, že neobslúžime klávesnicu
Obsluzena=False
if instr(OddelovaceSlov,StlacenaKlavesa.KeyChar)<>0 then
' Došli sme na koniec slova
if ZistiPredlozku and (StlacenaKlavesa.KeyChar=" ") then
' Je to predložka, ktorá končí zalomiteľnou medzerou - túto nahradíme
VlozZnak(chr$(&HA0)) ' No Break Space
' Sami sme vložili nezalomiteľnú medzeru - obslúžili sme stlačenú klávesu
Obsluzena=true
endif
' Boli sme na konci slova, už nás nebude zaujímať
PosledneSlovo=""
else
' Neboli sme na konci slova
' Ešte musíme otestovať riadiace znaky, ktoré nebudeme sledovať v zadávanom slove
select case StlacenaKlavesa.KeyChar
case chr$(&H00) to chr$(&H07)
PosledneSlovo=""
case chr$(&H08) ' BackSpace
if len(PosledneSlovo)>0 then
PosledneSlovo=left(PosledneSlovo,len(PosledneSlovo)-1)
else
PosledneSlovo=""
endif
case chr$(&H09) to chr$(&H1F)
PosledneSlovo=""
case chr$(&H20) to chr$(&H7E)
PosledneSlovo=PosledneSlovo+StlacenaKlavesa.KeyChar
case chr$(&H7F) ' CTRL BS
PosledneSlovo=""
case else
PosledneSlovo=PosledneSlovo+StlacenaKlavesa.KeyChar
end select
endif
Klavesnica_KeyPressed=Obsluzena
end function
function Klavesnica_KeyReleased(StlacenaKlavesa) as boolean
' Obsluha pustenej klávesy
Klavesnica_KeyReleased = False
end function
function ZistiPredlozku as boolean
dim JePredlozka as boolean
JePredlozka=false
if len(PosledneSlovo)=1 then
' Ak je to jednoznakové slovo, tak to môže byť predložka
JePredlozka=instr(1,JednoznakovePredlozky,PosledneSlovo,0)
endif
ZistiPredlozku=JePredlozka
end function
Na budúce: Rozširujeme počet položiek dialógu, alebo začíname pracovať s (toľko očakávanou) pružnou nezalomiteľnou medzerou.
Makrá v OpenOffice.org 4/V. – Dialóg pre nezalomiteľnú medzeru 3.
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.