Strona główna - VISUAL BASIC-informacje - Wstęp - Śrowowisko Visual Basic 6.0 - Kontrolki - Elementy języka - Zmienne i stałe - Instrukcja przypisania - Wyrażenia arytmetyczne - Wyrażenia logiczne - Wyrażenia łańcuchowe - Operacje na datach - Podejmownie decyzji - Pętle - Tablice - Procedury - Funkcje - Zapisywanie do pliku -
Odczytywanie danych z pliku - Znajdowanie błędów


Co to takiego? | Przypisanie kodu programu do kontrolek | Wprowadzanie danych i wyprowadzanie wyników

Kontrolki


>Co to takiego?

Kontrolki, jak już wcześniej wspomiałem, to elementy interfejsu, które programista wykorzystuje w swoim programie. Są to obiekty, których zdarzenie trzeba zaprogramować. Rozmieszcza się je na formularzu. Służą one np. do wprowadzania danych (pole tekstowe, suwaki), oraz ich wyprowadzania (etykiety). Są one ważną częścią programu, gdyż dzięki nim możemy w łatwy sposób sterować pracą programu. Rozmieszczenie kontrolek na formularzu jest bardzo ważne, gdyż świadczy to o estetyce programu i łatwości jego obsługiwania.

Oto opis podstawowych kontrolek w Visual Basic-u:
KontrolkaIkonaOpis
Pole obrazu (PictureBox)Tworzy pole, w które można wstawić obraz
Etykieta (Label)Tworzy etykietę
Pole tekstowe (TextBox)Tworzy pole tekstu, którego zawartość może być zmieniana
Ramka (Frame)Wydziela optycznie grupę przycisków oraz definiuje zbiory przycisków opcji
Przycisk polecenia (CommandButton)Tworzy przycisk polecenia
Pole wyboru (CheckBox)Tworzy pole wyboru razem z tytułem
Przycisk opcji (OptionButton)Tworzy przycisk opcji razem z tytułem
Pole rozwijane (ComboBox)Tworzy pole listy rozwijanej
Pole listy (LIstBox)Tworzy pole listy
Pasek przewijania (HScrollBar)Tworzy pasek przwijania (suwak) w poziomie
Pasek przwijania (VSrollBar)Tworzy pasek przewijania (suwak) w pionie
Regulator czasowy (Timer)Reguluje czas
Pole listy dysków (DriveListBox)Tworzy pole listy rozwijanej z dyskami na komputerze
Pole listy folderów (DirListBox)Tworzy pole listy z folderami aktualnej ścieżki
Pole listy plików (FileListBox)Tworzy pole listy z plikami aktualnej ścieżki
Kształt (Shape)Tworzy figurę geometryczną o dowolnym kształcie
Linia (Line)Tworzy linię prostą
Obraz (Image)Tworzy obraz grupy obiektów
Dane (Data)Tworzy narzędzie wczytywania i wyświetlania danych
OLE (OLE)Tworzy obszar wstawiania obiektu

Zauważmy, że po uruchomieniu fomularza za pomocą opcji Start z menu Run (lub kliknięcie przycisku na psku narzędzi) pewne kontrolki potrafią same wykonać pewne zadania, bez żadnego dodatkowego oprogramowania. W polu tekstowym można wpisać i korygować dowolny tekst, który może być wykorzystany w programie. Paski przewijania pozimego i pionowego potrafią przesuwać się, a pola wyboru zaznaczają się niewykluczająco natomiast przyciski opcji można zaznaczyć tylko wykluczjąco (tzn. albo pierwszy albo drugi, a nie mogą być zaznaczone obydwa). Kontrolki napędów dyskowych oraz lista plików dają dostęp do zasobów systemu.

Oczywiście brak dodatkowego oprogramowania nie pozwala na powiązanie pomiędzy wybieranym napędem dyskowym a listą nazw plików wyświetlanych w kontrolce lista plików. Podobny problem dotyczy przycisków poleceń, których kliknięcie nie powoduje żadnych działań. Aby uzyskać oczekiwany od tych kontrolek efekt, trzeba napisać procedury związane ze zdarzeniem kliknięcia tych przycisków.


>Przypisanie kodu programu do kontrolek

Kontrolki umieszczane na formularzu pwonny odpowiednio reagować na zdarzenia wykonywane przez użytkownika, takie jak np. kliknięcie myszką. Aby tak się działo każde takie zdarzenie musi zostać oprogramowane. Niektóre zdarzenia są już standardowo oprogramowane w środowisku Visua Basic. Na przykład kliknięcie przycisku, który ma włąściwość przycisku Cancel spowodje wycofanie się z formularza, na którym przycisk ten został umieszczony. Programista może wszakże zmienić działanie takich predefiniowanych zachowań tworząc własne procedury obsługi zdarzeń.

