IntegrovanΘ prost°edφ rubriky Visual Basic |
Autor: Jßn Hanßk |
|||||||
|
TΘma m∞sφce |
|||||||
Inteligentnφ znaΦky
(Smart Tags) |
||||||||
╚asovß nßroΦnost (min): 125 |
ZaΦßteΦnφk |
PokroΦil² |
Profesionßl |
|||||
|
|
|
||||||
|
Pou₧it² operaΦnφ systΘm : Hlavnφ v²vojov²
nßstroj : DalÜφ v²vojov² software : Jin² software : |
Windows 2000 SP3 Visual Basic 6.0 SP
5 Microsoft Office XP Smart Tags SDK v.1.1 |
||||||
|
Vß₧enφ Φtenß°i,
vßnoΦnφ vydßnφ sekce TΘma m∞sφce bude vskutku jedineΦnΘ, proto₧e se budeme v∞novat oblasti, kterß je pro mnoho programßtor∙ velkou neznßmou, a sice v²vojem vlastnφch inteligentnφch znaΦek pro kancelß°skΘ aplikace z balφku Office XP. Poznßte funkΦnφ jßdro, kterΘ pohßnφ technologii inteligentnφch znaΦek a p°ipravφte si svou vlastnφ dynamicky linkovanou knihovnu (ActiveX DLL) s k≤dem vaÜφ inteligentnφ znaΦky. P°eji vßm p°φjemnΘ poΦtenφ.
Obsah |
Inteligentnφ znaΦky na prvnφ
pohled
Inteligentnφ znaΦky p°edstavujφ modernφ technologii, kterß se poprvΘ objevila v softwarovΘm balφku kancelß°sk²ch aplikacφ Office XP od spoleΦnosti Microsoft. P∙vodn∞ se inteligentnφ znaΦky jmenujφ Smart Tags, ovÜem my budeme pracovat s ji₧ celkem v₧it²m Φesk²m ekvivalentem. Pokud jste tedy n∞kdy m∞li tu Φest pracovat s (prozatφm) poslednφ verzφ balφku Office, pravd∞podobn∞ jste se ji₧ s inteligentnφmi znaΦkami setkali. Pokud ne, vydejte se s nßmi na krßtkou seznamovacφ cestu, v rßmci kterΘ uvidφte, proΦ jsou inteligentnφ znaΦky tak d∙le₧itou a rovn∞₧ vzruÜujφcφ technologiφ.
Hlavnφm krokem, kter² vedl v²vojß°e z Redmondu k vytvo°enφ a za°azenφ inteligentnφch znaΦek do populßrnφho softwaru bylo, jak jinak, usnadn∞nφ prßce finßlnφch u₧ivatel∙ s mno₧stvem r∙zn²ch typ∙ zpracovßvan²ch dat. Vezm∞me si t°eba pr∙m∞rnΘho u₧ivatele poΦφtaΦe, jen₧ ovlßdß na p°ijatelnΘ ·rovni prßci s operaΦnφm systΘmem, textov²m procesorem a tabulkov²m kalkulßtorem. Tento u₧ivatel nejspφÜ Φasto pracuje s textov²mi dokumenty a tabulkov²mi seÜity. Je takΘ vφce ne₧ pravd∞podobnΘ, ₧e mnoho ·daj∙, kterΘ se nachßzejφ v u₧ivatelov²ch tabulkßch, mß jistou souvislost s textov²mi daty, kterΘ u₧ivatel pou₧φvß p°i psanφ dokument∙ v textovΘm procesoru. A dokonce je mo₧nΘ, ₧e n∞kterΘ typy dat z textov²ch dokument∙ a tabulek mohou slou₧it pro pot°eby ΦasovΘho managementu v aplikaci Outlook. Je-li tomu tak, proΦpak neusnadnφme u₧ivateli jeho prßci a nezabudujeme do aplikacφ technologii, kterß bude vstupnφ data analyzovat a v p°φpad∞ pot°eby je kombinovat, navzßjem formßtovat, nebo provßd∞t nad t∞mito daty jinΘ po₧adovanΘ operace? Ano, takto patrn∞ vypadala poΦßteΦnφ myÜlenka Φlen∙ v²vojovΘho t²mu pro stavbu inteligentnφch znaΦek.
Jestli₧e u₧ivatel zapφÜe do textovΘho dokumentu jmΘno svΘho p°φtele nebo obchodnφho partnera, aplikace by m∞la b²t natolik inteligentnφ, aby zadan² textov² °et∞zec poznala a nabφdla u₧ivateli n∞kolik akcφ, kterΘ lze s p°edm∞tn²m °et∞zcem uskuteΦnit. V tomto p°φpad∞ by mohlo jφt o zaslßnφ elektronickΘ zprßvy danΘ osob∞, nebo o p°idßnφ jmΘna osoby do elektronickΘho diß°e u₧ivatele.
|
Z pohledu u₧ivatele je nejpodstatn∞jÜφ zejmΘna fakt, ₧e ob∞
operace lze realizovat pouh²m klepnutφm myÜφ a nenφ nutnΘ manußln∞ kopφrovat
data, spouÜt∞t dalÜφ aplikace a data op∞tovn∞ vklßdat. |
Technologie, kterou p°inßÜejφ inteligentnφ znaΦky, je vyu₧itelnß v daleko ÜirÜφm aplikaΦnφm spektru. Inteligentnφ znaΦky se osv∞dΦujφ nap°φklad p°i kopφrovßnφ Φßsti textu z jednoho dokumentu do jinΘho. Po vlo₧enφ textu se objevφ inteligentnφ znaΦka, kterß ukazuje, ₧e je mo₧nΘ s vlo₧en² textem n∞co provΘst, t°eba zladit jeho formßtovßnφ s formßtovßnφ cφlovΘho dokumentu, do n∞ho₧ byl text vlo₧en (obr. 1).
Obr. 1 û Inteligentnφ znaΦka v praxi
AutomatickΘ opravy textu jsou rovn∞₧ reprezentovßny prost°ednictvφm podporovanΘ inteligentnφ znaΦky. Ihned ze zaΦßtku je ovÜem dobrΘ mφt na pam∞ti, ₧e s inteligentnφmi znaΦkami se m∙₧ete st°etnou jenom v Office XP (2002), p°edchozφ verze touto technologiφ nedisponujφ.
|
AΦkoliv je vyu₧itφ inteligentnφch znaΦek nejintenzivn∞jÜφ prßv∞
v aplikacφch Office XP (Word XP, Excel XP a Outlook XP), ve skuteΦnosti
se s inteligentnφmi znaΦkami m∙₧ete setkat takΘ v HTML dokumentech. |
Ka₧dß aplikace z balφku Office XP (2002) obsahuje jistou sadu zabudovan²ch inteligentnφch znaΦek, kterΘ se automaticky aktivujφ v p°φpad∞ pot°eby (o technickΘm pohledu na zp∙sob prßce inteligentnφch znaΦek budeme mluvit za chvφli). Krom∞ inteligentnφch znaΦek, kterΘ jsou implicitn∞ vestav∞nΘ do aplikacφ Office XP, existujφ takΘ dalÜφ inteligentnφ znaΦky, a to bu∩ p°φmo od spoleΦnosti Microsoft, nebo od jin²ch softwarov²ch firem. DalÜφ mo₧nostφ, jak zφskat novΘ inteligentnφ znaΦky, je jejich samostatnΘ naprogramovßnφ a zaregistrovßnφ v operaΦnφm systΘmu. A prßv∞ tuto alternativu si p°edvedeme podrobn∞ji na dalÜφch °ßdcφch tohoto dokumentu.
Spoluprßce inteligentnφch znaΦek a aplikacφ Office XP
VÜechny inteligentnφ znaΦky, se kter²mi se m∙₧ete setkat v aplikacφch Word XP a Excel XP, musejφ b²t p°ed sv²m pou₧itφm platn∞ zaregistrovßny v operaΦnφm systΘmu. Tato registrace je mimo°ßdn∞ d∙le₧itß, proto₧e jenom registrovanΘ inteligentnφ znaΦky jsou schopnΘ ob∞ aplikace rozeznat a pracovat s nimi. Popoje∩me vÜak o kousek dßl a pov∞zme si, jak s inteligentnφmi znaΦkami pracuje nap°φklad aplikace Word XP. Po ka₧dΘm spuÜt∞nφ aplikace Word XP je realizovßno zjiÜt∞nφ, jakΘ typy inteligentnφch znaΦek jsou zaregistrovanΘ v operaΦnφm systΘmu. PotΘ aplikace sestavφ seznam nalezen²ch inteligentnφch znaΦek a provede jejich naΦtenφ.
|
ZjiÜt∞nφ zaregistrovan²ch inteligentnφch znaΦek a jejich implementace
do aplikace trvß pouze n∞kolik sekund. |
Jakmile u₧ivatel zapφÜe do dokumentu textov² °et∞zec, technologie inteligentnφch znaΦek podrobφ °et∞zec anal²ze a zjistφ, zdali se jednß o äcitliv²ô °et∞zec. Pokud je °et∞zec citliv², znamenß to, ₧e byl rozpoznßn jako typ dat, nad kter²m operuje jistß inteligentnφ znaΦka. Citliv² textov² °et∞zec je opat°en teΦkovan²m podtr₧enφm fialovΘ barvy. Kdy₧ u₧ivatel najede kurzorem myÜi na citliv² textov² °et∞zec, objevφ se tlaΦφtko se Üipkou. Ukß₧e-li u₧ivatel na objevivÜφ se tlaΦφtko, bude zobrazena kontextovß nabφdka se seznamem akcφ, kterΘ lze nad vstupnφm typem dat (tedy nad textov²m °et∞zcem) provΘst. Po zvolenφ po₧adovanΘ akce je tato provedena, p°iΦem₧ v²sledek akce je rozliΦn² a zßvisφ od typu inteligentnφ znaΦky. N∞kterΘ inteligentnφ znaΦky mohou m∞nit formßtovßnφ textovΘho °et∞zce, jinΘ zase spouÜt∞t externφ aplikace Φi internetovΘ prohlφ₧eΦe.
Obr. 2 û Spoluprßce
inteligentnφch znaΦek a aplikace Word XP
áArchitektura inteligentnφch
znaΦek
Technologie inteligentnφch znaΦek je postavena na vlastnφm aplikaΦnφm programov²m rozhranφm (API), kterΘ vyhovuje specifikacφm standardu COM (Component Object Model). API inteligentnφch znaΦek je ulo₧eno v typovΘ knihovn∞ s nßzvem Microsoft Smart Tags 1.0 (tato knihovna je dodßvßna spoleΦn∞ s Office XP). AplikaΦnφ programovΘ rozhranφ obsahuje dv∞ d∙le₧itß rozhranφ, kterß budeme p°i v²voji vlastnφ inteligentnφ znaΦky rozhodn∞ pot°ebovat. Jde o rozhranφ ISmartTagRecognizer a ISmartTagAction. JeÜt∞ p°edtφm, ne₧ se na ob∞ rozhranφ podφvßme blφ₧e, si musφme oz°ejmit dva pojmy, jimi₧ jsou identifikßtor (recognizer) a akce (action). Znalost obou termφn∙ je nezbytn∞ nutnß pro pochopenφ zp∙sobu prßce inteligentnφch znaΦek.
Identifikßtor (recognizer) p°edstavuje programov² k≤d, pomocφ n∞ho₧ cφlovß aplikace rozeznß citlivß data. Citlivß data jsou data, kterß mohou b²t pomocφ danΘ inteligentnφ znaΦky podrobena jist²m programov²m operacφm. Ka₧dß inteligentnφ znaΦka obsahuje uzav°enou mno₧inu dat, kterou dokß₧e identifikovat. Identifikace dat je realizovßna prßv∞ pomocφ identifikßtoru. Identifikßtor sleduje, s jak²mi daty u₧ivatel pracuje. V p°φpad∞ aplikace Word XP jsou t∞mito daty textovΘ °et∞zce. Ka₧d² zadan² textov² °et∞zec je prozkoumßn prost°ednictvφm identifikßtor∙ vÜech podporovan²ch inteligentnφch znaΦek. Pokud zadan² textov² °et∞zec vyhovuje specifikacφm identifikßtoru jednΘ z inteligentnφch znaΦek, je tento textov² °et∞zec rozeznßn a z pohledu API oznaΦen jako citliv². SkuteΦnost, ₧e mßme do Φin∞nφ s citliv²m textov²m °et∞zcem, je vizußln∞ umocn∞na teΦkovan²m podtr₧enφm tohoto °et∞zce. V²slednφm produktem prßce identifikßtoru je zjiÜt∞nφ citliv²ch dat. Jsou-li k dispozici citlivß data, je mo₧nΘ nad t∞mito daty uskuteΦnit jistΘ programovΘ operace, kter²m se v prost°edφ API inteligentnφch znaΦek °φkß akce (actions). Akce p°edstavujφ operace, kterΘ lze s citliv²mi daty provΘst. Vizußln∞ jsou vÜechny akce seskupeny do jednotnΘ kontextovΘ nabφdky (obr. 3).
Obr. 3 û Akce inteligentnφ
znaΦky
Pokud u₧ivatel klepne na n∞kterou z polo₧ek kontextovΘ nabφdky, spustφ se p°φsluÜnß akce. Jak si m∙₧ete vÜimnout, jedna inteligentnφ znaΦka m∙₧e disponovat i n∞kolika akcemi, p°iΦem₧ poΦet podporovan²ch akcφ nenφ omezen a je jenom na programßtorovi, kolik akcφ do vlastnφ inteligentnφ znaΦky implementuje.
Proces prßce identifikßtoru a akcφ inteligentnφch znaΦek m∙₧ete vid∞t na obr. 4.
Obr. 4 û Proces prßce
identifikßtoru a akcφ inteligentnφch znaΦek
Ob∞ma vysv∞tlen²m termφn∙m odpovφdajφ ji₧ zmφn∞nß rozhranφ: K≤d pro implementaci identifikßtoru (recognizer) obsahuje rozhranφ ISmartTagRecognizer, zatφmco pro akce (actions) inteligentnφch znaΦek je k dispozici rozhranφ ISmartTagAction. Budete-li chtφt vytvo°it vlastnφ inteligentnφ znaΦku, budete muset implementovat n∞kolik vlastnostφ a metod obou rozhranφ.
|
Visual Basic 6.0 nenφ jedin²m prost°edφm, ve kterΘm lze vytvß°et
dynamicky linkovanou knihovnu (ActiveX DLL) s k≤dem inteligentnφ znaΦky.
Za tφmto ·Φelem m∙₧ete pou₧φt takΘ dalÜφ programovacφ jazyky, kterΘ jsou
otev°eny specifikaci COM, nap°φklad Visual C++. |
Vytvß°φme inteligentnφ znaΦku
KoneΦn∞ se dostßvßme k samotnΘmu procesu v²voje inteligentnφ znaΦky. Vytvß°enφ inteligentnφ znaΦky bude demonstrovat postup, jen₧ se nachßzφ na nßsledujφcφch °ßdcφch. NaÜe inteligentnφ znaΦka bude vyhledßvat v textovΘm dokumentu aplikace Word XP specifickΘ poΦφtaΦovΘ v²razy, jako nap°. CPU, AGP a dalÜφ. Pokud bude v dokumentu nalezen jeden z podporovan²ch v²raz∙, bude zobrazeno akΦnφ tlaΦφtko s kontextußlnφ nabφdkou. V nabφdce bude umφst∞na jedna akce, resp. polo₧ka, po aktivaci kterΘ bude spuÜt∞n internetov² prohlφ₧eΦ s adresou elektronickΘ poΦφtaΦovΘ encyklopedie (v naÜem p°φpad∞ vymyÜlenΘ). Nu₧e, pus¥me se do prßce:
Nynφ zaΦneme s implementacφ po₧adovan²ch vlastnostφ a metod rozhranφ ISmartTagRecognizer. VÜechen k≤d budete umφs¥ovat p°φmo do t°φdy CIdentifikßtor. á
Implementace rozhranφ ISmartTagRecognizer
Implements ISmartTagRecognizer
P°φkaz Implements °φkß, ₧e budeme chtφt implementovat vlastnosti a metody rozhranφ ISmartTagRecognizer.
Nßzev vlastnosti |
Charakteristika |
ProgID |
JednoznaΦn²
programov² identifikßtor t°φdy, kterß implementuje rozhranφ ISmartTagRecognizer. Tento
identifikßtor je jazykov∞ nezßvisl² a nabφzφ zp∙sob, jak se odkazovat na DLL
s k≤dem t°φdy prost°ednictvφm objektov²ch model∙ cφlov²ch aplikacφ. |
Name |
JmΘno pro
identifikßtor. Toto jmΘno se zobrazuje na zßlo₧ce Smart Tags
dialogovΘho okna AutoCorrect Options v aplikacφch Word XP
a Excel XP. (Nabφdka AutoCorrect Options je dostupnß
z nabφdky Tools). |
Desc |
StruΦnß
charakteristika druhu Φinnosti identifikßtoru inteligentnφ znaΦky. |
Tab. 1 û Charakteristika
vlastnostφ ProgID, Name s Desc
|
Vlastnosti ProgID, Name a Desc jsou urΦeny jenom
pro Φtenφ (read-only). |
Private Property Get ISmartTagRecognizer_ProgId() As String
ISmartTagRecognizer_ProgId = "MojeZnaΦka.Identifikßtor"
End Property
Private Property Get ISmartTagRecognizer_Name _
(ByVal LocaleID As Long) As String
ISmartTagRecognizer_Name = "Moje inteligentnφ znaΦka"
End Property
Private Property Get ISmartTagRecognizer_Desc _
(ByVal LocaleID As Long) As String
ISmartTagRecognizer_Desc = "Jednoduch² p°φklad
pou₧itφ" _
& "inteligentnφ znaΦky."
End Property
Nßzev vlastnosti |
Charakteristika |
SmartTagCount |
Vlastnost urΦuje
poΦet inteligentnφch znaΦek, kterΘ je identifikßtor schopen rozeznat. |
SmartTagName |
JedineΦnΘ pojmenovanφ
pro typy inteligentnφch znaΦek, kterΘ podporuje identifikßtor. |
SmartTagDownloadURL |
UrΦenφ adresy, ze
kterΘ lze stßhnout novΘ akce pro danou inteligentnφ znaΦku. |
Tab. 2 û Charakteristika
vlastnostφ SmartTagCount, SmartTagName s SmartTagDownloadURL
Private Property Get ISmartTagRecognizer_SmartTagCount() As Long
ISmartTagRecognizer_SmartTagCount = 1
End Property
Private Property Get ISmartTagRecognizer_SmartTagName _
(ByVal SmartTagID As Long) As String
If
SmartTagID = 1 Then
ááá
ISmartTagRecognizer_SmartTagName = _
ááá "znaΦka_01#MojeZnaΦka"
End If
End Property
Private Property Get ISmartTagRecognizer_SmartTagDownloadURL _
(ByVal SmartTagID As Long) As String
ISmartTagRecognizer_SmartTagDownloadURL = ""
End Property
á
NßÜ identifikßtor bude pracovat pouze s jednou inteligentnφ znaΦkou (SmartTagCount = 1), nßzev kterΘ je MojeZnaΦka. Pln∞ kvalifikovan² nßzev inteligentnφ znaΦky je slo₧en ze dvou celk∙: jmΘna jmennΘho prostoru inteligentnφ znaΦky a samotnΘho nßzvu inteligentnφ znaΦky. V naÜem p°φpad∞ je jmenn² prostor determinovßn textov²m °et∞zcem znaΦka_01. Za jmenn²m prostorem nßsleduje symbol m°φ₧ky (#), za kter²m je uvedeno pojmenovßnφ konkrΘtnφ inteligentnφ znaΦky (MojeZnaΦka). Kompletnφ nßzev inteligentnφ znaΦky je proto "znaΦka_01#MojeZnaΦka". Jeliko₧ nep°edpoklßdßme, ₧e bude existovat webovß strßnka, z nφ₧ bude mo₧nΘ zφskat novΘ informace pro inteligentnφ znaΦku, vlastnost SmartTagDownloadURL je naprogramovßna tak, aby vracela prßzdn² °et∞zec.
V dalÜφm kroku se zam∞°φme na sestavenφ seznamu textov²ch °et∞zc∙, kterΘ bude identifikßtor identifikovat jako citlivß data. Tento ·kol splnφme tak, ₧e vytvo°φme pole textov²ch °et∞zc∙, kterΘ poslΘze naplnφme po₧adovan²mi textov²mi °et∞zci. Bude-li identifikßtorem rozeznßn jak²koliv z t∞chto °et∞zc∙ v textovΘm dokumentu, bude opat°en teΦkovan²m podtr₧enφm a akΦnφm tlaΦφtkem pro zobrazenφ podporovan²ch akcφ inteligentnφ znaΦky.
Dim
R∞t∞zce(5) As String
Dim PoΦetR∞t∞zc∙ As Integer
Private Sub Class_Initialize()
ááá R∞t∞zce(1) =
"pc"
ááá R∞t∞zce(2) =
"cpu"
ááá R∞t∞zce(3) =
"gpu"
ááá R∞t∞zce(4) =
"agp"
ááá R∞t∞zce(5) =
"ht"
ááá PoΦetR∞t∞zc∙ = 5
End Sub
|
VÜechny textovΘ °et∞zce zapisujte pou₧itφm mal²ch pφsmen abecedy. Tato
forma psanφ textov²ch °et∞zc∙ je v tomto p°φpad∞ d∙le₧itß proto, aby
bylo mo₧nΘ provßd∞t vyhledßvßnφ textov²ch °et∞zc∙ s d∙razem na
rozliÜovßnφ mal²ch a velk²ch pφsmen abecedy. Algoritmus pro vyhledßvßnφ
textov²ch °et∞zc∙ se nachßzφ v nßsledujφcφm fragmentu zdrojovΘho k≤du. |
Public Sub ISmartTagRecognizer_Recognize(ByVal
Text As String, _
ByVal
DataType As SmartTagLib.IF_TYPE, ByVal LocaleID As Long,
_
ByVal
RecognizerSite As
SmartTagLib.ISmartTagRecognizerSite)
ááá Dim x As Integer
ááá Dim Index As Integer,
Velikost╪et∞zce As Integer
ááá Dim Pb As
SmartTagLib.ISmartTagProperties
ááá Text = LCase(Text)
ááá For x = 1 To
PoΦetR∞t∞zc∙
ááááááá Index =
InStr(Text, R∞t∞zce(x))
ááááááá Velikost╪et∞zce =
Len(R∞t∞zce(x))
ááááááá While (Index > 0)
ááááááááááá Set Pb = RecognizerSite.GetNewPropertyBag
ááááááááááá
RecognizerSite.CommitSmartTag _
ááááááááááá
"znaΦka_01#MojeZnaΦka", Index, Velikost╪et∞zce, Pb
ááááááááááá Index = InStr(Index
+ Velikost╪et∞zce, Text, R∞t∞zce(x))
ááááááá Wend
ááá Next x
End Sub
Implementace Φlen∙ rozhranφ ISmartTagAction
Abychom
mohli inteligentnφ znaΦce p°i°adit takΘ odpovφdajφcφ akce, musφme rovn∞₧
implementovat Φleny rozhranφ ISmartTagAction. Implementace t∞chto Φlen∙
se bude odehrßvat v dalÜφ t°φd∞, a proto do stßvajφcφho projektu p°idejte
novou t°φdu a pojmenujte ji CAkce. Dßle pokraΦujte
nßsledovn∞:
Implements ISmartTagAction
Nßzev vlastnosti |
Charakteristika |
ProgID |
JednoznaΦn²
identifikßtor t°φdy, kterß implementuje rozhranφ ISmartTagAction. |
Name |
StruΦnß
charakteristika konkrΘtnφ implementace rozhranφ ISmartTagAction. |
Desc |
DelÜφ a podrobn∞jÜφ
popis prßce implementovanΘho rozhranφ ISmartTagAction. |
Tab. 3 û Charakteristika
vlastnostφ ProgID, Name a Desc rozhranφ ISmartTagAction
Private Property Get ISmartTagAction_ProgId() As String
ááá ISmartTagAction_ProgId
= "MojeZnaΦka.Akce"
End Property
Private Property Get ISmartTagAction_Name _
(ByVal LocaleID As Long) As String
á ISmartTagAction_Name =
"Moje inteligentnφ znaΦka"
End Property
Private Property Get ISmartTagAction_Desc _
(ByVal LocaleID As Long) As String
á ISmartTagAction_Desc =
"Provßdφ akce pro inteligentnφ znaΦku."
End Property
á
Nßzev vlastnosti |
Charakteristika |
SmartTagCount |
Determinuje poΦet
typ∙ inteligentnφch znaΦek, kterΘ m∙₧e rozpoznat identifikßtor. V naÜφ
ukßzce pracujeme pouze s jednφm typem inteligentnφ znaΦky, a proto bude
tato vlastnost vracet celoΦφselnou hodnotu 1. |
SmartTagName |
Jde o pojmenovßnφ
podporovanΘho typu inteligentnφ znaΦky v ji₧ znßmΘm formßtu, jen₧ je
slo₧en z jmennΘho prostoru, znaku m°φ₧ky (#) a samotnΘho nßzvu typu znaΦky. áá |
SmartTagCaption |
Textov² °et∞zec,
jen₧ se bude objevovat v kontextovΘ nabφdce akcφ inteligentnφ znaΦky. |
Tab. 4 û Popis vlastnostφ SmartTagCount,
SmartTagName a SmartTagCaption
Private Property Get ISmartTagAction_SmartTagCount() As Long
áá ISmartTagAction_SmartTagCount
= 1
End Property
Private Property Get ISmartTagAction_SmartTagName _
(ByVal SmartTagID As Long) As String
ááá If (SmartTagID = 1) Then
ááá
ISmartTagAction_SmartTagName = "znaΦka_01#MojeZnaΦka"
á End
If
End Property
Private Property Get ISmartTagAction_SmartTagCaption _
(ByVal SmartTagID As Long, ByVal
LocaleID As Long) As
String
á
ISmartTagAction_SmartTagCaption = "MojeZnaΦka"
End Property
Nßzev vlastnosti |
Charakteristika |
VerbCount |
╪φkß, kolik akcφ
podporuje implementovan² typ inteligentnφ znaΦky. |
VerbID |
Vlastnost vracφ
jedineΦn² identifikßtor (ID) cφlovΘ akce inteligentnφ znaΦky. |
VerbCaptionFromID |
Specifikuje
u₧ivatelsky p°φv∞tiv² textov² °et∞zec, kter² popisuje nßzev akce a jen₧ se
objevφ v kontextovΘ nabφdce s dostupn²mi akcemi. |
VerbNameFromID |
Textov²
identifikßtor akce, kter² je pou₧φvßn intern∞ cφlovou aplikacφ. |
Tab. 5 û Bli₧Üφ pohled na vlastnosti VerbCount, VerbID, VerbCaptionFromID a
VerbNameFromID
Private Property Get ISmartTagAction_VerbCount _
(ByVal SmartTagName As String) As Long
ááá If (SmartTagName = "znaΦka_01#MojeZnaΦka") Then
ááá
ISmartTagAction_VerbCount = 1
á End
If
End Property
Private Property Get ISmartTagAction_VerbID _
(ByVal SmartTagName As String, ByVal
VerbIndex As Long) As
Long
á ISmartTagAction_VerbID =
VerbIndex
End Property
Private Property Get ISmartTagAction_VerbCaptionFromID _
(ByVal VerbID As Long, ByVal
ApplicationName As String, _
ByVal
LocaleID As Long) As
String
á If
(VerbID = 1) Then
ááá
ISmartTagAction_VerbCaptionFromID = "Otev°φt internetov²
prohlφ₧eΦ"
á End
If
End Property
Private Property Get ISmartTagAction_VerbNameFromID _
(ByVal VerbID As Long) As String
áá If (VerbID = 1) Then
ááááááá
ISmartTagAction_VerbNameFromID = "otevritProhlizec"
áá End If
End Property
Public Sub ISmartTagAction_InvokeVerb _
(ByVal VerbID As Long, ByVal
ApplicationName As String, _
ByVal
Target As Object, _
ByVal
Properties As SmartTagLib.ISmartTagProperties, _
ByVal Text As String, ByVal XML As String)
ááá Dim Prohlφ₧eΦ
ááá If (VerbID = 1) Then
ááááááá Set Prohlφ₧eΦ =
CreateObject("InternetExplorer.Application")
ááááááá
Prohlφ₧eΦ.Navigate2 ("www.pocitacovaencyklopedie.cz")
ááááááá Prohlφ₧eΦ.Visible
= True
ááá End If
End Sub
Kompilace k≤du inteligentnφ znaΦky
Kompilaci projektu s k≤dem inteligentnφ znaΦky uskuteΦnφte v²b∞rem p°φkazu Make MojeZnaΦka.dll z nabφdky File. Vydßte-li tento pokyn, bude projektu zkompilovßn, p°iΦem₧ v²sledkem kompilace bude knihovna ActiveX DLL s nßzvem MojeZnaΦka.dll. Visual Basic 6.0 vygeneruje takΘ jedineΦnΘ identifikßtory (CLSID) pro identifikßtor (recognizer) a akci (action) inteligentnφ znaΦky. Tyto identifikßtory jsou zapsßny do registru operaΦnφho systΘmu. Aby Visual Basic 6.0 generoval v₧dy stejnΘ identifikßtory pro nßmi vytvo°enou inteligentnφ znaΦku, ujist∞te se, ₧e pou₧φvßte volbu Project Compatibility. Vyberte nabφdku Project a klepn∞te na polo₧ku Project Properties. V dialogovΘm okn∞ oznaΦte zßlo₧ku Component a podφvejte se do rßmeΦku Version Compatibility. Nenφ-li nastavena volba Project Compatibility, nastavte ji. Tak docφlφte toho, ₧e Visual Basic 6.0 bude pro vytvo°enou inteligentnφ znaΦku generovat stßle stejnΘ CLSID identifikßtory (a to i tehdy, uskuteΦnφte-li v programovΘm k≤du projektu n∞jakΘ zm∞ny). Nakonec ulo₧te projekt a zav°ete integrovanΘ v²vojovΘ prost°edφ Visual Basicu.
Registrace inteligentnφ znaΦky v operaΦnφm systΘmu áá
P°edtφm, ne₧ se vrhneme na testovßnφ funkΦnosti naÜφ novΘ inteligentnφ znaΦky, musφme realizovat registraci znaΦky v operaΦnφm systΘmu. Proces registrace je slo₧en ze dvou parcißlnφch proces∙:
Registrace akce (action) inteligentnφ znaΦky
á
Registrace identifikßtoru (recognizer) inteligentnφ znaΦky
Testovßnφ inteligentnφ znaΦky
Ihned potΘ, co byla inteligentnφ znaΦka ·sp∞Ün∞ zaregistrovßna, m∙₧ete p°ikroΦit k testovacφ fßzi procesu. Spus¥te aplikaci Microsoft Word XP (2002), vyberte nabφdku Tools a klepn∞te na polo₧ku AutoCorrect Options. V dialogovΘm okn∞ vyberte zßlo₧ku Smart Tags (obr. 5).
Obr. 5 û DialogovΘ okno AutoCorrect
s aktivovanou zßlo₧kou Smart Tags
V seznamu Recognizers by se m∞la nachßzet naÜe inteligentnφ znaΦka (Moje inteligentnφ znaΦka). Pokud se v seznamu polo₧ka s nßzvem naÜφ znaΦky neobjevuje, pravd∞podobn∞ inteligentnφ znaΦka nebyla ·sp∞Ün∞ zaregistrovanß v operaΦnφm systΘmu. Je-li tomu tak, vra¥te se do Φßsti, je₧ pojednßvß o registraci inteligentnφ znaΦky. Pokud seznam obsahuje naÜφ inteligentnφ znaΦku, je vÜe v naprostΘm po°ßdku, a tedy m∙₧eme zaΦat s testovßnφm znaΦky. Zav°ete dialog AutoCorrect a napiÜte do dokumentu textov² °et∞zec äagpô (uvozovky m∙₧ete vynechat) a stiskn∞te mezernφk nebo klßvesu Enter. Textov² °et∞zec bude opat°en teΦkovan²m podtr₧enφm fialovΘ barvy, ovÜem je mo₧nΘ, ₧e toto formßtovßnφ neuvidφte, proto₧e Word XP textov² °et∞zec äagpô neznß, a proto jej bude formßtovat pomocφ ΦervenΘ vlnovky. Tak se stane, ₧e Φervenß vlnovky jednoduÜe äp°ekryjeô teΦkovanΘ podtr₧enφ. Jestli₧e najedete na citliv² textov² °et∞zec kurzorem myÜi, objevφ se akΦnφ tlaΦφtko (obr. 6).
Obr. 6 û Citliv² text a akΦnφ
tlaΦφtko, symbolizujφcφ p°φtomnost inteligentnφ znaΦky
AkΦnφ tlaΦφtko symbolizuje, ₧e text pod nφm byl rozeznßn identifikßtorem naÜφ inteligentnφ znaΦky. Naje∩te na toto tlaΦφtko myÜφ a klepn∞te na n∞j. Uvidφte kontextovou nabφdku s akcemi inteligentnφ znaΦky (v naÜem p°φpad∞ se objevφ pouze jedna akce s nßzvem Otev°φt internetov² prohlφ₧eΦ). Situaci znßzor≥uje obr. 7.
Obr. 7 û Inteligentnφ znaΦka
v akci
Pro spuÜt∞nφ internetovΘho prohlφ₧eΦe klepn∞te na p°φsluÜnou akci inteligentnφ znaΦky.
|
Prßv∞ jste doΦetli TΘma m∞sφce.á
Jestli₧e se chcete dozv∞d∞t vφce informacφ o programovßnφ ve Visual
Basicu .NET, nevßhejte a navÜtivte takΘ dalÜφ sekce rubriky Visual Basic. A
jakß₧e je dneÜnφ nabφdka? |
|
Porovnßvacφ operßtory Is a Like, p°i°azovacφ operßtory... |
||
Pou₧itφ sdφlen²ch datov²ch Φlen∙, vlastnostφ a metod
Vytvß°enφ
miniatur obrßzk∙ (thumbnails) |