Delphi - Indexek kezelése

HTML Help komponensek 3. rész

forráskód letöltése
Az előző részekben elkészítettünk két komponenst, amelyek segítségével kezelni tudjuk a project- és a tartalomjegyzék-állományokat. Most egy újabb komponenst készítünk, amely az indexek kezelését valósítja meg.
A mellékelt példaprogram megnyitása előtt a HTMLHelpIndex.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponens FileName property-jében adhatjuk meg a létrehozandó vagy megnyitandó HHK állomány elérési útját és nevét.
Az alábbi táblázat összefoglalja a komponens property-jeit és a nekik megfelelő HTML Help Workshop-ban található opciókat.
Property HTML Help Workshop opció
DefaultFrame Index properties – General - Default frame
DefaultWindow Index properties – General - Default window
Font Index properties – General - Font
Az indexben szereplő elemeket az Items property-ben adhatjuk meg, amely TStringList típusú.
Az Items property egy eleme egy index bejegyzést képvisel. Egy bejegyzést a következő formában adhatunk meg. Pl.:
HTMLHelpIndex1.Items.Add('l=1; k=Második; f='+path+'2.htm');
A bejegyzések paramétereit pontosvesszővel elválasztva kell felsorolnunk. A következő paramétereket használhatjuk:
Paraméter Jelentése
l Az elem-hierarchia szintje. Az első szint 0. Ha a következő elemet alá akarjuk rendelni az előzőnek, akkor 1-el nagyobb értéket adjunk meg.
k A bejegyzésben megjelenítendő név.
f Egy HTM állomány, amelyet akkor kell megjeleníteni, ha a felhasználó az indexből kiválassza a megadott elemet.
s See also
r Frame - Keret
c Comment - Megjegyzés
w Window - Ablak
Új index létrehozásához meg kell hívnunk a CreateNewIndex metódust.
procedure CreateNewIndex;
Ha meg akarunk nyitni egy már létező indexet, akkor a LoadIndex metódust kell használnunk. A metódus meghívása előtt, a FileName property-ben állítsuk be a megnyitandó HHK állomány elérési útját és nevét.
function LoadIndex: Boolean;
A függvény visszatérési értéke csak akkor igaz, ha a betöltés sikeres volt.
A létrehozott indexet a SaveIndex metódussal menthetjük lemezre. Mentés előtt a létrehozandó HHK állomány elérési útját és nevét állítsuk be a FileName property-ben.
function SaveIndex: Boolean;
A függvény visszatérési értéke csak akkor igaz, ha a mentés sikeresen megtörtént.
A komponens elkészítése
Az indexet tartalmazó állomány (*.hhk) HTML formátumú, felépítése hasonló a hhc állományhoz.
A HTML állomány fejléce és formátuma adott. Az egyes property-ket az <OBJECT> tag tartalmazza, a következő formában:
<OBJECT type="text/site properties">
        <param name="WindowName" value="Alapértelmezett ablak">
</OBJECT>
Az alábbi táblázat összefoglalja a komponens által beállítható tulajdonságokat, és a HTML kódban szereplő param name megfelelőjüket:
Property HTML Help megfelelője a param name tagban
DefaultFrame FrameName
DefaultWindow WindowName
Font Font
A globális beállítások után az egyes index-elemek adatai következnek.
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Második">
<param name="Local" value="C:\Delphi6\Projects\HtmlHelp\2.htm">
</OBJECT> 
Az <UL> tag hatására a következő objektumok egy szinttel beljebb lépnek a hierarchikus szerkezetben, egészen a </UL> tag megjelenéséig.
Egy bejegyzés a következő tulajdonságokat tartalmazhatja:
Kapcsoló HTML Help megfelelője a param name tagban
k Name
f Local
r FrameName
w WindowName
c Comment
s See Also
Amikor elmentünk egy indexet vagy megnyitunk egy már létezőt, akkor a fent felsorolt értékeket kell kiolvasnunk, illetve beírnunk.

HTML Help komponensek cikksorozat