Ćwiczenie 1
Zdefiniujemy zachowanie się programu na skutek kliknięcia przez użytkownika przycisków OK oraz Anuluj na formularzu zbudowanym przez siebie.
  • Otwórz nowy projekt.
  • W oknie właściwości formularza zmień jego nazwę (Caption) z Form1 na Ćwiczenie 1, zmień także nazwę (Name) z Form1 na frm_cw1.
Należy dobrze odróżniać dwie właściwości Name oraz Caption. Właściwość Name definiuje nazwę danej kontrolki i pozwala na odwołanie się do niej w kodzie programu. Natomiast właściwość Caption to napis, jaki pojawia się na niektórych kontrolkach np. właśnie na pasku formularza.
  • Na formularzu umieść dwa przyciski polecenia CommandButton (klikając kontrolkę na pasku narzędzi a następnie przeciągając ją na formularzu), zmień nazwę (Name) jednego z nich na btn_ok a drugiego na btn_anuluj, oraz napis na nich (Caption) na OK i Anuluj.
Zaprojektowany formularz do ćwiczenia 1
  • Dwukrotnie kliknij przycisk OK podzczas projektowania formularza, co spowoduje przejście do procedury obsługi tego zdarzenia czyli btn_ok_Click.
  • Wewnątrz tej procedury umieść wywołanie okna komunikatu MsgBox z komunikatem Wcisnąłeś przycisk OK. Procedura obsługi tego zdarzenia powinna wyglądać tak:
Private Sub btn_ok_Click()
MsgBox ("Wcisnąłeś przycisk OK")
End Sub
  • Następnie po ponownym przejściu do pojektowanego formularza dwukrotnie kliknij przycisk polecenia Anuluj, co spowoduje przejście do procedury btn_anuluj_Click.
  • Wewnątrz tej procedury umieść wywołanie procedury zakończenia pracy z formularzem, tzn. Unload Me. Ostatecznie procedura ta powinna wyglądać tak:
Private Sub btn_anuluj_Click()
Unload Me
End Sub
  • Zapisz projekt na dysku nadając mu nazwę, a następnie obejrzyj działanie tego projektu uruchamiając go opcją Start z menu Run.
    Aby obejrzeć gotowy projekt należy zainstalować program Spis ćwiczeń z podstrony Dodatki: Spis ćwiczeń.

Zauważmy, że tym razem kliknięcie przycisku OK powoduje wyświetlenie odpowiedniego komunikatu, natomiast kliknięcie przycisku Anuluj spowoduje zakończenie przcy programu, podobnie jak wybranie przycisku , Zamknij formularz.


>Wprowadzanie danych i wyprowadzanie wyników

Aby program mógł wykonywać pewne czynności w zależności od różnych dostarczanych mu danych oraz prezentować wykonane obliczenia potrzebne są proste marzędzia do wprowadzania i wyprowadzania liczb i tekstów. Najprostrzymi z nich jest imieszczenie pola tekstowego (TextBox) na formularzu w celu pobrania danych, oraz wydruk bezpośrednio na formularzu za pomocą instrukcji Print.

Innym sposobem jest wprowadzenie danych za pomocą specjalnego formularza (tzw. okna dialogowego) InputBox, natomiast wyprowadzenie wyników w formie komunikatu za pomocą osobnego, małego formularza (również okna dialogowego) Message Box (jakiego użyliśmy już w Ćwiczeniu 1).

