13. dφl

 

 

Vß₧enφ p°ßtelΘ,

 

rßd bych vßs p°ivφtal u dalÜφho dφlu serißlu o tvorb∞ nßpov∞dy. DneÜnφ t°inßctß kapitola se bude v∞novat spφÜe programovacφm postup∙m, nebo¥ se budeme zab²vat zkoumßnφm samotnΘho HTMLHelp API a jeho vyu₧itφ p°i zavßd∞nφ HTML nßpov∞dy do aplikace Visual Basicu 6.0. Ukß₧eme si, jak zobrazit hlavnφ nabφdku nßpov∞dy a jednotlivß tΘmata. Ve druhΘ polovin∞ se podφvßme na zm∞ny, kterΘ do sv∞ta nßpov∞dy p°inesl modernφ Visual Basic .NET.

 

 

Obsah

Charakteristika API funkce HTMLHelp

Funkce HTMLHelp a praxe

Projekt 1: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy (Krok 1)

Projekt 1: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy (Krok 2)

Projekt 2: Zobrazenφ specifickΘho tΘmatu HTML nßpov∞dy (Krok 1)

Projekt 2: Zobrazenφ specifickΘho tΘmatu HTML nßpov∞dy (Krok 2)

ProblΘm s implementacφ kontextovΘ nßpov∞dy stylu HTML ve VB 6.0

Nßpov∞da a Visual Basic .NET

Komparace vyu₧itφ nßpov∞dy ve VB 6.0 a VB .NET

Projekt 1: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy

Projekt 2: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy pomocφ prvku HelpProvider

Projekt 3: Kontextovß nßpov∞da pomocφ prvku HelpProvider poprvΘ

Projekt 4: Kontextovß nßpov∞dy pomocφ prvku HelpProvider podruhΘ

Projekt 5: WinHelp 4.0 a VB .NET

 

 

Charakteristika API funkce HTMLHelp

V tΘto Φßsti si p°edstavφme aplikaΦnφ programovΘ rozhranφ (API), kterΘ vnit°n∞ pohßnφ celou maÜinΘrii HTML nßpov∞dy. Zßkladem naÜeho zkoumßnφ bude API funkce s nßzvem HTMLHelp. Pokud jste ji₧ n∞kdy pracovali s WinHelp API, brzy poznßte mnoho spoleΦn²ch atribut∙. Tedy zßpis funkce HTMLHelp je v prost°edφ VB 6.0 nßsledovnφ:

 

Public Declare Function HtmlHelp Lib _

"hhctrl.ocx" Alias "HtmlHelpA" ( _

ByVal hwndCaller As Long, _

ByVal pszFile As String, _

ByVal uCommand As Long, _

ByVal dwData As Long _

) As Long

 

Jak si m∙₧ete vÜimnout, funkce je volßna z prost°edφ ovlßdacφho prvku hhctrl.ocx. Pravd∞podobn∞ nejjednoduÜÜφ a nejsrozumiteln∞jÜφ bude p°edstavenφ vÜech parametr∙ funkce.

 

Parametr

Charakteristika

hwndCaller

Specifikuje ukazatel (handle) na aplikaΦnφ okno, kterΘ si vy₧ßdalo spuÜt∞nφ HTMLHelp nßpov∞dy.

pszFile

UrΦuje soubor HTML nßpov∞dy (.CHM), kter² se mß zobrazit. Voliteln∞ je mo₧nΘ pou₧φt i typ okna, ve kterΘm se mß obsah souboru nßpov∞dy zobrazit. Zßpis pak vypadß takto: soubor_nßpov∞dy>typ_okna.

uCommand

Konstanta, kterß blφ₧e popisuje, jakß akce se mß uskuteΦnit, nap°. zobrazenφ hlavnφ nabφdky souboru HTML nßpov∞dy.

dwData

Poslednφ parametr dodateΦn∞ rozÜi°uje p∙sobenφ parametru uCommand. Ilustraci jeho mo₧nostφ si ukß₧eme dßle v textu.

á

