14. díl

 

 

Vážení čtenáři,

 

v dnešním dílu se budu věnovat vašim otázkám a dotazům, týkajících se problémových oblastí HTML nápovědy. Věřím, že zde najde každý z vás alespoň jednu odpověď na své „nápovědní“ problémy. Připravte se, začínáme.

 

Obsah

Tvorba víceúrovňových položek rejstříku

Abecední řazení položek rejstříku

Navázání tématu nápovědy na položku pro tematický celek

Vizuální označování aktualizovaných témat nápovědy v TOC

Spuštění externího programu z HTML nápovědy

Zobrazení firemního loga po startu nápovědního systému

Literatura o tvorbě nápovědy

Problém s ukončováním HTML nápovědy ve VB 6.0 pod Windows XP

Jiný software pro vývoj nápovědy

 

 

Dobrý den. Váš seriál o nápovědě je skvělý, již v mnoha případech jsem za pomoci vašich rad a postupů zdárně vyřešil své problémy. Rád bych se vás zeptal, zda-li je v HTML nápovědě možné udělat jednotlivé položky rejstříku ve více úrovních. Rád bych totiž vnořil pod jednu položku ještě několik dalších. Díky za odpověď.

 

Ano, je to možné. Jen doplním, že čtenář má patrně na mysli tvorbu takzvaných víceúrovňových položek rejstříku. V prostředí HTML nápovědy můžete vytvořit víceúrovňových položek, kolik budete chtít (matematicky řečeno: jednu až n položek). Jak vytvořit položku druhé úrovně si ukážeme na následujícím příkladu.

 

Předpokládejme, že váš rejstřík má takovouhle podobu:

 

 

Protože chceme, aby byla druhá položka podřazena té první, musíme jí „posunout“ směrem doprava. Označte tedy druhé téma a stiskněte tlačítko Move Selection Right (). Jakmile uskutečníte demonstrovanou akci, téma se posune doprava a stane se z něj položka druhé úrovně. Podobně můžete postupovat, pokud budete chtít vytvořit položku (téma) třetí, čtvrté, páté atd. úrovně.

 

 

Ve svém projektu nápovědy používám velmi mnoho rejstříkových položek, které ovšem potřebuji mít seřazené podle abecedy. Existuje v programu HTML Help Workshop nějaká možnost automatického abecedního řazení položek rejstříku, nebo je opravdu nevyhnutné provádět řazení manuálně?

 

I když program HHW rozhodně nepatří mezi pokročilé editory pro tvorbu HTML nápovědy, možnost abecedního seřazení témat rejstříku poskytuje. Postupujte takto: Nejprve napište všechny položky rejstříku a poté aktivujte tlačítko Sort Keywords Alphabetically (), které se nachází na vertikální liště tlačítek.

 

 

Někde jsem se dočetl, že i položka obsahu v podobě „otvírající a uzavírající se“ knihy může být navázána na zobrazení témata nápovědy. Jak to lze udělat v HTML Help Workshopu?

 

Ano, máte pravdu. Styl HTML nápovědy vám dovoluje opatřit i hlavní obsahové téma příslušným nápovědním textem. Na vysvětlení pro jiné čtenáře: Termínem „hlavní nápovědní téma“ mám na mysli tematický celek, před kterým je v obsahové stromové struktuře standardně zobrazena ikona knížky. Jestliže uživatel poklepe na tuto ikonu, knížka se „otevře“ a zpřístupní uživateli všechna vnořená témata, která odpovídají příslušnému tematickému celku. Ve skutečnosti však lze hlavní téma obsahové struktury „naaranžovat“ tak, aby se po klepnutí na položku tématického celku zobrazil jeho stručný obsah, případně další důležité a vhodné informace.

 

Postupujte podle následujících instrukcí. Nejprve vyberte tu položku, která tvoří jeden tematický celek. Dále klepněte na tlačítko Edit Selection (), na což se zobrazí okno Table of Contents Entry. Zde, na záložce General, klikněte na tlačítko Add a nakonec vyberte ten .HTM dokument, který si přejete asociovat s položkou tematického celku. Provedete-li kompilaci projektového souboru nápovědy a vytvoříte-li opravdový soubor HTML nápovědy (.CHM), již v něm bude implementována i uvedená technika. Vskutku, když uživatel jenom jednou klepne na položku tematického celku, objeví se kýžené nápovědní téma.

 

 

Ke svému programu dodávám i nápovědu ve formátu komprimovaného souboru HTML (.CHM). Protože program i nápovědu poměrně často aktualizuji, potřeboval bych uživatele upozornit na nová témata, která byla do nápovědy přidána od vypuštění poslední verze softwaru. Chtěl bych vás proto poprosit o radu, jak toto dilema vyřešit.

 

