x = msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Małe
Pytanko")
If x=6 then
y = msgbox("Fajnie, że mnie lubisz ! ",vbExclamation,"Małe
pytanko")
End If
If x=7 then
z = msgbox("Strasznie mi przykro...",vbExclamation,"Małe
pytanko")
End IF
End Sub
Teraz cały program tłumaczę jeszcze raz:
Wyświetl komunikat z pytaniem (Tak=6, Nie=7)
Jeśli x będzie równy 6 to
Komunikat z tekstem "Fajnie...", ikonką wiadomości i tytule
"Małe pytanko"
Zakończenie instrukcji jesli = 6
Jeśli x będzie równy 7 to
Komunikat z tekstem "Przykro mi...", ikonką wiadomości i
tytule "Małe pytanko"
Zakończenie instrukcji jeśli.
Koniec procedury
Prawda, że logiczne?
W tej lekcji poznałeś dwie nowe funkcje - DIM oraz IF. O DIM-ie
dowiesz się wszystko w następnej lekcji. O IF-ie troszeczkę później.
W tej lekcji nie zadaję zadania, gdyż nie omówiłem tutaj szczegółowo
żadnej z funkcji. Poćwicz sobie jedynie to co poznałeś.
Lekcja 3
Właśnie
dotarłeś do lekcji 3 mojego kursu. Jak obiecałem na tej lekcji
poznasz szczegółowe zastosowanie funkcji DIM. No więc zaczynamy
Jak
pamiętasz funkcja DIM ma zapamiętywać co w danej chwili znajduje się
w zmiennej. Teraz pytanie. Czy do poniższego kodu muszę dodać
instrukcję DIM?
x=7
if x=6 then msgbox("Witaj")
Odpowidź
brzmi NIE ! Dlaczego - przecież program musi wiedzieć, że x=7. PAMIĘTAJ
- DIM służy do pamiętania zmiennych a nie stałych. Przecież x
zawsze będzie równy 7 ! To jest zadeklarowane w pierwszej linijce.
Program dochodząc do linijki 2 napotyka instrukcję IF - czyli jeśli
x=6 ... Program więc cofnie się, aby sprawdzić ile to jest x.
Linijka wyżej - oświadczenie, że x=7. A poniżej trzeba zastosować
instrukcję DIM ?
x
= msgbox("Czy mnie lubisz ?",vbQuestion+vbYesNo,"Małe
Pytanko")
If x=6 then
y = msgbox("Fajnie, że mnie lubisz ! ",vbExclamation,"Małe
pytanko")
End IF
TAK!
To jest nawet przykład z ostatniej lekcji. Ale myślę, że teraz
kapniesz o co chodzi. Dochodzimy do linijki 2 i mamy instrukcję IF.
Teraz program musi sprawdzić ile to jest x. Wraca się więc linijkę
wyżej i widzi x=msgbox(...). Niestety - program w tym momencie nie
pamięta czy wybrałeś Tak czy też Nie. Przecież od tego zależy
wartość x. Tak więc program nie wiedząc co jest w x - przyporządkowuje
mu wartość 0 i program jest do bani. Tak więc MUSISZ dodać na początku
programu instrukcję DIM x.
Wiem
ze swojego doświadczenia, że łatwo zapomnieć o dopisaniu tej
funkcji. Później musiałem dochodzić gdzie tkwi błąd w moim
programie. Jednak Visual Basic 6 (i chyba 5 też) oferuje funkcję
przypominania. Tzn. jeśli nie dodamy instrukcji DIM która będzie
potrzebna VB zasygnalizuje błąd. Warto ją włączyć. Wystarczy z
menu wybrać Tools - Options. I teraz zaznazcmy funkcję "Require
Variable Declaration". Od tej pory VB zawsze nam przypomni o
zapomnianym DIM-ie.
No!
Pierwsze zastosowanie DIM-a z głowy. Musisz jednak wiedzieć, że DIM
może przechowywać inne dane. Do tej pory wiesz, że ta instrukcja
przechowuje dane liczbowe. Tak jak w powyższych przykładach miała
zapamiętać czy x=6 czy 7. Ale trzeba wiedzieć, że DIM może
przechowywać dane innego typu. Oto one:
Boolean |
Przetrzymuje
True lub False |
Byte |
Liczby
całkowite z zakresu od 0 do 255 |
Currency |
Liczby
z zakresu -922337685477,5808 do + ( -||- ) |
Date |
Data
od 01.01.0100 - 31.12.9999 |
Decimal |
Liczba
zapisana z dokładnością do 28 liczb po przecinku |
Double |
Liczba
z zakresu -1,79769313486232E+308 do + ( -||- ) |
Integer |
Liczba
z zakresu od -32768 do 32767 |
Single |
Liczba
z zakresu -3402823E+38 do + ( -||- ) |
String |
Dane
znakowe (alfanumeryczne) |
Variant |
Dowolne
- nie musimy tego pisać gdyż Variant jest domyślnie |
Funkcję DIM deklarujemy następująco:
DIM
x as typ
Jak
widziałeś wcześniej w zadaniu pisaliśmy samo DIM x. Jest to równoznaczne
z zapisem:
DIM
x as Variant - gdyż variant jest domyślne.
Od tej pory będziemy stosować następujący zapis:
DIM x as Byte - dlaczego? Pomyślmy... Jakie wartości może
przyjąć x ? Tylko 6 i 7. A więc Byte jest najmniejszym zakresem spełniającym
nasze kryteria. A dlaczego nie zostawić po prostu DIM x ?
Instrukcja DIM x jest bardziej pamięciożerna przez co program będzie
działał trochę wolniej. Na szybkich komputerach i małych
programach nie odczujemy tego. Jeśli jednak przyjdzie nam napisać
objętościowo duży program na wolny komputer, będzie on działał
trochę wolniej niż z poprawnymi instrukcjami DIM. Uffff... No
myślę, że kapujecie o co chodzi. Tak więc pamiętajcie. Stosujcie
najmniejszy zakres spełniający kryteria zmiennej !!!!
A
co się stanie gdy pomylimy sobie zakresy? Np gdy zmienna x będzie
mogła mieć wartości 6 i 7 a zakresem będzie typ (Boolean - czyli
Prawda lub Fałsz) ? Spróbujmy.
Na
formie stwórz przycisk. Kliknij na niego dwukrotnie i wpisz:
Dim
x As Boolean
x = MsgBox("Co wybierasz ?", vbYesNo)
c = MsgBox(x, vbCritical)
Przeanalizujmy
kod. Pierwsza linijka - deklarujemy zmienną dla wartości True lub
False.
Druga linijka - znany nam MessageBox z pytaniem. Pamiętaj, że zależnie
od naszego wyboru x powinien wynosić 6 lub 7
Trzecia linijka. Co to błąd ? x nie jest wzięte w cudzysłów ?!
Nie to nie błąd. Nie chcę aby powstał komunikat o treści
"x" ale żeby komunikat podał nam co jest w x. Innymi słowy
mówiąc powinien pojawić się komunikat z treścią: "6"
lub "7". No to uruchamiamy nasz program i co? Program
zamiast 6 lub 7 pokazał jakieś True! Właśnie oznacza to że mamy
źle zadeklarowaną zmienną x. Zmieńmy więc instrukcję DIM x as
boolean na DIM x as byte. I co teraz? Uruchom program, odpowiedz na
pytanie twierdząco. I co jest 6 ? A przecząco - jest 7! Tak wszystko
działa jak trzeba. Myślę, że wiesz już coś o deklarowaniu
zmiennych. Okazję do poćwiczenia będziemy mieć w następnej
lekcji.
Ale
przed zakończeniem obecnej lekcji muszę Wam jaśniej wytłumaczyć o
co chodziło z tym MsgBox-em wyświetlającym zmienną.
Napiszmy
mały program: Jak zwykle na formie przycisk. 2x na niego i piszemy:
to_co_w_msgBox
= "Co jest?"
c = MsgBox(to_co_w_msgBox)
Uruchamiamy
- i dostajemy komunikat "Co jest? ". A teraz w message boxie
dodajmy cudzysłowy: c=MsgBox("to_co_w_msgBox"). I co teraz?
Dostajemy komunikat "to_co_w_msgBox" - no myślę, że
zrozumiałeś o co chodzi !
Lekcja 4
Witajcie
po raz kolejny. W dzisiejszej części kursu nauczycie się posługiwać
TextBox-em oraz Label-em (Etykietą). Napiszemy prosty program, w którym
będziemy mieć TextBox-a w którego trzeba będzie wpisać liczbę.
Po naciśnięciu przycisku, liczba zostanie podniesiona do kwadratu, a
wynik zobaczymy w polu Label.
Co
to jest Label? Właśnie - label znaczy etykieta. Jest to pewne pole
tekstowe, w którym widnieje jakiś tekst. Tym różni się od pola
tekstowego, że nie możemy edytować jego zawartości. Tak więc
TextBox będzie służył do wpisywania tekstu przez nas, a w label
komputer zwracał nam będzie odpowiedź (Której oczywiście nie będzie
się dało edytować). Tak więc zaczynamy:
Odpalamy
VB. Na formie układamy (gdzieś na dole) przycisk - nadajemy mu nazwę
cmdLicz, a w Caption wpisz Licz. No mamy przycisk. Tylko gdzie będziemy
teraz wpisywać liczbę ? Oczywiście w pole tekstowe. Ale jak? Musimy
go odnaleźć na pasku narzędzi (pamiętaj - wszystko co układamy na
formie jest po lewej stronie). Jest to biały prostokąt z wpisanymi
literkami "ab". Widzisz? Nie? Drugi od góry, druga kolumna.
No! Teraz ustawmy go gdzieś na formie. Najlepiej u góry. Ustawia się
go tak samo jak przycisk (CommandButton). O jest TextBox. Domyślnie
wpisane jest tam Text1. No to musimy to zmienić. Nie szukaj Caption !
Odpowiednikiem tego jest tutaj Text. Odnajdź go w oknie properties.
Teraz wyczyść pole. No mamy czyściutkiego texbox-a. Teraz zmieńmy
jego nazwę np. na txtLiczba. OK. Pomyślmy teraz przez chwilę. W
pole tekstowe wpiszę np. 7, przycisnę przycisk licz i co? No właśnie
- i co? Możemy zastosować funkcję MsgBox, aby wyświetlała
odpowiedź. E tam. Spróbujcie sami. Ja na tej lekcji od razu chcę
Was nauczyć coś o funkcji Label. Tak więc na formie układamy Label.
Jest on widoczny na pasku narzędzi jako duża litera "A",
tak, to ta obok TextBox-a. I co - to tylko jakieś szare pole bez
kropek. Widzimy w nim napis Label1 - zmieńmy to na "Twój wynik
to:" oczywiście w opcji Caption. Nadajemy mu nazwę
lblStalyTekst i zmniejszamy pole tak aby obejmowało jedynie tekst.
Obok niego postawmy drugie pole Label, nadajmy mu nazwe lblWynik i
wyczyśćmy zawartość (Caption). Aby wszystko elegancko wyglądało
zmień etykietę Formy na "Do kwadratu".
Teraz
zajmiemy się kodem. Program zacznie liczyć po naciśnięciu
przycisku licz. Tak więc kod umieścimy wewnątrz niego. Klikamy więc
dwukrotnie na przycisku i pomyślmy. Co nasz program ma robić? Ma
podnieść liczbę wpisaną do pola tekstowego do kwadratu i wynik wyświetlić
w polu label. Wyglądać to będzie tak:
lblWynik.Caption
= txtLiczba ^ 2
Co
to znaczy? Otóż przed przeliczeniem w lblwynik.Caption nie ma nic.
Chyba wiesz co to jest lblWynik? Nie. To jest nasze pole Label w którym
nie ma nic wpisanego. Dobra - ale co to jest w takim razie to Caption
? A pamiętasz jak kasowałeś zawartość pola Label? Właśnie w
caption. Jeśli byś w caption wpisał np ble,ble,ble to na twojej
etykiecie pojawiłby się takiż tekst. My teraz chcemy aby w naszej
etykiecie pojawił się wynik. I właśnie do tego go teraz zmuszamy.
Po prawej stronie zwykłe równanie czyli nasza liczba do kwadratu.
Uruchom program - i co działa?
Pamiętaj,
że w okienko textowe musisz wpisać jakąś liczbę inaczej wyjdzie błąd.
Kiedyś nauczę Was jak zapobiegać takim przypadkom, na razie jednak
musisz poznać podstawy.
ZADANIE
DOMOWE
Napisz
program z dwoma polami tekstowymi, czterema przyciskami i jednym polem
label. Program ma wykonywać pewne działania matematyczne. Przyciski
kolejno powinny wykonywać funkcje: dodawanie, odejmowanie, mnożenie
i dzielenie liczb podanych w textbox-ach. Wynik oczywiście powinniśmy
dostać w polu Label.
UWAGA
!!! Przy dodawaniu będą pewne problemy. Mianowicie jeśli w pierwsze
pole textowe wpiszesz 4 a w drugie 6, to po zsumowaniu nie ujrzysz
liczby 10, a 46. Dlaczego? Visual Basic myśli, że operujesz na
literach i dodajesz je. Musisz programowi powiedzieć, że to co
wpiszesz w pole tekstowe jest liczbą. Służy do tego funkcja CSng.
Jak ją użyć:
Private
Sub cmddodaj_Click()
Dim a, b As Single
a = CSng(txta)
b = CSng(txtb)
lblwynik = a + b
End Sub
Przyjąłem,
że pierwszy textbox nazywa sie txta a drugi txtb.
W tym momencie przyporządkowujesz zmiennej "a" to co jest w
textbox-ie1 jako liczbę. Pamiętaj, że w Textbox-ie jest zawsze
tekst (liczba w końcu to też tekst) . Musisz ten tekst dopiero
przerobić na liczbę, a dopiero potem wykonywać działania
arytmetyczne.
Tutaj
zamieszczam gotowe zadanie jakbyś nie mógł szczaić o co chodzi!
Aha,
zapomniałem napisać, jak uruchomić zapisany projekt. Po
rozpakowaniu programu, uruchamiamy plik z rozszerzeniem VBP (nie frm
!).
Miłej
pracy i do następnego kursu !
Slash
slash@ptik.ivg.pl
http://www.ptik.ivg.pl