Przykładowa aplikacjapoprzednia...Gdy mamy proceduę, która ustawia etykiety na środku formy, możemy napisać kod, który będzie powodował zmianę formatu wyświetlania daty i czas. Po zmianie formatu mogą zmienić się rozmiary kontrolek, więc trzeba będzie wywołać procedurę ustawiającą kontrolki na formie. Gdy użytkownik wybierze jeden z formatów daty, wywołane zostanie zdarzenie mnuDataFormatFormaty_Click. Ponieważ wszystkie polecenia w menu określające format daty mają taką samą nazwę mnuDataFormatFormaty, więc przy wywołaniu zdarzenia Click, Visual Basic poda indeks polecenia, które zostało wybrane. Ponieważ w fazie projektowania ustaliliśmy te indeksy na wartości 1 do 3, wiemy który indeks odpowiada któremu poleceniu. Ponieważ w menu zaznaczamy znacznikiem V, który format aktualnie jest używany, więc musimy zaznaczyć odpowiedni format, który wybrał użytkownik. W tym celu najpierw ustawiamy właściwości Checked wszystkich poleceń mnuDataFormatFormaty na False. W ten sposób w menu nie będzie zaznaczonego znacznikiem V polecenia. Następnie ustawiamy właściwość Checked tego polecenia, które wybrał użytkownik (a którego indeks został przekazany do procedury mnuDataFormatFormaty_Click). Znacznik V pojawi się przy tym formacie, który wybrał użytkownik. Następnie w zależności od wartości przekazanego Indeksu podstawiamy odpowiednią wartość formatowania do zmiennej globalnej gstrFormatDaty. Zmienna ta będzie później wykorzystana przez zdarzenie tmrZegar_Timer, aby wyświetlić nową wartość w etykiecie. Po podstawieniu nowej wartości do zmiennej globalnej możemy wywołać zdarzenie tmrZegar_Timer, aby natychmmiastowo wyświelić datę w nowym formacie, lub możemy poczekać, aż wystąpi to zdarzenie (mniej niż 1 sekundę) i samo wyświetli datę w nowym formacie.
Podobnie postępujemy w przypadku zmiany formatu wyświetlania czasu. Dopisujemy odpowiedni kod do procedury zdarzenia mnuCzasFormatFormaty_Click:
Dodamy teraz kod programu, który umożliwi zmianę czcionki etykiet. Kod ten musi być zawarty w procedurach zdarzeń mnuDataCzcionka_Click i mnuCzasCzcionka_Click. Ponieważ obie procedury będą wykonywały to samo zadanie (pobierały nowe ustawienia czcionki) tylko, że dla różnych kontrolek, więc zamiast pisać dwukrotnie ten sam kod zrobimy jedną osobną procedurę, której jako parametr będziemy przekazywać nazwę odpowiedniej kontrolki (lblData lub lblCzas). Do zmiany czcionki wykorzystamy kontrolkę CommonDialog. Wyświetla ona okno Czcionka, w którym można wybrać nazwę, rozmiar, kolor i styl czcionki. Aby wykorzystać tę kontrolkę do wyświetlenia okna Czcionka należy najpierw ustawić właściwość Flags. We właściwości tej ustawia się rodzaj czcionek wyświetlanych przez okno Czcionka (ekranowe, drukarkowe, obyda typy itd.) oraz dodatkowe atrybuty okna dialogowego. Ponieważ nasz zegar będzie wyświetlany tylko na ekranie, do właściwości Flags wstawimy wartość określającą czcionki ekranowe (gdybyśmy nie wstawili żadnej wartości to okno Czcionka nie wyświetliłoby żadnych dostępnych czcionek). Dodamy tam również wartość umożliwiającą nadanie czcionkom atrybutów Podkreślenie i Przkreślenie. Jeżeli ustawimy właściwość Flags i wywołamy metodę ShowFont, aby wyświetlić okno Czcionka, to otworzy się ono wyświetlając listę dostępnych czcionek ekranowych i ich atrybutów, ale bez wybranej czcionki domyślnej. Gdyby użytkownik chciał zmienić tylko rozmiar aktualnie używanej czcionki, musiałby wybrać odpowiednią nazwę czcionki, atrybuty, kolor i rozmiar. Aby to ułatwić możemy przez wywołaniem metody ShowFont przesłać do kontrolki cdlOknaDialogowe atrybuty czcionki aktualnie używanej. Okno Czcionka otworzy się wtedy na aktualnie używanej czcionce, i jeżeli użytkownik będzie chciał zmienić tylko rozmiar czcionki, to zrobi to bez konieczności ustawiania innych atrybutów. ![]() Tworzymy więc procedurę ZmienCzcionke i przekazujemy do niej jako parametr nazwę kontrolki. Ustawiamy właściwość Flags i przepisujemy atrybuty aktualnie wykorzystywanej czcionki etykiety do kontrolki CommonDialog, po czym wywołujemy metodę ShowFont. Następnie atrybuty nowo wybranej czcionki przepisujemy do etykiety. Jeżeli użytkownik przyciśnie Anuluj to kontrolka CommonDialog zwróci takie wartości jakie zostały do niej zapisane przed wywołaniem metody ShowFont. Na koniec procedury ustawiamy etykiety centralnie na formie (ponieważ ich rozmiar mógł się zmienić).
Teraz w procedurach zdarzeń mnuDataCzcionka_Click i mnuCzasCzcionka_Click wystarczy tylko wywołać procedurę ZmienCzcionke i przekazac jako parametr nazwy kontrolek lblData i lblCzas.
Możemy teraz przejść do poleceń menu ustawiających datę (mnuDataUstaw) i czas (mnuCzasUstaw). Wykorzystujemy zdarzenie Click, aby wykonać kod, który ustawi nową datę i czas. Aby ustawić datę i czas wykorzystujemy rozkazy Date i Time. Aby pobrać datę i czas od użytkownika wykorzystamy funkcję InputBox. Wyświetla ona okno dialogowe, w którym użytkownik może wpisać dowolny łańcuch znaków. Aby ułatwić mu wprowadzanie nowej daty lub czasu, możemy wyświelić w oknie InputBox wartość domyślną, która będzie wyświetlana w oknie wprowadzania zanim użytkownik zmieni ją lub wpisze coś innego. ![]() Gdy użytkownik wprowadzi już nową wartość musimy sprawdzić, czy jest to poprawna data lub czas. Wykorzystamy do tego funkcję IsDate.
dalej... |