Z deklarace funkce je z°ejmΘ, ₧e vracφ i jistou nßvratovou hodnotu ve form∞ dlouhΘho celΘho Φφsla (Long). Tato hodnota determinuje ukazatel na aplikaΦnφ okno nßpov∞dy v podob∞ identifikaΦnφho Φφsla v p°φpad∞, ₧e volßnφ funkce prob∞hlo ·sp∞Ün∞. V opaΦnΘ situaci je vrßcena nulovß hodnota. Velice d∙le₧itΘ je takΘ p°edßvßnφ vÜech argument∙ hodnotou, co naznaΦuje pou₧it² modifikßtor ByVal.

 

Funkce HTMLHelp je v porovnßnφ s funkcφ WinHelp pon∞kud vφce citlivß, a proto se p°i prßci s nφ v₧dy ujist∞te, ₧e jφ p°edßvßte parametry ve sprßvnΘm po°adφ a se sprßvn²mi datov²mi typy. Funkce mß toti₧ tendenci p°i sebemenÜφch nesrovnalostech zp∙sobit obecnou chybu ochrany a poh°bφt jednak testovacφ aplikaci a pota₧mo i cel² VB 6.0. á

 

 

Funkce HTMLHelp a praxe

V tΘto sekci si ukß₧eme, jak lze vyu₧φt mo₧nostφ funkce HTMLHelp k zobrazenφ standardnφho souboru HTML nßpov∞dy a poslΘze i k zobrazenφ specifickΘho tΘmatu nßpov∞dy.

 

 

Funkce HTMLHelp a praxe

Projekt 1: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy

Krok 1: P°φprava prost°edφ VB 6.0

 

Ze vÜeho nejd°φve je zapot°ebφ p°ipravit VB tak, aby bylo z jeho prost°edφ mo₧nΘ zavolat API funkci HTMLHelp. Postupujte podle uveden²ch krok∙:

 

  1. Spus¥te VB a v okn∞ pro v²b∞r novΘho projektu poklepejte na polo₧ku Standard EXE.
  2. Do novovytvo°enΘho projektu vlo₧te standardnφ modul (.BAS).
  3. Do modulu zkopφrujte deklaraci funkce HTMLHelp, kterß byla uvedena v Φßsti äCharakteristika API funkce HTMLHelpô. P°ed deklaraci funkce p°idejte jeÜt∞ deklaraci konstanty pro zobrazenφ hlavnφ nabφdky nßpov∞dy:

 

Public Const HH_DISPLAY_TOPIC = &H0

á

  1. Na formulß° umφst∞te instanci ovlßdacφho prvku CommandButton a poslΘze na vytvo°enou instanci poklepejte, Φφm₧ se otev°e okno pro zßpis k≤du.

 

Abyste p°edeÜli jak²mkoliv ztrßtßm p°i ne·sp∞ÜnΘm volßnφ funkce HTMLHelp, pov∞zte VB, aby v₧dy p°i startu programu ulo₧il vÜechny projektovΘ soubory. Docφlφte toho aktivacφ volby Save Changes na zßlo₧ce Environment v sekci Options, kterß je dostupnß z nabφdky Tools. á

 

 

Funkce HTMLHelp a praxe

Projekt 1: Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy

Krok 2: Zßpis k≤du pro spuÜt∞nφ souboru HTML nßpov∞dy

 

  1. Do obsluhy udßlosti Click tlaΦφtka CommandButton1 vlo₧te nßsledujφcφ °ßdek k≤du:

 

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

 