Problém označování nových, nebo modifikovaných témat nápovědy se v dotazech objevuje s pravidelní periodou. Je vskutku chvályhodné, že stále ještě existují producenti softwaru, který se snaží co nejvíce vycházet vstříc finálním uživatelům tím, že označují změněná témata speciálními vizuálními znaky v obsahové sekci nápovědy (TOC). A jak označit modifikované téma v programu HTML HelpWorkshop? Inu, velmi lehce, jak ihned uvidíte.

 

  1. Vyberte v obsahové struktuře témat to téma, které chcete označit jako nové, nebo aktualizované.
  2. Klikněte na tlačítko Edit Selection (). Následně se objeví okno Table of Contents Entry.
  3. V dialogovém okně označte záložku Advanced. Zde zatrhněte volbu Mark as a new entry (viz obrázek).

 

 

Po potvrzení změn se u modifikované položky objeví červená hvězdička, která indikuje, že jde opravdu o nové, nebo aktualizované téma. Situaci ilustruje další obrázek.

 

 

Samozřejmě že problematika označování nových témat nápovědy se dá vyřešit i jiným způsobem. Můžete kupříkladu vytvořit své vlastní ikony obsahové struktury nápovědy a upozornit uživatele na význam těchto ikon.

 

 

Potřeboval bych z HTML nápovědy spustit externí program. V nápovědě typu WinHelp 4.0 jsem pro tento účel používal makro ExecFile s platnými parametry. V HTML nápovědě jsem ale žádné takové makro nenašel. Otázka je nasnadě, jak lze spustit program z prostředí HTML nápovědy?

 

Makro ExecFile (EF) jste hledali v HTML nápovědě marně. Pro spuštění externího programu se nyní používá ovládací prvek ActiveX s názvem HTML Help Control. Prostě instanci tohoto prvku vložíte do kódu toho .HTM souboru, ze kterého budete chtít spustit požadovaný program. Abyste celý postup lépe pochopili, uvedeme si příklad spuštění programu Poznámkový blok (notepad) z HTML nápovědy. Postupujte takto:

 

  1. V programu HHW poklepejte na položku s .HTM souborem, do kterého chcete vložit instanci ovládacího prvku.
  2. Umístěte kurzor mezi značky </BODY> a </HTML>.
  3. Z nabídky Tags vyberte příkaz HTML Help Control, případně klikněte na stejnojmenné tlačítko () na horizontální lište tlačítek.
  4. Objeví se okno průvodce, ve kterém vyberte ze seznamu Specify the command položku Shortcut (viz spodní obrázek).

 

 

  1. V následujících krocích vyberte vytvoření tlačítka (možnost As a button), zobrazení textu na tlačítku (možnost Display text on the button) a zadejte text, který se bude objevovat na vytvořeném tlačítku.

 

  1. Nyní se dostáváme k jádru problému. Ve čtvrtém kroku průvodce budete moci specifikovat program, který se má spustit a rovněž můžete určit i parametry, se kterými se má program nastartovat. Protože v našem příkladu chceme spustit program Poznámkový blok, zapište do pole Program řetězec notepad (viz obrázek).

 

 

  1. V předposledním okně průvodce se vám ještě naskýtá možnost zaslat programu zprávu, no tato problematika přesahuje rámec našeho problému. Následujte tedy průvodce až do konce a všimněte si vygenerovaný HTML kód, který by měl vypadat asi takto:

 

<OBJECT id=hhctrl type="application/x-oleobject"

        classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"

        codebase="hhctrl.ocx#Version=4,74,9273,0"

        width=100

        height=100

>

    <PARAM name="Command" value="ShortCut">

    <PARAM name="Button" value="Text:Poznámkový blok">

    <PARAM name="Item1" value=",notepad,">

</OBJECT>

 

Zkompilujete-li soubor nápovědy, ve zvoleném .HTM souboru se bude nacházet i vytvořené tlačítko, po aktivaci kterého se spustí určený program.

 

 

Po spuštění nápovědy bych rád zobrazil firemní logo. Poraďte prosím, jak to udělat.

 

Zobrazení loga po nastartování nápovědy je vhodné jak pro prezentaci firmy, tak pro sdělení informací ohledně autorských práv. Ve skutečnosti můžete nechat zobrazit jakýkoli obrázek, nemusí jít nutně o logo společnosti a zobrazení obrázku se podobně nemusí nevyhnutně vázat na start systému nápovědy (obrázek lze zobrazit po zobrazení libovolného .HTM souboru). Uvedený úkol nám pomůže vyřešit ovládací prvek ActiveX s názvem HTML Help Control, jehož instanci vložíme do toho .HTM souboru, po zobrazení kterého chceme zobrazit i obrázek. Postup vkládání instance ovládacího prvku do konkrétního .HTM souboru jsem už vysvětloval několikrát, a proto se k němu již nebudu vracet. Jediné, na co nesmíte zapomenout, je vybrání položky Splash screen ze seznamu Specify the command v prvním kroku průvodce vkládání prvku do .HTM souboru. Podobně můžete nastavit i počet sekund, po uplynutí kterých má obrázek zmizet z obrazovky počítače.

 

 

Rád bych začal s profesionálním vývojem nápovědy. Mohl byste mi doporučit nějakou literaturu, případně internetové zdroje? Děkuji pěkně.

 

