èablony jsou nejv²raznějÜφ novinkou verze 2.0 a umo₧ňujφ velmi přφjemně uÜetřit prßci. Stačφ napsat pßr znaků a zbytek za vßs vygeneruje rkEdit. Představte si, ₧e napφÜete napřφklad proc a aplikace za vßs nejen₧e vygeneruje napřφklad tento text:
//---procedure Myproc, created at 11:40, 4. zßřφ 2001---
procedure Myproc;
begin {MyProc}
|
end;{MyProc}
ale navφc dokß₧e postavit kursor na po₧adovanΘ mφsto a jeÜtě automaticky doplnit tzv. proměnnΘ (viz dßle).
Co je k tomu potřeba? Ka₧d² typ souboru, kter² rkEdit podporuje, musφ mφt v adresßři Templates svůj soubor se Üablonami (přesnΘ nßzvy viz Typy souborů). Pokud tento neexistuje, vezme se soubor default.xml. (Pokud ani ten neexistuje, mßte smůlu.)
V tomto souboru jsou definovßny jednotlivΘ Üablony (bude popsßno dßle). Pokud tedy v textu stisknete klßvesovou zkratku Ctrl+J, dojde k některΘ z nßsledujφcφch situacφ:
jestli₧e nestojφte na některΘm slově či stojφte uprostřed nějakΘho, zobrazφ se seznam vÜech dostupn²ch Üablon a vy si mů₧ete jednu vybrat
èablony jsou definovßny v XML souboru, jeho₧ struktura je popsßna v souboru TEMPLATES.DTD. Ukßzkou toho, jak takov² soubor mů₧e vypadat, je soubor default.xml (je standardně dodßvßn s rkEditem), tak₧e pokud XML neovlßdßte, mů₧e vßm tento v lecčems pomoci. Způsob prßce s těmito soubory byl popsßn v²Üe.
Za zmφnku stojφ tyto atributy elementu template:
shortcut - jde o jedinečn² řetězec v rßmci celΘho souboru Üablon a řφkß, jakΘ slovo musφ b²t napsßno, aby byla tato Üablona aktivovßna (např. ji₧ zmφněnΘ proc, ifs či ifc).
name - jde o jmΘno Üablony, pod kter²m bude uvedeno v rkEditu při v²běru
inputdesc - nepovinn² parametr souvisejφcφ s proměnnou %input% (viz dßle)
inputdescn - nepovinn² parametr souvisejφcφ s proměnn²mi %inputn% (viz dßle)
Textem Üablony mů₧e b²t v podstatě cokoliv, co mß v²znam a nenaruÜφ strukturu XML dokumentu. Mφsto, kam se mß po provedenφ Üablony umφstit kurzor, se označφ kolmφtkem.
Pokud chcete vklßdat znaky jako je <, >, & apod. pak musφ samozřejmě dbßt na to, aby nebyla naruÜena struktura XML dokumentu. Toho dosßhnete napřφklad tφm, ₧e si jako text Üablony napφÜete napřφklad:
<head><title>...</title></head>
označφte tento text jako blok a z menu Special zvolφte přφkaz Text to XML safe form. Označen² text se převede pomocφ textov²ch entit do takovΘho stavu, ve kterΘm bude vÜe v pořßdku a Üablonu půjde načφst. V tomto přφpadě do nßsledujφcφ podoby:
<head><title>...</title></head>
Pokud editujete Üablonu v rkEditu (v čem takΘ jinΘm, ₧e ;-), tak při testovßnφ jistě budete potřebovat tuto Üablonu načφtat znovu a znovu. K tomu slou₧φ přφkaz v menu Settings s nßzvem Refresh actual templates.
V jednotliv²ch Üablonßch lze pou₧φvat i proměnnΘ. V tomto přφpadě se nejednß o ₧ßdnou XML vymo₧enost, ale o vymo₧enost rkEditu. Představte si, ₧e potřebujete napřφklad u vaÜich nov²ch podprogramů zadat nejen nßzev, ale i datum a čas vytvořenφ a jmΘno tvůrce. Nebo v novΘm souboru v projektu zadßvßte kromě ostatnφho svůj e-mail a dalÜφ. Proč to dělat ručně, kdy₧ to jde zautomatizovat?
Proměnnß znamenß libovoln² text v těle Üablony uzavřen² do procentφtek, tedy napřφklad %email%. V rkEditu si pak mů₧ete definovat vlastnφ hodnoty pro ka₧dou proměnnou (viz dßle). V jednΘ firmě pak lze mφt jednu Üablonu pro nespočetně lidφ.
Nßzvy proměnn²ch mohou b²t zcela libovolnΘ (a₧ na v²jimky definovanΘ dßle), vÜe zßvisφ na vaÜich potřebßch.
V menu Settings je polo₧ka Edit templates' variables. Ta vyvolß dialog podobn² tomuto:
Prßvě zde si definujte nßzev proměnnΘ a jejφ hodnotu jako je to provedeno napřφklad u proměnnΘ FirstName. Tato hodnota pak bude vyplněna za uvedenou proměnnou. Přidßnφ dalÜφ proměnnΘ lze napřφklad stiskem kurzorovΘ klßvesy èipka dolů na poslednφm řßdku, smazßnφ proměnnΘ lze pomocφ klßvesovΘ zkratky Ctrl+Del.
V rkEditu jsou některΘ proměnnΘ definovßny automaticky a majφ svůj specifick² v²znam:
date |
Vlo₧enφ aktußlnφho datumu dle zadanΘho formßtu. Pokud nenφ ₧ßdn² formßt zadßn, je vzat přednastaven² ze systΘmu. Formßtovacφm řetězcem lze řφct, aby byl vlo₧en i čas. |
time |
Vlo₧enφ aktußlnφho času dle zadanΘho formßtu. Pokud nenφ ₧ßdn² formßt zadßn, je vzat přednastaven² ze systΘmu. Formßtovacφm řetězcem lze řφct, aby byl vlo₧en i datum. |
guid |
Vlo₧φ nově vygenerovanΘ GUID |
filename |
Vlo₧φ nßzev souboru (pokud je tento ji₧ ulo₧en) |
fullfilename |
Vlo₧φ nßzev souboru včetně cesty (pokud je tento ji₧ ulo₧en) |
input |
Zde se uplatňuje atribut elementu template inputdesc. Při zadßnφ tΘto proměnnΘ budete dotßzßni na řetězec, kter² bude vlo₧en mφsto tΘto proměnnΘ. |
input1..input10 |
Jestli₧e potřebujete od u₧ivatele vφce ne₧ jeden vstup, pak mφsto proměnnΘ input pou₧ijte a₧ deset těchto proměnn²ch. Od u₧ivatele bude po₧adovßn vstup vÜech uveden²ch proměnn²ch v jedinΘm dialogu. Texty ke ka₧dΘmu vstupu se budou brßt z atributů alementu template nazvan²ch inputdesc1 a₧ inputdesc10 |
block |
Za tuto proměnnou bude vlo₧en text, kter² je označen v bloku; obecně platφ, ₧e pokud je při vyvolßnφ Üablony označen blok, je tento nahrazen Üablonou |
Pokud rkEdit nenalezne nßzev proměnnΘ, sna₧φ se zjistit, zde neexistuje i takovΘ proměnnß systΘmu. Pokud existuje, pak je nahrazena prßvě jejφ hodnotou. Přφkladem mů₧e b²t např. proměnnß systΘmu %path%.
Mějme napřφklad tuto Üablonu:
<template shortcut="proc" name="Procedure" inputdesc="Enter procedure name:">
//------------------------------------------------------------------
// Procedure %input%
// created by %firstname% %othername% %surname% at %date% %time%
// soubor: %filename%
//------------------------------------------------------------------
procedure %input%;
const
GUID = ['%guid%'];
begin {%input%}
|
end; {%input%}
</template>
Po spuÜtěnφ tΘto Üablony budeme dotßzßnφ na zadßnφ hodnoty proměnnΘ input:
a nßsledně se vygeneruje tento text:
//------------------------------------------------------------------
// Procedure MyProc
// created by Slßvek %othername% Rydval at ·ter², 14. 08. 2001 17:58.26
// soubor:
//------------------------------------------------------------------
procedure MyProc;
const
GUID = ['{BC75846B-9410-4877-9136-57EB73F0FC54}'];
begin {MyProc}
end; {MyProc}
VÜimněte si několika věcφ:
NeznßmΘ proměnnΘ zůstßvajφ nedotčeny (pokud se nejednß o proměnnΘ systΘmu).
Na hodnotu proměnnΘ input jste dotßzßni pouze jednou, ale doplnφ se ve vÜech v²skytech.
Kurzor bude na mφstě označenΘm v Üabloně kolmφtkem.
Nßpovědn² text dan² atributem inputdesc je pou₧it v dialogu.
Pokud si nadefinujete proměnnΘ guid, filename apod., nic tφm nezφskßte, rkEdit mß prioritu.