Domnφvßm se, ₧e bude vhodnΘ, kdy₧ zßpis funkce trochu objasnφm. Tedy, prvnφ parametr identifikuje okno, kterΘ po₧ßdalo o aktivaci funkce. V naÜem p°φpad∞ jde o okno, ve kterΘm se prßv∞ provßdφ veÜkerß Φinnost, co je ostatn∞ z°eteln∞ definovßno pou₧itφm klφΦovΘho slova Me. Druh² parametr pojednßvß o souboru HTML nßpov∞dy, kter² chceme zobrazit. Proto₧e jde o textov² °et∞zec, musφ b²t uzav°en v dvojit²ch uvozovkßch. T°etφm parametrem je konstanta urΦujφcφ, jakou formou bude zobrazen soubor s nßpov∞dou. V naÜem p°φpade jde o konstantu HH_DISPLAY_TOPIC, kterß zabezpeΦuje zobrazenφ hlavnφ nabφdky souboru nßpov∞dy. A koneΦn∞, poslednφ parametr poskytuje dodateΦnΘ informace o parametru uCommand, a proto₧e chceme zobrazit standardnφ nabφdku, nastavφme jeho hodnotu na nulu.

 

  1. Spus¥te projekt VB a klepn∞te na tlaΦφtko. Jestli₧e jste specifikovali vlastnφ soubor HTML nßpov∞dy, tento by se m∞l po aktivaci tlaΦφtka ihned zobrazit. V²born∞, dokßzali jsme zobrazit hlavnφ obrazovku souboru nßpov∞dy. OvÜem pozor! V tΘto chvφli nesmφte uzav°φt okno aplikace, jinak by byla okam₧it∞ vygenerovßna chyba a nßsledn∞ äodst°elenô projekt i VB. Kdy₧ budete chtφt aplikaci uzav°φt, nejd°φv ukonΦete spuÜt∞nou instanci HTML nßpov∞dy a a₧ potΘ zav°ete i samotnou aplikaci. D∙vodem tohoto pon∞kud nesmyslnΘho chovßnφ VB je absence k≤du, kter² je nevyhnutnΘ pou₧φt p°i uzavφrßnφ aplikace. Abyste p°edeÜli uvedenΘ chyb∞, do modulu zkopφrujte deklaraci konstanty HH_CLOSE_ALL a do obsluhy udßlosti QueryUnload formulß°e Form1 zapiÜte uveden² segment k≤du.

 

Deklarace konstanty do modulu:

Public Const HH_CLOSE_ALL = &H12

 

K≤d pro ukonΦenφ instance HTML nßpov∞dy do obsluhy udßlosti QueryUnload:

Call HtmlHelp(0, vbNullString, HH_CLOSE_ALL, 0)

 

Kdy₧ po poveden²ch zm∞nßch spustφte projekt a zobrazφte nßpov∞du, m∙₧ete zav°φt i okno projektu, vÜe bude v po°ßdku, ukonΦφ se i spuÜt∞nß nßpov∞da.

á

V dalÜφ Φßsti prozkoumßme, jak zobrazit specifickΘ tΘma HTML nßpov∞dy.

 

Zobrazenφ nßpov∞dy s konkrΘtnφm tΘmatem p°edstavuje jistou formu kontextovΘ nßpov∞dy. NejlΘpe si uvedenou situaci rozebereme na p°φkladu. P°edstavte si, ₧e na formulß°i mßte jist² ovlßdacφ prvek, °ekn∞me tlaΦφtko, po stisknutφ kterΘho budete chtφt, aby se zobrazila nßpov∞da s urΦit²m tΘmatem, nap°. popisem funkcφ dialogovΘho okna. V tΘto a mnoha dalÜφch situacφch m∙₧ete snadno pou₧φt postup, kter² si budeme dßle demonstrovat.

 

 

Funkce HTMLHelp a praxe

Projekt 2: Zobrazenφ specifickΘho tΘmatu HTML nßpov∞dy

Krok 1: Tvorba sekcφ ALIAS a MAP v projektovΘm souboru nßpov∞dy

 

Prvnφm krokem bude sestavenφ sekcφ ALIAS a MAP v projektovΘm souboru (.HHP) HTML nßpov∞dy. Je obecn∞ doporuΦeno, abyste tyto sekce needitovali p°φmo v prost°edφ kompilßtoru HTML Help Workshop (d∙vodem je velikß nestabilita programu). Proto si rad∞ji otev°ete vßÜ projektov² soubor v poznßmkovΘm bloku a postupujte nßsledovn∞:

 

  1. Vlo₧te do souboru informace o sekci ALIAS. Ty by m∞ly vypadat asi takhle:

 

