Centrum skryptów - Systemy operacyjne

Jak wymusić określoną wielkość liter w aplikacji HTA?

Udostępnij na: Facebook

Skrypciarze odpowiadają na Wasze pytania

Cześć Skrypciarze!

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 wymusić określoną wielkość liter w aplikacji HTA?

Cześć Skrypciarze! Pytanie

Cześć, Skrypciarze! W naszej firmie często używamy aplikacji HTA do wprowadzania danych. W niektórych przypadkach, rozróżnianie wielkości liter jest bardzo ważne, na przykład jeżeli chodzi o numery naszych produktów. Wiem, że możliwe jest napisanie skryptu zmieniającego wielkość liter, ale zastanawiam się, czy możliwe jest także wymuszenie danej wielkości liter (wszystkie duże lub wszystkie małe litery) w momencie wprowadzania danych.

-- SK

Cześć Skrypciarze! Odpowiedź

Cześć, SK. Ciekawą informacją dotycząca tej rubryki jest to, ze Skrypciarze odpowiadający na zadawane pytania uczą się podczas pisania więcej niż ktokolwiek podczas czytania tych odpowiedzi. Serio. Na podstawie otrzymanych wiadomości zorientowaliśmy się, że wiele osób (oczywiście głównie te, które nas jeszcze dobrze nie poznały) zakłada, iż Skrypciarze mogą odpowiedzieć na każde pytanie dotyczące skryptów z głowy od razu i to bez przygotowania. Gdyby się tak nad tym głębiej zastanowić, to może jesteśmy w stanie odpowiedzieć na każde zadane nam pytanie:

„Cześć Skrypciarze! Jak wymusić wielkość liter podczas wprowadzania danych?”

„Nie mamy zielonego pojęcia.”

Formalnie rzecz biorąc, „Nie mamy zielonego pojęcia” także jest odpowiedzią. Tylko może niezbyt dobrą.

Ale spokojnie, SK. Jak to mamy w zwyczaju, pogmeraliśmy trochę i udało nam się znaleźć lepszą odpowiedź na to pytanie:

<body>

    Box 1 <input type="text" name="Box1" size="30" style="text-Transform:uppercase"><P>

</body>

Jak widać, jest to chyba najprostsza aplikacja HTA, jaką kiedykolwiek stworzono: nie ma tam nic szczególnego oprócz prostego pola tekstowego. Spójrzmy jednak na kod HTML tego pola tekstowego:

<input type="text" name="Box1" size="30" style="text-Transform:uppercase">

Zastosowaliśmy dla tego pola styl; w szczególności, nadaliśmy wartość atrybutowi text-Transform: style="text-Transform:uppercase". Czy w tym szaleństwie kryje się jakaś metoda? Oczywiście, że tak: ustawienie atrybutu text-Transform na uppercase automatycznie konwertuje każdy tekst wpisany do tego pola na jego odpowiednik pisany dużymi literami. Najlepsze jest to, że można tego dokonać bez wpisywania żadnego kodu.

A skoro już o tym mówimy: tak, są także inne wartości, które możemy przypisać do atrybutu text-Transform. Można przecież przypisać mu wartość w celu konwertowania tekstu wpisanego do tego pola na jego odpowiednik pisany małymi literami. Inną wartością jest capitalize, powodująca zamianę pierwszej litery każdego wyrazu na dużą (kolejne litery wyrazu nie są konwertowane i pozostają w takiej postaci, w jakiej są wpisywane). Oto przykład aplikacji HTA, w której zastosowane zostały te właśnie wartości atrybutu text-Transform. Przyjrzyjmy się uważnie wielkości liter w każdym polu; wszystkie litery w każdym z tych trzech pól były wpisywane jako małe litery. Jednak jak widać, nie wszystkie wyglądają na takie:

A oto znaczniki HTML, które zastosowaliśmy w celu utworzenia tej próbki:

<body>

    Box 1 <input type="text" name="Box1" size="30" style="text-transform:uppercase"><P>

    Box 2 <input type="text" name="Box2" size="30" style="text-transform:lowercase"><P>

    Box 3 <input type="text" name="Box3" size="30" style="text-transform:capitalize"><P>

</body>

Fajne, co nie?

Możemy to dodać, chociaż nie chodziło nam o stosowanie skryptu do zmiany wielkości liter, ale możemy go zastosować, jeżeli chcemy. Oto zmodyfikowana aplikacja HTA zawierająca przycisk przełączający pomiędzy dużymi i małymi literami:

<Script Language="VBScript">

    Sub CaseChanger

        If Box1.Style.textTransform="lowercase" Then

            Box1.Style.textTransform="uppercase"

        Else

            Box1.Style.textTransform="lowercase"

        End If

    End Sub

</Script>



<body>

    Box 1 <input type="text" name="Box1" size="30"><P>

    <input  type="button" Value="Run" type="button" onClick="CaseChanger" style="text-Transform:lowercase">

</body>

Fajne jest tutaj to, że nie tylko modyfikujemy styl przypisany do pola tekstowego, ale także dynamicznie zmieniamy wielkość liter dla każdego tekstu znajdującego się aktualnie w tym polu tekstowym.

Mamy nadzieję, że to Ci pomoże, SK. Skrypciarz piszący te słowa znowu się wiele nauczył, ale następnym razem będzie już na pewno tak, że na pytanie odpowie z głowy, gdyż ma zamiar odrobić wszystkie zaległe prace domowe i nauczyć się wszystkiego, co dotyczy skryptów.

Jednak dzisiaj Skrypciarz piszący te słowa ma ważny mecz i musi wyjść wcześniej, więc zacznie dopiero od jutra.

W zasadzie, to chodzi o serię meczy przez cały tydzień, ale od przyszłego poniedziałku zacznie na pewno.

 Do początku strony Do początku strony

Centrum skryptów - Systemy operacyjne