Jak mogę ukrywać i wyświetlać formant w aplikacji HTA w sposób dynamiczny?
Skrypciarze odpowiadają na Wasze pytania
Witamy w rubryce TechNet, w której Skrypciarze z firmy Microsoft odpowiadają na częste pytania dotyczące używania skryptów w administracji systemu. Jeśli macie jakieś pytania z tej dziedziny, zachęcamy do wysłania e-maila na adres: scripter@microsoft.com. Nie możemy zagwarantować odpowiedzi na każde otrzymane pytanie, ale staramy się jak możemy. |
Jak mogę ukrywać i wyświetlać formant w aplikacji HTA w sposób dynamiczny?
Cześć, Skrypciarze! Jak mogę dynamicznie ukrywać i wyświetlać formant w aplikacji HTA?
-- R L-K
Cześć, R L-K. Prawdę mówiąc, piszący te słowa Skrypciarz jest dziś nieco rozkojarzony. W sumie rozkojarzony to jest zawsze, ale dzisiaj wyjątkowo. Dzisiaj czuje się, jakby siedział na beczce prochu zagrażającej całemu jego dotychczasowemu życiu!
Nie wspominaliśmy o tym wcześniej, ale piszący te słowa Skrypciarz ma syna, który już w przyszłym roku idzie na studia. Jak to zwykle w takim przypadku, przez ostatni rok otrzymywał on listy z różnych uczelni z całego świata, wszystkie zachęcające go do skorzystania z ich oferty. Były to m.in. Drexel University, Pepperdine, Linfield College, Old Dominion i cała masa innych. O niektórych być może nawet coś słyszał. Wszystko było w porządku aż do wczoraj, kiedy to otrzymał list z - uwaga – Uniwersytetu Cambridge w Cambridge w Anglii!!!
Interesująca uwaga. W roku 2009 Uniwersytet Cambridge będzie obchodził 800-lecie istnienia. Mimo że informacja ta jeszcze nie została potwierdzona, mamy powody twierdzić, że Skrypciarz Peter Constatnini – prominentny absolwent tego uniwersytetu – zostanie poproszony o wygłoszenie mowy na rozdaniu dyplomów. |
Co jest złego w Uniwersytecie Cambridge? Nic, może poza małym szczegółem: Uniwersytet Cambridge i Oxford są zagorzałymi rywalami. A to problem, ponieważ Skrypciarz Dean Tsaltas czeka na termin obrony pracy magisterskiej w Oxfordzie. Jeżeli syn piszącego te słowa Skrypciarza zacznie studiować w Cambridge, aż drżymy na samą myśl o tym.
Uwaga. Ktoś mógłby zapytać: Uniwersytet Oxford? A gdzie on jest i czy to w ogóle publiczna uczelnia? Ale takie pytanie mógłby zadać tylko pracownik działu Microsoft, który początkowo odrzucił podanie Deana o zwrot kosztów kształcenia, ponieważ nie uwierzył, że takie miejsce jak Oxford w ogóle istnieje. |
Możecie sobie chyba wyobrazić presję, pod jaką żyjemy. Atmosfera w siedzibie Skrypciarzy jest tak ciężka i napięta, że można by ją prawie kroić. (oczywiście gdybyśmy mieli noże, ale nam nie wolno jest ich mieć). Jednak poczucie obowiązku jest silniejsze i jako absolwent Uniwersytetu w Waszyngtonie, piszący te słowa Skrypciarz wie, że jak już się za coś zabierze, to należy to dokończyć bez względu na okoliczności. Dzięki takiemu podejściu wiemy dzisiaj, jak dynamicznie ukrywać i wyświetlać formant w aplikacji HTA:
<SCRIPT Language="VBScript">
Sub ToggleButton
If HereThere.style.visibility="hidden" Then
HereThere.style.visibility="visible"
Else
HereThere.style.visibility="hidden"
End If
End Sub
</SCRIPT>
<input type="button" value="Button" name="HereThere"><P>
<input type="button" value="Click to Hide/Show Button" onClick="ToggleButton">
Mamy tutaj malutką, bardzo prostą aplikację HTA. (Tak wiemy, w Oxfordzie czy Cambridge stworzyliby superskomplikowaną aplikację HTA. Pamiętajmy, że piszący te słowa Skrypciarz ukończył amerykański uniwersytet.) Główna część naszej aplikacji HTA zawiera dwa przyciski. Pierwszy (jasno oznaczony jako <formatting role='italic'>Button</formatting>) to formant, który będziemy ukrywać i wyświetlać; drugi (oznaczony <formatting role='italic'>Click to Hide/Show Button</formatting>) to przycisk, którego będziemy używać za każdym razem, gdy będziemy chcieli ukryć lub wyświetlić drugi przycisk. Znaczniki HTML dla obydwu przycisków wyglądają następująco:
<input type="button" value="Button" name="HereThere"><P>
<input type="button" value="Click to Hide/Show Button" onClick="ToggleButton">
A sama aplikacja HTA wygląda tak:
Uwaga. Czy mogę wykorzystać powyższą grafikę jako tapetę na pulpicie? Jasne, proszę bardzo. |
To by było na tyle, jeżeli chodzi o główną część aplikacji HTA. Jedyną brakującą częścią tej układanki jest podprocedura o nazwie ToogleButton. Za każdym razem, gdy klikniemy przycisk Click to Hide/Show Button, wywołamy tę podprocedurę; jak się prawdopodobnie zorientowaliśmy, do tego służy parametr onClick="ToggleButton":
<input type="button" value="Click to Hide/Show Button" onClick="ToggleButton">
Czego dokonuje ta podprocedura? Niczego, absolutnie niczego.
Zaraz zaraz, to nieprawda. W zasadzie to najpierw sprawdza, czy przycisk Button (któremu nadaliśmy nazwę HereThere) jest widoczny na ekranie; dzieje się tak poprzez określenie czy atrybut Visibility jest ustawiony na ukryty:
If HereThere.style.visibility="hidden" Then
Jeżeli atrybut Visibility jest ukryty, oznacza to, że przycisk jest ukryty; dlatego też stosujemy poniższy wiersz kodu, który zmieni wartość atrybutu Visibility na visible oraz nieprzypadkowo spowoduje pojawienie się przycisku na ekranie:
HereThere.style.visibility="visible"
Co natomiast, jeżeli atrybut Visibility nie ma wartości hidden? W takim przypadku, przycisk musi być już widoczny na ekranie; dlatego też zmieniamy wartość atrybutu Visibility i z kolei ukrywamy przycisk:
HereThere.style.visibility="hidden"
Czy to naprawdę spowoduje zniknięcie przycisku z naszego okna aplikacji HTA? Sami się przekonajcie:
Nie martwcie się, nie znika na zawsze. Teraz po prostu klikamy Click to Hide/Show Button i przycisk znowu się pojawi. Moglibyśmy tak klikać przez cały dzień, na zmianę ukrywając i wyświetlając drugi przycisk. To nie są puste słowa, to się sprawdza w praktyce.
Oczywiście nasze możliwości nie są ograniczone do przycisków. Możemy także ukrywać (i wyświetlać) inne formanty. Kwestia podchwytliwa: w przeciwieństwie do przycisków, oznaczenia innych formantów mogą nie być zakotwiczone do formantu. W ten sposób możemy ukryć np. okienko kontrolne, ale w dalszym ciągu widzieć oznaczenie na ekranie. Podobnie, możemy ukrywać i wyświetlać wielorakie formanty. W takim przypadku, nasz kod będzie odpowiednio dłuższy, może nawet przydługi i również trochę skomplikowany.
Będzie tak oczywiście jeżeli nie umieścimy tych wszystkich formantów w <SPAN>, który to będziemy następnie ukrywać i wyświetlać:
<SCRIPT Language="VBScript">
Sub ToggleButton
If HereThere.style.visibility="hidden" Then
HereThere.style.visibility="visible"
Else
HereThere.style.visibility="hidden"
End If
End Sub
</SCRIPT>
<span id=HereThere>
<INPUT type="checkbox" ID="box1">Option 1
<INPUT type="checkbox" ID="box2">Option 2
<INPUT type="checkbox" ID="box3">Option 3
<INPUT type="checkbox" ID="box4">Option 4
</span>
<p>
<input type="button" value="Click to Hide/Show Button" onClick="ToggleButton">
</p>
Sami spróbujcie, wtedy zobaczycie o co nam chodzi.
Jeżeli zaś chodzi o Skrypciarzy, to całe zamieszanie wokół konkurowania pomiędzy Oxford a Cambridge to może być „wiele hałasu o nic”. (Cytując Williama Szekspira, który ukończył podstawówkę im. Króla Edwarda VI w Stratford.) W sumie, jakie są szanse na to, że piszącego te słowa Skrypciarza stać będzie na posłanie syna na Uniwersytet Cambridge w Anglii? Zerowe.
Do początku strony |