[ALIAS]
IDH_TEMA_1 = Stranka1.htm

 

Hlavnφm ·Φelem sekce ALIAS je p°i°adit jednotliv²m .HTM soubor∙m (v uvedenΘm p°φpad∞ pouze jeden soubor s nßzvem äStranka1ô) symbolickΘ konstanty. Pou₧itΘ konstanty nesmφ b²t ΦφselnΘ a rovn∞₧ se doporuΦuje, abyste vyu₧φvali formßt ve tvaru IDH_vaÜe_identifikace.

 

  1. Po zhotovenφ sekce ALIAS je zapot°ebφ vytvo°it i sekci MAP. V tΘto sekci jsou dßle jednotliv²m konstantßm z p°edchozφho kroku p°irazeny konkrΘtnφ numerickΘ hodnoty.

 

[MAP]
#define IDH_TEMA_1   10000

 

Pokud mßte n∞jakΘ zkuÜenosti s programovacφm jazykem C, je vßm zcela jist∞ tentoá zßpis pov∞dom². Velmi jednoduÜe °eΦeno, direktiva #define se pou₧φvß pro nßhradu jednΘ konstanty jinou. V tomto p°φpad∞ se nahrazuje textovß konstanta IDH_TEMA_ 1 numerickou konstantou (10000). V₧dy, kdy₧ kompilßtor objevφ prvnφ konstantu, nahradφ ji druhou (nßsledujφcφ) konstantou.á

 

  1. Po vykonan²ch zm∞nßch ulo₧te projektov² soubor a prove∩te kompilaci souboru HTML nßpov∞dy.

 

 

Funkce HTMLHelp a praxe

Projekt 2: Zobrazenφ specifickΘho tΘmatu HTML nßpov∞dy

Krok 2: Aktivace HTML nßpov∞dy z prost°edφ VB 6.0

 

  1. Do modulu stßvajφcφho projektu Visual Basicu p°idejte deklaraci tΘto konstanty:

 

Public Const HH_HELP_CONTEXT = &HF

 

  1. P°idejte na formulß° dalÜφ tlaΦφtko a do jeho obsluhy udßlosti Click vepiÜte tento k≤d:

 

Call HtmlHelp(0, "c:\pokus.chm", HH_HELP_CONTEXT, 10000)

 

K≤d zabezpeΦφ spuÜt∞nφ nßpov∞dy a zobrazenφ obsahu strßnky s nßzvem äStranka1ô. Podobn²m postupem m∙₧ete zobrazovat kterΘkoliv tΘma z vaÜeho systΘmu nßpov∞dy.

 

Funkce HTMLHelp a praxe

ProblΘm s implementacφ kontextovΘ nßpov∞dy stylu HTML ve VB 6.0

Jak je to s opravdovou kontextovou nßpov∞dou ve VB 6.0?

 

Pod pojmem äopravdovßô kontextovß nßpov∞da se rozumφ skuteΦnß nßpov∞da k libovolnΘmu prvku nebo kontextu. Tato forma nßpov∞dy se s v²hodou vyu₧φvß p°edevÜφm v modßlnφch dialogov²ch oknech. Obvyklß prezentace kontextovΘ nßpov∞dy je vizußln∞ umocn∞na p°φtomnostφ tlaΦφtka s otaznφkem v titulkovΘm pruhu okna. PotΘ, co u₧ivatel klepne na vzpomφnanΘ tlaΦφtko, se kurzor myÜi zm∞nφ na ikonu Üipky s mal²m otaznφkem. Jestli₧e te∩ u₧ivatel klikne na n∞kter² prvek, objevφ se popis Φi charakteristika tohoto prvku. Toto je hlavnφ idea skuteΦnΘ kontextovΘ nßpov∞dy.

 