Ćwiczenie 2
Podamy dwie dane: nazwisko oraz wiek, dwoma metodami, a następnie wyświetlimy zdanie w wieku danej osoby bezpośrednio na formularzu oraz osobnym Message Box.

  • Rozpocznij nowy projekt wybierając New Project z menu File.
  • Nadaj mu nazwę (Name) frm_cw2 i (Caption) Ćwiczenie 2
  • Na formularzu umieść kontrolkę Pole tekstowe (podwójnie ją klikając na pasku narzędzi), w oknie właściwości zmień jej nazwę (Name) na txt_nazwisko oraz usuń domyślną wartość Text1 z właściwości Text.
  • Nad tą kontrolką umieść kontrolkę etykiety (Label) z napisem (Caption) Podaj nazwisko.
  • Pod polem tekstowym umieść przycisk polecenia, zmień jego nazwę (Name) btn_wiek, oraz napis na nim (Caption) na Wiek.
  • Następnie umieść trzy przyciski poleceń o nazwach btn_msg, btn_print oraz btn_anuluj i napisach na nich Wyświetl komunikat, Print oraz Anuluj.

  • Przykładowy formularz:

    Zaprojektowany formularz do ćwiczenia 2

    Aby formularz spełnił swoje zadanie należy oprogramować odpowiednie zdarzenia.
  • Podwójnie klikając kontrolkę Pole tekstowe przejdź do tworzenia procedury txt_nazwisko_Change() w oknie kodu.
  • Pobierz tekst wpisany do tej kontrolki poprzez odczytanie właściwości Text obiektu txt_nazwisko i podstaw go pod zmienną Nazwisko.

  • Procedura ta powinna wyglądać następująco:
Private Sub txt_nazwisko_Change()
Nazwisko = txt_nazwisko.Text
End Sub
  • Następnie kliknij dwukrotnie przycisk polecenia Wiek, żeby przejść do edycji procedury obsługującej zdarzenie kliknięcia przycisku czyli btn_wiek_Click().
  • Dane o wieku wprowadź na pomocą formularza InputBox wprowadzjąc wywołanie formularza InputBox z komunikatem Podaj Wiek.

  • Procedura ta powinna wyglądać następująco:
Private Sub btn_wiek_Click()
Wiek = InputBox("Podaj wiek")
End Sub
  • W dalszej kolejności zaprogramuj zachowanie się programu w przypadku kliknięcia przycisków Wyświetl komunikat, Print oraz Anuluj. Naciśnięcie pierwszego przycisku powinno spowodować wyświtlenie na pomocą formularza MasgBox komunikatu o wyprowadzonych danych.

  • Procedura ta wygląda tak:
Private Sub btn_msg_Click()
MsgBox Nazwisko & " ma " & Wiek & " lat."
End Sub
    Natomiast wybranie drugiego przycisku powinno spowodować napisanie tego komunikatu bezpośrednio na formularzu. Procedura obsługi tego zdarzenia ma postać:
Private Sub btn_print_Click()
Print Nazwisko & " ma " & Wiek & " lat."
End Sub
  • I ostatecznie przycisk Anuluj kończy działanie programu. W procedurze obsługującej kliknięcie tego przycisku umieść wywołanie funkcji powodującej usunięcie formularza z pamięci komputera i zakończenie działania programu, czyli:
Private Sub btn_anuluj_Click()
Unload Me
End Sub
  • Należy zwrócić uwagę, że do przechowywania wprowadzonych danych użyliśmy dwóch zmiennych Nazwisko i Wiek. Aby zmienne te mogły być widoczne przez wszystkie procedury, trzeba je zadeklarować w początkowej części kodu (więcej na temat zmiennych, ich typów oraz i deklarowania w następnym dziale). Umieść zatem na początku programu przed tekstem pierwszej procedury następującą deklarzację:
Dim Wiek, Nazwisko As String

Ostatecznie okno kodu powinno zawierać następujący tekst (kolejność występowania procedur nie jest istotna):

Dim Wiek, Nazwisko As String

Private Sub btn_anuluj_Click()
Unload Me
End Sub

Private Sub btn_msg_Click()
MsgBox Nazwisko & " ma " & Wiek & " lat."
End Sub

Private Sub btn_print_Click()
Print Nazwisko & " ma " & Wiek & " lat."
End Sub

Private Sub btn_wiek_Click()
Wiek = InputBox("Podaj wiek")
End Sub

Private Sub txt_nazwisko_Change()
Nazwisko = txt_nazwisko.Text
End Sub
  • Spróbuj uruchomić zaprojektowany formularz i program za pomocą opcji Start z menu Run i zaobserwuj działanie formularzy InputBox oraz MsgBox, a także wykonanie polecenia Print.
formularz InputBox
Wprowadzanie danych za pomocą formularza InputBox


formularz MsgBox
Wyprowadzanie komunikatów i wyników za pomocą formularza MsgBox


instrukcja Print
Drukowanie komunikatów bezpośrednio na formularzu za pomocą instrukcji Print

W ten sposób utworzyliśmy pierwszy, w pełni funkcjonalny program wyczytujący dane i wypisujący wynik. Zapiszmy projekt na dysku i zajmijmy się poznaniem elementów języka Visual Basic, które umożliwią tworzenie bardziej złożonych aplikacji.



Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/eprogram/www/index.php on line 29