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) |