NaneÜt∞stφ, v prost°edφ programovacφho jazyka Visual Basic 6.0 nenφ podpora pro kontextovou nßpov∞du stylu HTML nijak implementovßna. Uveden² nedostatek v²vojovΘho prost°edφ se pak musφ jist²m zp∙sobem tak°φkajφc obejφt. Pokud by jsme na tento problΘm nazφrali ze zcela programßtorskΘho hlediska, jako nejvhodn∞jÜφ technika implementace HTML kontextovΘ nßpov∞dy by p°ipadala do ·vahy technologie subclassingu. Pomocφ subclassingu by bylo mo₧nΘ äodchytßvatô zprßvy, kterΘ posφlajφ Windows programu, kdy₧ u₧ivatel aktivuje mo₧nost kontextovΘ nßpov∞dy. Proto₧e vÜak implementace subclassingu je tΘma velmi pokroΦilΘ, nebudeme se nφm dßle zab²vat.

 

Jako druhß mo₧nost se nabφzφ zakoupenφ funkΦnφho ovlßdacφho prvku od jednΘ z mnoha spoleΦnostφ, kterΘ se v²vojem takov²chto produkt∙ profesionßln∞ zab²vajφ. Z°etelnou nev²hodou je zde po°izovacφ cena produktu, ovÜem na druhΘ stran∞ zφskßte samostatn² ovlßdacφ prvek, pou₧itφm kterΘho bude vaÜe prßce daleko snazÜφ a efektivn∞jÜφ. Za dalÜφ plusov² bod se pova₧uje podpora ze strany producenta. áá

 

A koneΦn∞ t°etφ mo₧nost (a moje nejoblφben∞jÜφ) je vyu₧itφ kontextovΘ nßpov∞dy stylu Windows 95. Filozofie tΘto strategie je vφce ne₧ jednoduchß: M∙₧ete pou₧φvat dva soubory nßpov∞dy, jeden ve formßtu HTML jako standardnφ nßpov∞du a druh² soubor pro kontextovou nßpov∞du ve stylu Windows 95. VB 6.0 si s kontextovou nßpov∞dou stylu Windows 95 velmi dob°e rozumφ (jak jsme si ukßzali ve 2. Φßsti serißlu) a co je jeÜt∞ d∙le₧it∞jÜφ, v popup oknech kontextovΘ nßpov∞dy typu Windows 95 m∙₧ete pou₧φvat libovolnΘ formßtovßnφ pφsma, obrßzky a hypertextovΘ odkazy. O toto vÜechno jste v HTML kontextovΘ nßpov∞d∞ ochuzeni.

 

 

Nßpov∞da a Visual Basic .NET

Visual Basic ve svΘ nejmodern∞jÜφ instanci zvanΘ honosn∞ .NET p°idal mnoho nov²ch technologick²ch koncept∙, ze kter²mi se musφ v²vojß°i äpopratô, jestli₧e cht∞jφ permanentn∞ dr₧et krok s dobou. Ve VB .NET opravdu nez∙stal kßmen na kameni a uvedenΘ konstatovßnφ se vß₧e i na vyu₧itφ nßpov∞dy v prost°edφ aplikacφ vyvinut²ch tφmto modernφm programovacφm nßstrojem. V nßsledujφcφch podkapitolßch se pokusφme p°ezkoumat zßkladnφ koncepty a techniky, kterΘ je nutnΘ zvlßdnout, aby vaÜe aplikace mohly komunikovat s u₧ivateli na ävyÜÜφ .NET ·rovniô.

 

 

Komparace vyu₧itφ nßpov∞dy ve VB 6.0 a VB .NET

