Makrá v OpenOffice.org 4/VIII. – Pružná nezalomiteľná medzera 3.

Július Pastierik  /  29. 06. 2006, 00:00

V dnešnom dieli dokončíme množinu funkcií pre prácu s dialógovým oknom a príslušnými procedúrami pre vkladanie nezalomiteľných medzier za jednoznakové predložky a spojky.

V minulom dieli sme si ukázali pomerne rozsiahle funkcie pre prácu s dialógovým oknom, v ktorom nastavujeme parametre pre vkladanie nezalomiteľných medzier za jednoznakové spojky a predložky. Pravdaže, priame volanie týchto funkcií nie je práve pohodlné a okrem toho sme si do dialógového okna zaradili nový parameter – „Spúšťať automaticky pri otvorení dokumentu“. Táto funkcia je určite mnohými požadovaná, pretože sa nechcú zaoberať tým, aby po otvorení dokumentu ešte manuálne museli spúšťať nejaké makro pre vkladanie (zámenu) medzier.


Preto bude vhodné, ak si všetky funkcie, ktoré sme si uviedli minule uložili do osobitného modulu „Nezalomitelne_predlozky_funkcie“ a dnes si vytvoríme nový modul „Nezalomitelne_predlozky“, do ktorého si zadáme iba jednoduché programy, ktoré budú už príslušné kompletné funkcie v ostatných moduloch volať za nás:

sub Nastav_priznaky_nezalomitelne_predlozky
 Nezalomitelne_predlozky_funkcie.NastavPriznakyNezalomitelnePredlozky
end sub

sub Automaticky_Obsluhuj_Klavesnicu
 Nezalomitelne_predlozky_funkcie.Citaj_nastavenie_predlozky
 if Nezalomitelne_predlozky_funkcie.Priznaky_nezalomitelne_medzery(1)=1 then
  Nezalomitelne_predlozky_funkcie.SpustiObsluhuKlavesnice
 endif
end sub

sub Obsluhuj_Klavesnicu
 Nezalomitelne_predlozky_funkcie.Citaj_nastavenie_predlozky
 Nezalomitelne_predlozky_funkcie.SpustiObsluhuKlavesnice
end sub

sub Neobsluhuj_Klavesnicu
 Nezalomitelne_predlozky_funkcie.UkonciObsluhuKlavesnice
end sub

sub Povol_Klavesnicu
 Nezalomitelne_predlozky_funkcie.Obsluhovat_Klavesnicu=True
end sub

sub Pozastav_Klavesnicu
 Nezalomitelne_predlozky_funkcie.Obsluhovat_Klavesnicu=False
end sub


Pre tých, ktorí potrebujú spúšťať automatické nahrádzanie medzier už počas otvárania súborov je tu pripravená funkcia „Automaticky_Obsluhuj_Klavesnicu“ a funkcia „Neobsluhuj_Klavesnicu“. Práve pre nich je určená aj zaujímavá dvojica funkcií „Povol_Klavesnicu“ a „Pozastav_Klavesnicu“. Tieto funkcie sú určené na to, aby sa dalo občas (z ľubovoľného dôvodu) na určitý čas prerušiť (funkcia „Pozastav_Klavesnicu“) a znovu povoliť (funkcia „Povol_Klavesnicu“) automatické nahrádzanie. Všetci ostatní používatelia si tu napokon nájdu dvojicu funkcií „Obsluhuj_Klavesnicu“ a „Neobsluhuj_Klavesnicu“.

Pravdaže, ešte sme sa nezmienili o tom, ako vlastne zabezpečiť automatické spúšťanie obsluhy klávesnice. Za týmto účelom musíme v dialógovom okne „Nástroje-Prispôsobiť“ na záložke „Udalosti“ priradiť k položke „Vytvoriť dokument“ a k položke „Otvoriť dokument“ volanie makra „Automaticky_Obsluhuj_Klavesnicu“. Zároveň je nutné, aby sme k položke „Zatvoriť dokument“ priradili volanie makra „Neobsluhuj_Klavesnicu“.

Na tomto mieste musíme upozorniť na niektoré chyby, ktoré uvedené makrá ešte stále majú. Používajú sa v nich globálne premenné a preto, ak spustíte nahrádzanie vo viacerých dokumentoch, bude to viesť ku chybe. Pri manuálnom spustení nahrádzania je ďalej potrebné toto pred uzatvorením dokumentu ukončiť, pretože to vedie ku chybe, že chceme uzatvoriť dokument, v ktorom máme spustené nejaké makro. Podobne, ak si otvoríte niekoľko dokumentov a v jednom povolíte nahrádzanie, je pred uzatvorením ktoréhokoľvek z nich v tomto dokumente nahrádzanie ukončiť a až potom prípadne znovu povoliť.

Viem, že tieto chyby môžu na prvý pohľad vyzerať hrôzostrašne. Žiaľ, zatiaľ sa mi nepodarilo prísť na to, ako ich odstrániť. Napriek tomu však verím, že uvedené makrá mnohým pomôžu aj v takom tvare, v akom sú dané k dispozícii, pretože nie každý pracuje naraz s viacerými dokumentami.

Týmto dielom sme ukončili základnú časť práce s dialógmi a tým vlastne aj zo základmi programovania makier v OpenOffice.org. Pred skoro trištvrte rokom sme začali tento seriál s trochu neskromným cieľom – naučiť sa programovať makrá. Ak si pamätáte, začali sme „nahrávaním“ makra pre automatické vkladanie textu a dnes končíme pomerne rozsiahlym komplexom programov, v ktorom nájdete aj automatické nahrádzanie medzier už počas ich písania. Viem, že cez internet sa ťažko učí programovať. Ak sa však v tomto „školskom“ roku našiel aspoň jeden spokojný používateľ, ktorý si na to „trúfol“, splnili sme cieľ, ktorý sme si na začiatku položili. Je 29.6.2006 a pozajtra začnú aj mojim deťom školské prázdniny. Oddýchnime si aj, načerpajme sily a začiatkom septembra sa znovu teším na stretnutie so všetkými „programovaniachtivými“ používateľmi OpenOffice.org.

A ako obvykle na záver každej série prinášame aj jej PDF verziu: makra_v_ooo_4.pdf
(632kB, MD5 kontrolný súčet – 724E1FC74B629D5BA42F61142508DC51). Namiesto zdrojových textov v ňom nájdete ako prílohu súbor „Dialogy.odt“, kde sú uvedené ako zdrojové texty, tak aj vlastný dialóg pre nastavovanie parametrov nezalomiteľných medzier, ktoré sme uviedli v posledných dvoch dieloch. Nezľaknite sa, tento súbor neobsahuje žiadny text, pre zobrazenie zdrojových textov makier a vlastnej definície dialógu si musíte prejsť do príslušných zložiek cez menu „Nástroje-Makrá-Správca makier-OpenOffice Basic…“.

Neprehliadnite: