Centrum Skryptów - Systemy Operacyjne

Jak zmienić rozmiar czcionki w obszarze Span aplikacji HTA?

Udostępnij na: Facebook

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 zmienić rozmiar czcionki w obszarze Span aplikacji HTA?

Cześć, Skrypciarze! Mam aplikację HTA, która wyświetla dane w obszarze Span. W zależności od rozmiaru monitora, niektórzy użytkownicy narzekają, że rozmiar czcionki w tym obszarze jest zbyt mały. Jak programistycznie zmienić rozmiar czcionki w tym obszarze?

-- OA

Cześć, OA. Jedną z misji rubryki Cześć, Skrypciarze! jest udzielanie osobom piszącym skrypty oraz administratorom systemu informacji, które są niezbędne w ich działalności. Dlatego też, od razu przejdę do rzeczy. Chcecie wiedzieć, ile kroków trzeba zrobić, żeby przejść z budynku 42 do budynku 2 w kampusie firmy Microsoft? Oto odpowiedź: 1 663.

Mam nadzieję, że to wyjaśnia wszelkie niejasności towarzyszące tej kwestii. Jeżeli macie jeszcze jakieś pytania, piszcie.

Niektórzy z Was mogą się zastanawiać, skąd znam liczbę kroków potrzebną do przejścia z budynku 42 do budynku 2. Cóż, jeśli mamy do czynienia z bezużyteczną informacją, jest duża szansa, że Skrypciarze będą ją znali. W tym przypadku, dziś rano usłyszałem gdzieś, że przeciętny Amerykanin robi około 5 000 kroków dziennie; lekarze zalecają robienie około 10 000 kroków dziennie. Szczerze mówiąc, sama liczba 5 000 kroków brzmi strasznie, w szczególności dla Amerykanów (którzy z chęcią wjeżdżaliby samochodem do swojego salonu, gdyby to tylko było możliwe). Ta informacja obudziła we mnie ciekawość i zapragnąłem dowiedzieć się, ile ja tak naprawdę robię dziennie kroków. A ponieważ musiałem iść na spotkanie w budynku 2, postanowiłem policzyć kroki wykonane po drodze.

Udało mi się to wbrew staraniom Redaktorki, która za wszelką cenę próbowała mnie zmylić, wykrzykując losowo wybrane liczby: „15, 29, 105, 22, 38, 81.” Kiedy zauważyła, że nic nie wskóra, stwierdziła, że i tak nigdy jej przecież nie słucham, więc dlaczego miałbym to zrobić tym razem.

Albo przynajmniej domyślam się, że tak powiedziała. Nie wiem, przecież jej nie słuchałem.

W każdym razie, żeby dotrzeć na to spotkanie i wrócić, zrobiłem prawie 8 000 kroków. Czyli 1 663 kroki do budynku 2, 1 663 kroki z powrotem, około 4 500 kroków zrobionych wałęsając się po budynku 2. Dlaczego aż tyle? Ponieważ zaabsorbowany zamiarem policzenia kroków zapomniałem sprawdzić numer sali, w której miało się odbyć spotkanie. No i prawie się spóźniłem. Ale udało mi się policzyć liczbę kroków potrzebnych do przejścia z budynku 42 do budynku 2.

A tak w ogóle, to ile kroków jest potrzebnych, żeby programistycznie zmienić rozmiar czcionki w obszarze Span? Nie mam pojęcia. Ale wiem, że można to zrobić za pomocą takiego oto kodu:

<script language="VBScript">

    Sub ToggleFontSize

        If DataArea.Style.fontSize = "14pt" Then

            DataArea.Style.fontSize = "8pt"

        Else

            DataArea.Style.fontSize = "14pt"

        End If

    End Sub

</script>



<body>

    <input type="button" value="Toggle Font Size" onClick="ToggleFontSize"><p>

    <span id = "DataArea" style="font-size:8pt">This is the data in my span.</span>

</body>

Jak widać, mamy do czynienia z bardzo prostą aplikacją HTA. Jak prostą? No cóż, nasza aplikacja składa się tylko z dwóch elementów:

  • Obszar Span (nazwany fragment aplikacji HTA) z ID „DataArea”. Oprócz określenia ID (co umożliwia narządzanie obszarem Span za pomocą podprocedury), uwzględniliśmy także parametr style="font-size:8pt". Jak się pewnie domyśliliście, dzięki niemu początkowy rozmiar czcionki obszaru Span (i całego tekstu, który się w nim znajduje) będzie miał wartość 8.
  • Przycisk oznaczony Toggle Font Size. Przy każdym naciśnięciu tego przycisku, uruchomiona zostanie podprocedura o nazwie ToogleFontSize (więcej na temat tej podprocedury już za chwilkę).

Kiedy po raz pierwszy uruchamiamy naszą aplikację HTA, wygląda ona następująco:

Nie zaskakuje nas fakt, iż niektórzy ludzie mogą uznać, że domyślna czcionka jest za mała.

Uwaga. Jeżeli nawet nie widzicie domyślnej czcionki…, cóż, o tym właśnie mówię.

Co z tym zrobimy? No cóż, w tym przypadku zastosujemy podprocedurę ToggleFontSize:

Sub ToggleFontSize

    If DataArea.Style.fontSize = "14pt" Then

        DataArea.Style.fontSize = "8pt"

    Else

        DataArea.Style.fontSize = "14pt"

    End If

End Sub

To też nie jest ani trochę skomplikowane. W pierwszym wierszu tej podprocedury sprawdzamy, czy właściwość fontSize obiektu Style naszego obszaru Span ma wartość 14c punktów (14pt):

If DataArea.Style.fontSize = "14pt" Then

Jeżeli rozmiar czcionki to 14 punktów, oznacza to, że aktualnie używamy większej czcionki. A ponieważ mamy do czynienia z przyciskiem przełączającym (czyli jedno kliknięcie tego przycisku powoduje zmianę czcionki na większą, a kolejne kliknięcie zmienia czcionkę na mniejsza) oznacza to, że musimy przełączyć się do czcionki o rozmiarze 8. To wymaga tylko jednego wiersza kodu:

DataArea.Style.fontSize = "8pt"

A co, jeżeli rozmiar czcionki nie ma wartości 14 pt? W naszym przykładowym skrypcie będzie to znaczyć, że dane są aktualnie wyświetlane za pomocą mniejszego rozmiaru czcionki; dlatego też musimy zastosować następujący wiersz kodu w celu zastąpienia 8-punktowej czcionki czcionką 14-punktową:

DataArea.Style.fontSize = "14pt"

Co otrzymamy? Przy pierwszym kliknięciu kodu rozmiar czcionki się zwiększa i nasza aplikacja HTA wygląda tak:

Nieźle, nie? Drugie kliknięcie przycisku spowoduje powrót do mniejszej czcionki. Trzecie kliknięcie ponownie zwiększy rozmiar czcionki, itd..

Nasze możliwości nie są oczywiście ograniczone do przełączania pomiędzy dwoma rozmiarami czcionki. Alternatywnie moglibyśmy zastosować listę rozwijaną zawierającą zakres rozmiarów czcionki, z którego użytkownik mógłby wybierać dowolny rozmiar. Niestety nie mam dzisiaj czasu, żeby pokazać Wam, jak to zrobić; czeka mnie jeszcze kilka tysięcy kroków do zrobienia.

A w sumie; nachodziłem się dzisiaj na zapas próbując znaleźć salkę konferencyjną w budynku 2. No to lecimy:

<script language="VBScript">

    Sub ChangeFontSize

        DataArea.Style.fontSize = DropDown1.Value

    End Sub

</script>



<body>

    <select size="1" name="DropDown1" onChange="ChangeFontSize">

        <option value="8pt">8 point</option>

        <option value="10pt">10 point</option>

        <option value="14pt">14 point</option>

        <option value="18pt">18 point</option>

        <option value="24pt">24 point</option>

    </select><p>

    <span id = "DataArea" style="font-size:8pt">This is the data in my span.</span>

</body>

Nie omówię dziś szczegółowo listy rozwijanej; więcej informacji na temat tego formantu znajduje się w samouczku aplikacji HTA (j.ang.) . Powiem jedynie, że określamy po prostu liczbę opcji dla listy rozwijanej, ustawiając rozmiar czcionki (taki jak 18 punktów) jako wartość Value każdej z tych opcji:

<option value="18pt">18 point</option>

Za każdym razem, gdy użytkownik wybierze nową opcje (czyli uruchomione zostanie zdarzenie onChange), uruchamiamy podprocedurę ChangeFontSize. Ta podprocedura ma na celu jedną rzecz: ustawia właściwość fontSize obszaru Span na wartość, która została właśnie wybrana w liście rozwijanej:

DataArea.Style.fontSize = DropDown1.Value

I to by było na tyle.

Na wypadek, gdyby ktoś się zastanawiał (a wiem, że tak jest), biurko Redaktorki od mojego dzieli 14 kroków. (Mniej-więcej tyle. Ponieważ nie mogę przejść obok trójgłowego psa strzegącego jej biura, tak naprawdę nigdy tam nie byłem.) Z kolei, pomiędzy łazienką a biurkiem Edytorki jest około 134 kroków. Oznacza to, że gdyby nasza Redaktorka wyszła do łazienki 75 razy w ciągu dnia, wyrobiłaby dzienną normę 10 000 kroków. Niesamowite, ale prawdziwe!

Uwaga. Czy to oznacza, że Redaktorka chodzi do łazienki 75 razy dziennie? Nie. Tak naprawdę nasza Redaktorka jest tak oddaną pracownicą firmy Microsoft, że nigdy nie chodzi do łazienki w czasie pracy. Niesamowite, ale prawdziwe!

 Do początku strony Do początku strony

Centrum Skryptów - Systemy Operacyjne