Abyste neztratili ni¥, zaΦneme porovnßnφm vyu₧itφ nßpov∞dy ve VB 6.0 a VB .NET. Ve VB 6.0 byla nßpov∞da implementovßna na ·rovni projektu. JednoduÜe jste v okn∞ Project Properties urΦili soubor nßpov∞dy, kter² jste cht∞li ve vyvφjenΘ aplikaci pou₧φvat a bylo, jak se °φkß, vymalovßno. Tento soubor s nßpov∞dou (Φi u₧ v podob∞ .HLP nebo .CHM) jste pak mohli pou₧φt p°i mnoha p°φle₧itostech, i kdy₧ je nutnΘ p°iznat, ₧e VB 6.0 pracoval lΘpe se standardnφmi soubory nßpov∞dy (typu WinHelp 4.0), jak s nßpov∞dou ve formßtu HTML. VB .NET naproti tomu zaΦφnß p°esazovat nßpov∞dnou koncepci na ·rovni formulß°e, p°i implementaci kterΘ mu pomßhajφ dv∞ zcela novΘ komponenty, a to HelpProvider a ToolTip (obr. 1).

 

 

Obr. 1 û Zobrazenφ instancφ komponent HelpProvider a ToolTip

 

Prßce s t∞mito prvkami je pom∞rn∞ jednoduchß; instance prvk∙ lze umφstit na formulß°, poslΘze nastavit vÜechny nezbytnΘ vlastnosti a nakonec staΦφ jenom spustit projekt. áááááá

 

Zcela jasnß se jevφ p°edstava v²vojß°∙ Microsoftu, co se t²Φe stylu pou₧itΘ nßpov∞dy. JednoznaΦn∞ se razφ cesta äjen HTML nßpov∞da a nic jinΘhoô. Ve skuteΦnosti nenφ situace a₧ tak ähorkßô. Pomocφ API funkce WinHelp m∙₧ete stßle pou₧φvat i soubory nßpov∞dy stylu Windows 95. Jak na to uvidφte v sekci WinHelp 4.0 a VB .NET dßle v textu.á

 

 

Nßpov∞da a VB .NET

Projekt 1: Zobrazenφ HTML nßpov∞dy

Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy

 

Postupujte nßsledovn∞:

 

  1. Spus¥te VB .NET a v okn∞ New Project vyberte polo₧ku Windows Application (obr. 2).

 

 

Obr. 2 û V²b∞r novΘho typu projektu

 

V textovΘm poli Name zadejte nßzev pro °eÜenφ (solution) a dßle zatrhn∞te volbu Create directory for Solution, Φφm₧ zabezpeΦφte vytvo°enφ specißlnφ slo₧ky pro vßÜ projekt. Pokud jste s uskuteΦn∞n²mi zm∞nami spokojeni, klepn∞te na tlaΦφtko OK. á

 

  1. Jak si m∙₧ete vÜimnout, VB .NET vytvo°il vÜechny nezbytnΘ podklady pro vßÜ nov² projekt. Nynφ p°idejte na formulß° jedno tlaΦφtko, kterΘ nechte implicitn∞ pojmenovanΘ (Button1). á

 

  1. Poklepejte na tlaΦφtko, Φφm₧ otev°ete okno pro zapsßnφ programovΘho k≤du. K≤d obsluhy udßlosti Click tlaΦφtka upravte podle nφ₧e uvedenΘho vzoru (cestu k vaÜemu souboru HTML nßpov∞dy upravte dle pot°eby).

 

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

ááááááá

Help.ShowHelp(Me, "c:\Soubor1.chm")

 

End Sub

 

  1. Ulo₧te a spus¥te projekt. Po aktivaci tlaΦφtka by se m∞la objevit ·vodnφ nabφdka vaÜeho souboru HTML nßpov∞dy.

 

Jestli₧e chcete zobrazit nßpov∞du s explicitn∞ aktivovanou zßlo₧kou Index, obm∞≥te k≤d takto:

 

Help.ShowHelpIndex(Me, "c:\Soubor1.chm")

á

 

Nßpov∞da a VB .NET

Projekt 2: Zobrazenφ HTML nßpov∞dy pomocφ prvku HelpProvider

Zobrazenφ ·vodnφ nabφdky HTML nßpov∞dy

 