Pokud vím, tak literatury zabývající se tvorbou nápovědy (či už stylu WinHelp 4.0 nebo HTML) je opravdu velice poskrovnu. V českém jazyce vyšla jenom kniha o tvorbě nápovědy ve Windows 95, v originálu pojmenovaná jako „Microsoft Windows 95 Help Authoring Kit“. HTML nápovědou se zabývá výtečná kniha s názvem „Microsoft Official HTML Help Authoring Kit“, která je psána v anglickém jazyce. Vzpomínané knihy si můžete objednat v některých internetových knihkupectvích. Co se týče druhé poloviny dotazu, a sice internetových zdrojů, v oblibě mám především dvě stránky (obě jsou zahraniční). Jde o http://www.helpware.net a http://www.helpmaster.com.    

 

 

Na svém počítači používám operační systém Windows XP a také Visual Basic 6.0. Zkoušel jsem spouštět soubor HTML nápovědy z VB 6.0, no narazil jsem na jistý problém. Vždy, když zavřu aplikaci VB příkazem Zavřít ze systémové nabídky a soubor s nápovědou je stále spuštěný, VB se okamžitě ukončí, jednoduše „zmizne z obrazovky“. Nevím, jestli jste se s tímto problémem setkal, no budu vděčný za jakoukoli radu.

 

Domnívám se, že bude zapotřebí posoudit předstíranou problémovou situaci komplexněji, aby čtenáři dokonale pochopili podstatu tohoto velmi zajímavého a delikátního problému. Při ukončování projektové aplikace v prostředí VB 6.0 pod systémem Windows XP dochází občas k záhadné situaci. Pro naší úvahu předpokládejme, že na formuláři je umístěné tlačítko, kterého obsluhu události Click tvoří následující příkaz:

 

Call HtmlHelp(Me.hWnd, "c:\soubor1.chm", HH_DISPLAY_TOPIC, 0)

   

Tento příkaz volá API funkci HTMLHelp, která zabezpečuje zobrazení souboru s HTML nápovědou (abstrahuji od nutnosti deklarace funkce a všech potřebných konstant). Pro ukončení běžící instance nápovědy je vyplněna i obsluha události QueryUnload formuláře tímto příkazem:

 

Call HtmlHelp(0, vbNullString, HH_CLOSE_ALL, 0)

 

Nutno podotknout, že po spuštění projektu a po klepnutí na tlačítko se zavolá funkce HTMLHelp a soubor s HTML nápovědou se úspěšně zobrazí. Potíže ovšem nastávají při ukončování aplikace. Ukončíte-li aplikaci tak, že jednoduše klepněte na tlačítko X v pravé části titulkového pruhu aplikace, vše je v pořádku, ukončí se jak aplikace, tak i spuštěná instance HTML nápovědy. Ovšem pozor! Jestliže ukončíte aplikaci vybráním příkazu Zavřít ze systémové nabídky, VB odstřelí projektovou aplikaci a záhy i sám sebe. Toto je patrně ten pravý problém, na který se čtenář ptá.

 

Uvedené chování Visual Basicu je ovšem velice nevyzpytatelné; někdy je HTML nápověda řádně ukončena a vše je OK, jindy naopak dojde ke zhroucení aplikace i VB. Při experimentech jsme narazil i na další zajímavost: Pokusíte-li se vygenerovat samostatně spustitelný soubor (.EXE) projektu a ten spustíte, světe div se, vše je v naprostém pořádku! Dokonce není hlášena ani žádná chyba za běhu programu! Proto moje rada zní, abyste v případě uvedené chyby vygenerovali spustitelný soubor a testovali ten.

 

Naprosto bezproblémové jsou experimenty s HTML nápovědou pod Windows XP ve Visual Basicu .NET. Tady nedochází k žádným chybám ani jakýmkoli nejasnostem. Pokud tedy máte přístup k VB .NET, zapomeňte na VB 6.0 a využívejte výhod .NET prostředí. 

 

Použitý kód pro volání nápovědy je zcela v pořádku, zkoušel jsem ho i pod Windows Me, kde vše běhalo bez nejmenších potíží.  

 

 

Snažím se tvořit nápovědu, no program HTML Help Workshop mi moc nevyhovuje. Nevíte mi poradit jiný software na tvorbu HTML nápovědy? Děkuji.

 

Program HTML Help Workshop může být opravdu pro někoho nevhodný, obzvláště pro uživatele, kteří by rádi tvořili své soubory nápověd v uživatelsky přívětivějším a komfortnějším programu. Programů pro tvorbu a editaci souborů nápověd existuje poměrně značné množství, od těch méně kvalitních, které lze pořídit zpravidla za mrzký peníz (případně zadarmo) až po aplikační „špičky“, kterých obstarání vychází i na několik desítek tisíc korun. Celkem slušný program pro editaci HTML nápovědy a také nápovědy nové generace (MS Help 2.0) je FAR, zkušební verzi kterého si můžete stáhnout z webu http://www.helpware.net. Jedinečným je zajisté softwarový produkt RoboHelp, který má mezi programy pro tvorbu nápovědy již dlouhou tradici. Pomocí uvedeného programu lze vytvářet nápovědu ve zcela WYSIWYG prostředí. Více informací o tomto produktu se můžete dozvědět na http://www.ehelp.com.

 

 

 Ján Hanák