Visual Basic #3
LEKCJA 5
Ach..
Jak ten czas leci. To ju┐ lekcja pi▒ta kursu VB dla pocz▒tkuj▒cych.
Jestem tylko ciekawy czy zrozumia│e╢ ostatnio funkcje CSng. T│umaczΩ
wszystko jeszcze raz.
Najpro╢ciej
bΩdzie to zrobiµ na pewnym przyk│adzie. Zr≤bmy program z dwoma
polami textowymi (textBoxem), etykiet▒ (Label) i przyciskiem.
Nazywamy je kolejno txtliczba1, txtliczba2, lblwynik i cmdlicz.
Program bΩdzie musia│ dodaµ do siebie liczby wpisane w textboxy,
a rezultat wy╢wietliµ w etykiecie. Tak wiΩc w przycisku
umieszczamy kod:
lblwynik
= txtliczba1 + txtliczba2
Niby
wszystko w porz▒dku. Uruchamiamy program. I jak w zdaniu
otrzymujemy fa│szywy wynik. Pomy╢lmy. Co by siΩ sta│o gdyby
zamiast liczb do textbox-≤w wpisaliby╢my jakie╢ litery ? Spr≤bujmy.
W pierwszy np. wpisz "Al" a w drugi "ina" i
zsumuj - co wysz│o? Alina? W│a╢nie, dla VB znak
"+" ma dwojakie znaczenie. W przypadku zwyk│ych znak≤w
jest to konkatencja, czyli po│▒czenie dw≤ch │a±cuch≤w.
Wszelkie │a±cuchy znak≤w Visual Basic interpretuje w cudzys│owach
(""), daty w ##, a liczby zostawia same. W tym przyk│adzie
dajesz programowi instrukcje:
lblwynik
= "To co wpisane w textbox1" + "To co wpisane w
textbox2"
Dla
przyk│adu je╢li w textboxie1 masz wpisan▒ liczbΩ 3 a w
textboxie2 liczbΩ 7 to VB rozumuje:
lblwynik
= "3" + "7" - a to daje 37
No
wiΩc jak zrobiµ aby 3+7=10 ? W│a╢nie tak jak tu jest zapisane
- program musi rozumieµ:
lblwynik
= 3 + 7 - a to da w wyniku 10
No
dobra, ale jak to zrobiµ ? Musimy wiedzieµ, ┐e istnieje co╢
takiego jak konwersja danych. Na pocz▒tku mamy dan▒ typu String
czyli "3", a po konwersji dan▒ typu Single czyli 3.
Mo┐emy wiΩc program "naprawiµ" w ten spos≤b:
Zamiast
lblwynik = txtliczba1 + txtliczba2 wpisaµ
lblwynik = CSng(txtliczba1) + CSng(txtliczba2)
Wypr≤bujmy
nasz program. Dzia│a jak trzeba ? No uporali╢my siΩ z tym.
Jednak jest bardziej elegancki (bardziej przejrzysty) spos≤b:
Dim
a,b as single
a = CSng(txtliczba1)
b = CSng(txtliczba2)
lblwynik = a + b
Ta
lekcja by│a kr≤tka, ale bardzo wa┐na. Musisz zrozumieµ to, gdy┐
bez tego nie bΩdziesz w stanie pisaµ program≤w operuj▒cych na
liczbach !!!
ZADANIE
Na
ostatniej lekcji nie om≤wi│em opcji zwi▒zanych z etykiet▒. Na
zadanie macie poznaµ najwa┐niejsze opcje tzn. pobawiµ siΩ nimi
- fajnie co?
-BackColor
- zmienia kolor t│a etykiety
-BorderStyle - efekt wg│Ωbienia
-Caption - chyba wiadomo o co chodzi ;)
-Font - chyba te┐ wiadomo...
-ForeColor - kolor tekstu na etykiecie
LEKCJA 6
Dzisiaj
poznamy funkcjΩ InputBox. Jest to komunikat, z wbudowanym polem
tekstowym. Mo┐e nas np. zapytaµ o imiΩ, a my mu od razu
odpowiemy. Chcesz spr≤bowaµ ? No to do dzie│a
Jak
zwykle tworzymy program z przyciskiem. Wewn▒trz niego umieszczamy
nastΩpuj▒cy kod:
Dim
x as string
x = InputBox ("Jak masz na imiΩ ?")
Uruchamiamy
nasz program i co? Fajne okienko, ale jak zmieniµ tytu│?
x
= InputBox("Jak masz na imiΩ?"," Tutaj tytu│",
"Tu domy╢lna odpowied╝")
Dobra,
napiszmy program kt≤ry pyta siΩ ciebie jak masz na imiΩ, a nastΩpnie
w MsgBox-ie przywita nas "Witaj -imiΩ-"
W
przycisku umieszczamy nastΩpuj▒cy kod :
Dim
x,y as string
x = InputBox ("Jak masz na imiΩ ?","Przywitanie","Mo┐e
Marek...")
y = MsgBox ("Witaj_" & x ,vbExclamation,"Przywitanie")
Uruchamiamy
i co? Fajnie! Program dzia│a. No tak, ale o co tu chodzi ? Wyja╢ni│em
linijka po linijce:
1.Deklaracja
zmiennych x i y - chyba nie muszΩ t│umaczyµ...
2.Pytanie do u┐ytkownika. To co wpiszesz w pole tekstowe zostanie
zapisane do zmiennej x
3.MessageBox z tekstem Witaj -i tu to co w x-
O
co chodzi z tym msgboxem? Po otwarciu nawiasu mamy zwyk│y tekst
wpisany w cudzys│≤w. P≤╝niej widzimy jakie╢ & x. znak
& s│u┐y do │▒czenia │a±cuch≤w (podobnie jak +). W tym
momencie │▒czy on tekst "Witaj" z x-em czyli naszym
imieniem. Powstaje wiΩc jeden ci▒g znak≤w kt≤ry widzimy w
msgBox-ie. Dalej ju┐ wiadomo.
ZADANIE
Poµwicz
sobie funkcje MsgBox, InputBox, przypomnij sobie instrukcjΩ IF.
LEKCJA 7
Witajcie
znowu ! Dzi╢ nauczycie siΩ pos│ugiwaµ funkcj▒ IF. If,if,if -
czy ja tego ju┐ gdzie╢ nie s│ysza│em? Tak, w│a╢nie t▒
funkcjΩ mia│e╢ sobie na dzisiaj przypomnieµ.
Co
by╢my dzisiaj napisali ? Mo┐e program, kt≤ry uruchomisz tylko
po podaniu has│a. Fajny pomys│. Po drodze poznasz jeszcze kilka
funkcji. Tak wiΩc zaczynamy...
Teraz
pomy╢lmy. Kiedy i jak mamy podaµ has│o. Najlepszym sposobem bΩdzie
InputBox (te┐ mia│e╢ go na dzi╢ powt≤rzyµ). Czyli jak zwykle
przycisk... Zaraz, zaraz. Ale my chcemy, aby okienko prosz▒ce nas
o podanie has│a uruchomi│o siΩ przed programem. Jak to zrobiµ.
PamiΩtasz jak wprowadzali╢my kod do przycisku? Tak - dwa razy
click na przycisku. Musisz wiedzieµ, ┐e kod mo┐emy wprowadzaµ
praktycznie do ka┐dego obiektu ustawionego na formie, a tak┐e na
niej samej. I tak w│a╢nie zrobimy w naszym przypadku. Kliknijmy
dwa razy na formΩ. Pojawi siΩ co╢ takiego:
Private
Sub Form_Load()
End Sub
Co
to jest? Tu w│a╢nie jest miejsce na wprowadzenie kodu kt≤ry bΩdzie
wykonany przed za│adowaniem siΩ formy (╢wiadczy o tym s│owo
Load). Tak wiΩc napiszmy funkcjΩ wy╢wietlaj▒c▒ okienko
tekstowe z pro╢b▒ o podanie has│a:
Dim
haslo as string
haslo = InputBox ("ProszΩ podaµ has│o dostΩpu","Has│o")
Teraz
gdzie╢ musimy ustaliµ jakie bΩdzie has│o. A wiΩc piszemy
dalej:
If
haslo <> "SLASH" then
x = msgbox("Poda│e╢ z│e has│o",vbcritical,"B│▒d")
End
Else
y = msgbox("Poda│e╢ dobre has│o",vbExclamation,"OK")
End IF
Cholera
! Ale ten SLASH zam▒ci│. Co to ma byµ!
Nie przejmuj siΩ ! Zaraz Ci wszystko wyt│umaczΩ, ale najpierw
uruchom program.
Pojawia siΩ InputBox - podaj z│e has│o. Wyskakuje komunikat
i... program siΩ zamkn▒│. No dobra - uruchamiamy go jeszcze raz
i tym razem podajemy dobre has│o - i co - tak program uruchomi│
siΩ. Czas by Wam wyt│umaczyµ co siΩ tu dzieje:
1.
Dim haslo... - chyba wiesz ;). Tu oczywi╢cie deklaracja zmiennej
2. Input Box - tu w│a╢nie pojawia siΩ pro╢ba o podanie has│a
3. If haslo <> "SLASH" then - Je┐eli has│o bΩdzie
mniejsze lub wiΩksze (czyli nier≤wne - nie bΩdzie siΩ zgadza│o)
od "SLASH" wtedy...
4. msgbox - Komunikat o z│ym podaniu has│a
5. End - i tu UWAGA. Nowe polecenie - s│u┐y ono do ko±czenia
programu - czyli je╢li z│e has│o program siΩ zamyka
6. Else - UWAGA - rozszerzenie instrukcji IF - oznacza ono "W
przeciwnym przypadku" - o co tu chodzi ? Wr≤µ do linii 3.
Widzisz tam instrukcjΩ Je┐eli has│o nier≤wne "SLASH"
to..., a tu mamy w przeciwnym przypadku - czyli has│o r≤wne
"SLASH". Oczywi╢cie mo┐emy napisaµ
If haslo = "SLASH" then ...
- ale przecie┐ else jest du┐o kr≤tsze .
7. MsgBox - wiadomo, komunikt, ┐e poprawnie poda│e╢ has│o
8.End If - tu ko±czymy instrukcjΩ IF/Else
No i w ko±cu dotarli╢my do ko±ca, pojawia siΩ forma !
No,
my╢lΩ, ┐e zrozumia│e╢ o co tu chodzi│o. Napiszmy jeszcze
jeden program pytaj▒cy siΩ nas o wiek.
Na
formie uk│adamy przycisk. Dodajemy do niego nastΩpuj▒cy kod:
Dim
wiek As Byte
Dim x, y, z As Byte
wiek = InputBox("Podaj, ile masz lat", "Pytanie o
wiek", "17")
If wiek < 12 Then
x = MsgBox("Jeste╢ jeszcze za m│ody na pewne rzeczy",
vbExclamation, "M│ody")
ElseIf wiek >= 40 Then
y = MsgBox("Jeste╢ w pe│ni wieku", vbExclamation,
"Strszy")
Else
z = MsgBox("Jeste╢ jeszcze m│ody", vbExclamation,
"ªredni wiek")
End If
Teraz
obja╢niam:
1,2,3. Pierwszych trzech linijek chyba nie muszΩ t│umaczyµ ;)
4. If wiek < 12 then - je╢li wiek bΩdzie mniejsy od 12 to...
5. MsgBox - Komunikat, ┐e jeste╢ za m│ody
6. UWAGA - nowe wyra┐enie ElseIF - jak siΩ domy╢lasz jest to po│▒czenie
instrukcji Else (w przeciwnym przypadki) z IF (Je╢li) - i co z
tego wychodzi? W przeciwnym przypadku je╢li...
Dlaczego ? PamiΩtaj, ┐e nie mo┐emy u┐yµ wiΩcej ni┐ jednej
instrukcji IF pod rz▒d. Co najwy┐ej IF i Else - ale nigdy IF, IF,
Else - po prostu wyskoczy b│▒d. Zamiast tego stosuje siΩ
instrukcjΩ ElseIF, kt≤r▒ mo┐esz u┐yµ w dowolnej ilo╢ci w
programie.
T│umaczΩ - je╢li wiek bΩdzie wiΩkszy lub r≤wny 40 to...
7. y=MSgBox... - wiadomo o co chodzi...
8. Else - w przeciwnym przypadku...
9. NastΩpny MessageBox
10. Zako±czenie instrukcji IF
I
co │atwe?
------------------------------------------------------------------
PamiΩtaj, ┐e je╢li masz jakikolwiek problem z wy┐ej
zamieszczonym kursem lub masz jakie╢ pytanie nie krΩpuj siΩ -
pisz do mnie na adres: slash@ptik.prv.pl
.Tw≤j list nie zostanie bez odpowiedzi. Je╢li nawet nie masz
pyta± to i tak napisz czy podoba ci siΩ ten kurs, co chcia│by╢
w nim zmieniµ. Napisz w og≤le cokolwiek, abym wiedzia│, ┐e kto╢
ten kurs czyta.
-----------------------------------------------------------------
My╢lΩ,
┐e na dzisiaj wystarczy. Pewnie ju┐ my╢lisz co ten SLASH wymy╢li│
na nastΩpny kurs - powiem ci tylko jedno - prawie to samo co
dzisiaj. Poznasz jedynie po│▒czenie instrukcji IF z operatorami
logicznymi. Na dzi╢ zr≤b sobie przerwΩ...
Slash
slash@ptik.ivg.pl
http://www.ptik.ivg.pl
|