V tomto p°φklad∞ si ukß₧eme, jak za pou₧itφ komponenty HelpProvider zobrazit hlavnφ nabφdku souboru s HTML nßpov∞dou. Ud∞lejte nßsledovnφ:

 

  1. Umφst∞te na formulß° instanci prvku HelpProvider. Proto₧e jde o komponentu, kterß je za b∞hu programu äneviditelnßô, umφstφ se automaticky do spodnφ Φßsti obrazovky projektu.

 

  1. Nastavte vlastnost HelpNamespace prvku HelpProvider tak, aby obsahovala cestu k vaÜemu souboru HTML nßpov∞dy (obr. 3).

 

 

Obr. 3 û Nastavenφ vlastnosti HelpNamespace prvku HelpProvider

 

  1. Nastavte nßsledujφcφ vlastnosti formulß°e na znßzorn∞nΘ hodnoty:

         HelpButton = True

         MaximizeBox = False

         MinimizeBox = False

 

  1. P°idejte na formulß° dalÜφ tlaΦφtko (Button2) a jeho vlastnosti nastavte takto:

         ShowHelp on HelpProvider1 = True

         HelpNavigator on HelpProvider1 = TableOfContents

 

  1. Te∩ spus¥te projektovou aplikaci a klepn∞te na tlaΦφtko s otaznφkem v pravΘ Φßsti titulkovΘho pruhu okna. VÜimn∞te si, ₧e se standardnφ ikona kurzoru myÜi zm∞nila na ikonu s mal²m otaznφkem. Nynφ klepn∞te na tlaΦφtko s nßzvem Button2. TΘm∞° okam₧it∞ by se m∞la zobrazit ·vodnφ nabφdka vaÜeho souboru s HTML nßpov∞dou.

 

 

ááNßpov∞da a VB .NET

Projekt 3: Zobrazenφ kontextovΘ HTML nßpov∞dy pomocφ prvku HelpProvider

Kontextovß nßpov∞da poprvΘ

 

V dalÜφm p°φklad∞ probßdßme mo₧nosti implementace skuteΦnΘ kontextovΘ nßpov∞dy do aplikace. Op∞t nßm bude asistovat komponenta HelpProvider. Postupujte takto:

 

  1. P°idejte na formulß° t°etφ tlaΦφtko (Button3) a nastavte jeho vlastnost ShowHelp on HelpProvider1 na True. Dßle vypl≥te i polφΦko p°i vlastnosti HelpString on HelpProvider1 textem, kter² se bude pozd∞ji zobrazovat jako kontextovß nßpov∞da.

 

  1. Spus¥te projekt, klepn∞te na tlaΦφtko s otaznφkem v titulkovΘm pruhu a poslΘze klikn∞te na tlaΦφtko s nßzvem äButton3ô. V²sledek m∙₧ete pozorovat na obr. 4.

 

 

Obr. 4 û Proces kontextovΘ nßpov∞dy ve VB .NET

 

 

á Nßpov∞da a VB .NET

Projekt 4: Zobrazenφ kontextovΘ HTML nßpov∞dy pomocφ prvku HelpProvider

Kontextovß nßpov∞da podruhΘ

 

Mo₧nß budete n∞kdy chtφt, aby byl popis pro urΦit² prvek pon∞kud rozsßhlejÜφ, aby poskytoval u₧ivateli daleko vφc informacφ ne₧ pouh²ch pßr v∞t. V tΘto chvφli rozhodn∞ s v²hodou vyu₧ijete dalÜφ implementaΦnφ techniku kontextovΘ nßpov∞dy. Prost°ednictvφm tΘto techniky se zobrazφ konkrΘtnφ strßnka systΘmu nßpov∞dy s po₧adovan²mi informacemi.

 

VÜechny nevyhnutnΘ soubory pro nßsledujφcφ cviΦenφ si m∙₧ete zkopφrovat zde.

 

