Július Pastierik / 01. 03. 2007, 00:00
V dnešnom pokračovaní seriálu o makrách v OpenOffice.org si uvedieme procedúry a funkcie pre nastavovanie parametrov formátovania dokumentov osobitne podľa zvoleného používateľského profilu.
V predchádzajúcom dieli seriálu sme si ukázali prácu s používateľskými profilmi s tým, že vzhľadom na značný rozsah procedúr a funkcií, ktoré s tým následne súvisia, tieto rozdelíme do viacerých skupín a uvedieme ich postupne. Dnes sa budeme venovať skupine procedúr pre nastavovanie parametrov formátovania dokumentov (dialóg „ Dialog_Formatovanie“).
Podobne, ako minule, nebudeme sa vlastným procedúram venovať príliš osobitne, pretože sú pomerne dobre okomentované a uvedieme iba ich zdrojové texty. Premenné dialógu „Dialog_Formatovanie“ sme podrobne rozoberali pri jeho definícií (Makrá v OpenOffice.org 5/IX. – Formátovanie dokumentu 1).
Vlastné volanie dialógu „Dialog_Formatovanie“ je zabezpečené cez dialóg „Dialog_Profily“ (tlačidlo „Zmeň“) a preto nie je potrebné, aby sa volalo osobitne. Ešte spomeňme, že nasledujúce procedúry budeme ukladať do rovnakého modulu pre makrá ako minule, t.j. do modulu „Profily_funkcie“.
sub Zapis_definiciu_profilu(profil as string)
' Procedúra zapíše príznaky pre formátovanie do súboru pre daný profil.
' Názov súboru je totožný s názvom profilu.
dim i, subor as integer
subor = Freefile
open inicializacny_subor(profil) for Output as #subor
for i=1 to 16
print #subor,str(priznaky_formatovania(i))
next i
close #subor
end sub
sub Citaj_definiciu_profilu(profil as string)
' Procedúra načíta príznaky zo súboru pre daný profil.
' Ak súbor neexistuje, alebo je poškodený (má menej údajov ako je potrebné), bude opravený.
dim i, subor as integer
dim riadok as string
' Inicializácia na štandardné štandardné hodnoty - všetky políčka sú zaškrtnuté.
' Ako pevné medzery sa vkladajú NBSP.
' Za jednoznakovými predložkami vrátane "a" sa vkladajú NBSP „off-line“.
for i=1 to 16
Priznaky_formatovania(i)=1
next i
' Nastavenie „off-line“ vkladania medzier za jednoznakové predložky
Priznaky_formatovania(4)=2
' Ak nastavovací súbor neexistuje, vytvoríme ho a uložíme do neho štandardné hodnoty
if not fileexists(inicializacny_subor(profil)) then
Zapis_definiciu_profilu(profil)
endif
' Teraz súbor určite existuje - načítame ho
subor = Freefile
open inicializacny_subor(profil) for Input as #subor
i=0
While not eof(subor)
i=i+1
Line Input #subor, riadok
Priznaky_formatovania(i)=val(riadok)
wend
close #subor
' Ak v súbore chýbal nejaký údaj, tak to teraz opravíme
if i<16 then
Zapis_definiciu_profilu(profil)
endif
end sub
sub Init_dialog_formatovania(oDialog as object, profil as string)
' Inicializácia dialógu „Dialog_Formatovanie“ podľa definičného súboru vybraného profilu.
Citaj_definiciu_profilu(profil)
oDialog.model.Za_predlozkami.State=Priznaky_formatovania(1)
oDialog.model.TabIndex=4
oDialog.model.TabIndex=5
select case Priznaky_formatovania(2)
case 2
oDialog.model.NBSP1.State=0
oDialog.model.WJ1.State=1
case else
oDialog.model.NBSP1.State=1
oDialog.model.WJ1.State=0
end select
oDialog.model.Za_spojkou_a.State=Priznaky_formatovania(3)
oDialog.model.TabIndex=8
oDialog.model.TabIndex=9
select case Priznaky_formatovania(4)
case 2
oDialog.model.On_line.State=0
oDialog.model.Off_line.State=1
case else
oDialog.model.On_line.State=1
oDialog.model.Off_line.State=0
end select
oDialog.model.Za_titulmi.State=Priznaky_formatovania(5)
oDialog.model.TabIndex=13
oDialog.model.TabIndex=14
select case Priznaky_formatovania(6)
case 2
oDialog.model.NBSP2.State=0
oDialog.model.WJ2.State=1
case else
oDialog.model.NBSP2.State=1
oDialog.model.WJ2.State=0
end select
oDialog.model.Za_cislami.State=Priznaky_formatovania(7)
oDialog.model.TabIndex=16
oDialog.model.TabIndex=17
select case Priznaky_formatovania(8)
case 2
oDialog.model.NBSP3.State=0
oDialog.model.WJ3.State=1
case else
oDialog.model.NBSP3.State=1
oDialog.model.WJ3.State=0
end select
oDialog.model.Zrus_medzery.State=Priznaky_formatovania(9)
oDialog.model.Zrus_okraje.State=Priznaky_formatovania(10)
oDialog.model.Zrus_zatvorky.State=Priznaky_formatovania(11)
oDialog.model.Zrus_uvodzovky.State=Priznaky_formatovania(12)
oDialog.model.Zrus_interpunkcie.State=Priznaky_formatovania(13)
oDialog.model.Zrus_odstavce.State=Priznaky_formatovania(14)
oDialog.model.Vloz_bodku.State=Priznaky_formatovania(15)
oDialog.model.Vloz_interpunkciu.State=Priznaky_formatovania(16)
end sub
sub Spusti_dialog_formatovania (profil as string)
' Vlastná práca s dialógom „Dialog_Formatovanie“.
' Volanie tohto dialógu je zabezpečené v dialógu „Dialog_Profily“ cez tlačidlo „Zmeň“.
dim oDialog as object
' Ak nie je zadaný názov profilu, budeme robiť s profilom „Default“.
if profil="" then profil="Default"
oDialog=CreateUnoDialog(DialogLibraries.Vlastne_makra.Dialog_Formatovanie)
Init_dialog_formatovania(oDialog, profil)
if oDialog.Execute()=1 then
' Nastavenie premenných pre formátovanie podľa príznakov v dialógu.
Priznaky_formatovania(1)=oDialog.model.Za_predlozkami.State
if oDialog.model.NBSP1.State=1 then
Priznaky_formatovania(2)=1
else
Priznaky_formatovania(2)=2
endif
Priznaky_formatovania(3)=oDialog.model.Za_spojkou_a.State
if oDialog.model.On_line.State=1 then
Priznaky_formatovania(4)=1
else
Priznaky_formatovania(4)=2
endif
Priznaky_formatovania(5)=oDialog.model.Za_titulmi.State
if oDialog.model.NBSP2.State=1 then
Priznaky_formatovania(6)=1
else
Priznaky_formatovania(6)=2
endif
Priznaky_formatovania(7)=oDialog.model.Za_cislami.State
if oDialog.model.NBSP3.State=1 then
Priznaky_formatovania(8)=1
else
Priznaky_formatovania(8)=2
endif
Priznaky_formatovania(9)=oDialog.model.Zrus_medzery.State
Priznaky_formatovania(10)=oDialog.model.Zrus_okraje.State
Priznaky_formatovania(11)=oDialog.model.Zrus_zatvorky.State
Priznaky_formatovania(12)=oDialog.model.Zrus_uvodzovky.State
Priznaky_formatovania(13)=oDialog.model.Zrus_interpunkcie.State
Priznaky_formatovania(14)=oDialog.model.Zrus_odstavce.State
Priznaky_formatovania(15)=oDialog.model.Vloz_bodku.State
Priznaky_formatovania(16)=oDialog.model.Vloz_interpunkciu.State
Zapis_definiciu_profilu(profil)
endif
oDialog.dispose()
end sub
Pokiaľ sa predsa len nájdu používatelia, ktorí nechcú využívať výhody viacerých profilov, môžu si upraviť začiatok procedúry „Spusti_dialog_formatovania“ (ktorú v tomto prípade musia volať osobitne) napríklad takto:
sub Spusti_dialog_formatovania
' Vlastná práca s dialógom „Dialog_Formatovanie“.
dim oDialog as object
dim profil as string
profil="Default"
Pravdaže, ako názov súboru pre uloženie parametrov (ktorý je totožný s názvom profilu a v tomto prípade je to „Default“) si môžu zvoliť ľubovoľný iný názov.
Na budúce: Vlastné formátovanie dokumentu, alebo znovu sa vraciame k tomu, čo sme tu už viackrát mali.
Copyright © 2002 - 2013 inet.sk, s. r. o. | Všetky práva vyhradené | Neprešlo jazykovou úpravou | ISSN 1336-1899
Využívame kvalitný webhosting za rozumnú cenu od Inet.sk