Postupujte podle t∞chto instrukcφ:

 

  1. Uzav°ete p°edchozφ projekt VB a vytvo°te dalÜφ, zcela nov² projekt, kter² pojmenujte. áá

 

  1. Na formulß° umφst∞te instanci tlaΦφtka (Button1) a prvku HelpProvider (HelpProvider1).

 

  1. Upravte vlastnosti formulß°e tak, aby bylo v titulkovΘm pruhu viditelnΘ tlaΦφtko s otaznφkem pro kontextovou nßpov∞du.

 

  1. Vlastnost HelpNamespace prvku HelpProvider1 nastavte tak, aby ukazovala na cestu k doprovodnΘmu souboru s HTML nßpov∞dou (Projekt4.CHM).á

 

  1. Klepn∞te na tlaΦφtko Button1 a nastavte na True vlastnost ShowHelp on HelpProvider1.

 

  1. PokraΦujte upravenφm vlastnosti HelpKeyword on HelpProvider1 tlaΦφtka Button1. Do p°φsluÜnΘho textovΘho pole zadejte nßzev dokumentu .HTM, kter² se mß zobrazit v podob∞ kontextovΘ nßpov∞dy. V naÜem p°φpad∞ zde zapiÜte textov² °et∞zec äStrana2.htmô (bez uvozovek). Dßle nastavte vlastnost HelpNavigator on HelpProvider1 na hodnotu Topic. Tφm zabezpeΦφte, ₧e po klepnutφ na tlaΦφtko se zobrazφ obsah tΘmatu, kterΘ je ulo₧eno v souboru Strana2.HTM.

 

  1. Spus¥te projekt, klepn∞te na tlaΦφtko pro kontextovou nßpov∞du v titulkovΘm pruhu okna a poslΘze klikn∞te na tlaΦφtko. Na obrazovce by se m∞lo zobrazit p°φsluÜnΘ tΘma HTML nßpov∞dy. áá

 

 

á Nßpov∞da a VB .NET

Projekt 5: Zobrazenφ nßpov∞dy typu WinHelp 4.0

WinHelp 4.0 a VB .NET

 

Pokud jste d°φve ve znaΦnΘ mφ°e pou₧φvali soubory s nßpov∞dou typu WinHelp 4.0 a cht∞li byste p°edejφt situaci kompletnφho upgradu nßpov∞dnφho systΘmu, VB .NET mß pro vßs °eÜenφ. I nadßle m∙₧ete pou₧φvat vaÜe soubory s nßpov∞dou, ovÜem na jejich äzavolßnφô budete pot°ebovat API funkci WinHelp. Tato je vÜak z d∙vodu zp∞tnΘ kompatibility stßle k dispozici, tak₧e vßm nic nebrßnφ ji pou₧φt. V nßsledujφcφch krocφch si ukß₧eme, jak p°ipravit vaÜi .NET aplikaci na zobrazenφ standardnφ nßpov∞dy.

 

  1. Vytvo°te nov² projekt, do kterΘho p°idejte jeden standardnφ modul.
  2. Do modulu zkopφrujte pot°ebnΘ deklarace:

 

ááá Public Const HELP_CONTENTS = &H3&

 

ááá Public Declare Function WinHelp Lib _

ááá "user32" Alias "WinHelpA" ( _

ááá ByVal hwnd As Integer, _

ááá ByVal lpHelpFile As String, _

ááá ByVal wCommand As Integer, _

ááá ByVal dwData As Integer _

ááá ) As Integer

 

P°i zßpisu API funkce WinHelp m∞jte na pam∞ti, ₧e VB .NET pou₧φvß pro interpretaci dlouhΘho celΘho Φφsla (d°φve Long) datov² typ Integer. Proto je nutnΘ i v deklaraci funkce nahradit d°φv∞jÜφ datov² typ Long odpovφdajφcφm souΦasn²m datov²m typem Integer.

 

  1. Na formulß° p°idejte tlaΦφtko a do obsluhy udßlosti Click vepiÜte tento °ßdek k≤du (cestu k vaÜemu souboru nßpov∞dy upravte, jak je libo).

 

Call WinHelp(Me.Handle.ToInt32, "c:\obsah.hlp", HELP_CONTENTS, 0)

 

  1. Spus¥te projekt, stiskn∞te tlaΦφtko a okno s nßpov∞dou se zßhy objevφ na obrazovce.

 

áJßn Hanßk á