Visual Basic
Visual Basic - Jest to j臋zyk programowania wysokiego poziomu do tworzenia aplikacji w systemie Windows opracowany przez Microsoft. Visual Basic jest bardzo 艂atwy w obs艂udze mimo, i偶 posiada zaawansowane mo偶liwo艣ci. Dzi臋ki temu sta艂 si臋 bardzo popularnym j臋zykiem u偶ywanym do tworzenia aplikacji do systemu Windows. Wiele program贸w firmy Microsoft (np.Word) zawiera j臋zyk makroinstrukcji (ang. Visual Basic for Applications), kt贸ry jest uproszczon膮 wersj膮 j臋zyka Visual Basic.
聽Ca艂y kurs mo偶na 艣ci膮gn膮膰 tutaj kurs.zip (87KB)
W tym dziale zajmiemy si臋 opisem i sk艂adni膮 j臋zyka Visual Basic. Om贸wimy tu u偶ycie p臋tli, instrukcji warunkowych, obs艂ug臋 kontrolek i menu, zmienne i operatory.聽聽聽聽聽
(wszystkie zawarte w tym dziale przyk艂ady mo偶na 艣ci膮gn膮膰 tak偶e w dziale Download)
Lekcja1 - Podstawy
"Hello World" - podstawy Visual Basica oraz obs艂uga okien dialogowych
Jak zwykle to bywa nasz膮 nauk臋 j臋zyka zaczniemy od napisania prostego programu "Hello World!". Na pocz膮tku uruchom program Visual Basic, w otwartym oknie "New Project" wybierz ikonk臋 "Standard Exe" i naci艣nij Otw贸rz. W samym 艣rodku okna ujrzysz szary prostok膮t zatytu艂owany "Form1" zape艂niony czarnymi, r贸wno rozmieszczonymi kropkami - b臋d膮 ci one u艂atwia艂y rozmieszczanie obiekt贸w wewn膮trz formy. Naci艣nij teraz przycisk przypominaj膮cy niebieski tr贸jk膮t umieszczony po艣rodku g贸rnej cz臋艣ci okna. Powiniene艣 zobaczy膰 teraz nast臋pny szary prostok膮t, tylko teraz ju偶 z czyst膮 szar膮 powierzchni膮. Gratulacje w艂a艣nie stworzy艂e艣 sw贸j pierwszy program w j臋zyku Visual Basic! Mamy teraz jedynie ma艂y k艂opot - ten program nie wykonuje na razie 偶adnej czynno艣ci opr贸cz pokazywania pustej formy na twoim monitorze, mamy zamiar to zmieni膰. Wy艂膮cz program klikaj膮c na krzy偶yk wewn膮trz twojego programu lub na niebieski kwadrat w 艣rodowisku Visual Basica (tr贸jk膮t, dwa prostok膮ciki i kwadrat - identycznie jak w odtwarzaczu CD!). Wr贸ci艂e艣 zn贸w do trybu projektowania. Aby doda膰 do formy przycisk dwukrotnie kliknij w tabelce po lewej stronie ikonk臋 zatytu艂owan膮 "CommandButton" ( nazwa pojawi si臋 po najechaniu i chwilowym przytrzymaniu kursora myszki nad dan膮 ikonk膮). Visual Basic automatycznie umie艣ci przycisk w 艣rodku twojego programu i nada mu nazw臋 i nag艂贸wek "Command1" (nazwy (Name)聽 b臋dziemy u偶ywa膰 do odwo艂ywania si臋 do obiektu podczas pisania programu, natomiast nag艂贸wek (Caption) b臋dzie widoczny na przycisku w postaci napisu). Teraz kliknij raz na nowo powsta艂y obiekt aby si臋 pod艣wietli艂, nast臋pnie w oknie "Properties" po prawej stronie odszukaj pola "Caption" i zmie艅 jego domy艣ln膮 warto艣膰 (Command1) na "Hello". Zobaczysz teraz 偶e tak偶e na przycisku zmieni艂 si臋 napis. zabierzmy si臋 teraz za w艂a艣ciw膮 cz臋艣膰 programowania, a mianowicie za pisanie kodu. Kliknij dwukrotnie na utworzony przed chwil膮 przycisk. Wy艣wietli ci si臋 tym razem bia艂e okno z takim tekstem:
Private Sub Command1_Click()
End Sub
Kod wpisujemy pomi臋dzy pierwsz膮 a trzeci膮 linijk膮 ("Private Sub" a "End Sub"). Aby nasz program zacz膮艂 co艣 robi膰 wpisz ten kod, wci艣nij "Start" (niebieski tr贸jk膮cik) i naci艣nij przycisk w formie:
MsgBox "Hello World!", vbInformation + vbOKOnly, "M贸j Pierwszy program"
I co zadowolony z siebie? Mam nadziej臋, 偶e tak bo oto ruszy艂e艣 ko艂o, kt贸remu mo偶esz pozwoli膰 si臋 toczy膰, aby poci膮g艂o ci臋 dalej w 艣wiat programowania, albo zatrzyma膰 i unikn膮膰 niejednokrotnego upadku i st艂uczenia. Je艣li wszystko posz艂o zgodnie z planem to ujrza艂e艣 zapewne okienko dialogowe w kt贸rym zosta艂 wy艣wietlony tekst "Hello World" ( Je艣li nie to zamiast poprzedniego kodu wpisz tylko to: MsgBox "Hello World!"). A teraz om贸wimy po kolei co oznaczaj膮 poszczeg贸lne cz臋艣ci:
MsgBox- jest to funkcja m贸wi膮ca kompilatorowi 偶e ma wywo艂a膰 okienko dialogowe.
"Hello World!"- jak zapewne ju偶 zd膮偶y艂e艣 si臋 domy艣li膰 jest to tekst wy艣wietlany w okienku
vbInformation- jest typ ikonki wy艣wietlanej obok tekstu ("i" w dymku), w to miejsce mo偶emy wpisa膰 tak偶e: vbExclamation- wykrzyknik, vbCritical- krzy偶yk i聽 vbQuestion- znak zapytania.
vbOKOnly - jest to rodzaj przycisk贸w, jakie s膮 wy艣wietlane w okienku (tylko OK), w to miejsce mo偶emy tak偶e wstawi膰: vbAbortRetryIgnore- Przerwij, Pon贸w pr贸b臋, Zignoruj; vbOKCancel- OK, Anuluj; vbRetryCancel- Pon贸w pr贸b臋, Anuluj; vbYesNo- Tak, Nie; vbYesNoCancel- Tak, Nie, Anuluj.
"M贸j pierwszy program"- to tak偶e ju偶 pewnie wiesz, 偶e jest to nag艂贸wek okienka.聽
Cz臋艣膰 druga podstaw Visual Basica - opis i obs艂uga w艂a艣ciwo艣ci kontrolek i form
Oznaczenia:
Okno do edycji formy (ang.Form window)
Prze艂膮cza wska藕nik myszy w tryb zaznaczania obiekt贸w
Rysunek (PictureBox)
Etykieta (Label)
Pole tekstowe (TextBox)
Ramka (Frame)
Przycisk (CommandButton)
Pole zaznaczenia (CheckBox)
Pole wyboru (OptionBotton)
Lista (ListBox)
Pole kombi (ComboBox)
Pionowy pasek przewijania (Horizontial scrollbar)
Poziomy pasek przewijania (Vertical scrollbar)
Lista dysk贸w (DriveListBox)
Zegar (Timer)
Lista plik贸w (FileListBox)
Lista katalog贸w (DirListBox)
Linia (Line)
Kszta艂t (Shape)
Obrazek (Image)
殴r贸d艂o danych (Data)
Pojemnik OLE
Okno projektu (ang. Project window)
Okno w艂a艣ciwo艣ci (ang.Properties window)
Okno okre艣laj膮ce uk艂ad formatki (ang.Form layout window)
Menu uruchamiania programu
Menu wraz ze standardowym paskiem narz臋dzi
Forma -opis w艂a艣ciwo艣ci ustawianych przy starcie programu w oknie "Properties" :
聽
Forma |
|
W艂a艣ciwo艣膰 |
Opis |
Name |
Okre艣la nazw臋 formy do kt贸rej mo偶emy si臋 odwo艂a膰 podczas pisania kodu |
Apperance |
- |
AutoRedraw |
Warto艣膰 ta ustawiona na True powoduje, 偶e okno co jaki艣 czas jest automatycznie od艣wie偶ane |
Backcolor |
Okre艣la kolor t艂a formy |
BorderStyle |
Mo偶emy tutaj ustawi膰 styl wy艣wietlania okna (np. czy ma si臋 rozszerza膰, lub jak ma wygl膮da膰) |
Caption |
Napis wy艣wietlany na uchwycie formy |
ClipControls |
- |
ControlBox |
Warto艣膰 ustawiona na True pozwala na wy艣wietlanie przycisk贸w minimalizuj, maksymalizuj i zamknij na uchwycie聽聽 |
DrawMode |
- |
DrawStyle |
- |
DrawWidth |
- |
Enabled |
M贸wi kompilatorowi, czy forma jest aktywna, czy nieaktywna |
FillColor |
Kolor u偶ywany do wype艂niania figur wyrysowanych w formie聽 |
FillStyle |
Jest to styl wype艂niania figur (kreski, krzy偶yki) |
Font |
S膮 to ustawienia dotycz膮ce wielko艣ci i rodzaju czcionki |
FontTransparent |
Ustawiaj膮c t臋 warto艣膰 na True powodujemy, 偶e t艂o pod napisami i obrazkami nie jest wy艣wietlane |
ForeColor |
Jest to kolor t艂a pod tekstem i obrazkami |
HasDC |
聽 |
Height |
Jest to wysoko艣膰 Okna |
HelpContextID |
Jest to numer identyfikacyjny obiektu przypisany do pliku pomocy |
Icon |
Jest to ikona wy艣wietlana na uchwycie okna |
KeyPreview |
Je偶eli ta warto艣膰 jest ustawiona na True, to forma przechwytuje wszystkie znaki wprowadzane z klawiatury |
Left |
Odleg艂o艣膰 lewej kraw臋dzi okna od lewej kraw臋dzi ekranu |
LinkMode |
- |
LinkTopic |
- |
MaxButton |
Ustala, czy jest aktywny przycisk maksymalizacji |
MDIChild |
M贸wi kompilatorowi, czy forma jest wy艣wietlana jako "potomne" (wewn膮trz innego) |
MinButton |
Ustala, czy jest aktywny przycisk minimalizacji |
MouseIcon |
Kursor myszy wy艣wietlany nad oknem (dzia艂a tylko wtedy, gdy w艂a艣ciwo艣膰 MousePointer jest ustawiona na 99) |
MousePointer |
Rodzaje kursor贸w systemowych ukazuj膮cych si臋 po najechaniu na przycisk |
Movelable |
Warto艣膰 ta ustawiona na False powoduje, 偶e nikt 偶adn膮 si艂膮 nie ruszy ju偶 tego okna聽 |
NegotiateMenus |
- |
OleDropMode |
- |
Pallete |
- |
PalleteMode |
- |
Picture |
Obrazek wy艣wietlany w oknie jako t艂o |
RightToLeft |
Ustawione na True wy艣wietla litery wspak聽聽 |
ScaleHeight |
Jest to liczba jednostek (w zale偶no艣ci od ScaleMode) wysoko艣ci okna |
ScaleLeft |
Jest to liczba jednostek wsp贸艂rz臋dnych dla lewej kraw臋dzi okna |
ScaleMode |
Okre艣lamy tu jednostki w jakich podajemy wymiary |
ScaleTop |
Jest to liczba jednostek wsp贸艂rz臋dnych dla g贸rnej kraw臋dzi okna |
ScaleWidth |
Jest to liczba jednostek szeroko艣ci okna |
ShowInTaskbar |
Je艣li ustawimy t膮 warto艣膰 na True, to program b臋dzie reprezentowany na Windowsowym pasku zada艅聽 |
StartupPosition |
Ustawiamy tu w jakim miejscu ekranu ma pojawi膰 si臋 okno |
Tag |
Jest to pewnego rodzaju zbiornik przechowuj膮cy dane |
Top |
Jest to odleg艂o艣膰 g贸rnej kraw臋dzi okna od g贸rnej kraw臋dzi ekranu |
Visible |
Jest to w艂a艣ciwo艣膰 m贸wi膮ca kompilatorowi, czy okno ma by膰 widoczne, czy nie |
WhatsThisButton |
- |
WhatsThisHelp |
- |
Width |
Jest to szeroko艣膰 okna |
WindowState |
Okre艣la, czy okno przy starcie ma by膰 normalnej wielko艣ci, zminimalizowane, czy zmaksymalizowane聽 |
聽
CommandButton - opis w艂a艣ciwo艣ci ustawianych przy starcie programu w oknie "Properties":
聽
CommandButton |
|
W艂a艣ciwo艣膰 |
Opis |
Name |
Okre艣la nazw臋 przycisku (kontrolki) do kt贸rej mo偶emy si臋 odwo艂a膰 podczas pisania kodu |
Apperance |
- |
Backcolor |
Okre艣la kolor t艂a przycisku (dzia艂a tylko wtedy, gdy w艂a艣ciwo艣膰 Style jest ustawiona na 1) |
Cancel |
- |
Caption |
Napis wy艣wietlany na przycisku |
CausesValidation |
- |
Default |
Je艣li ta warto艣膰 jest ustawiona na True to za ka偶dym razem, gdy zostanie wci艣ni臋ty Enter program wykona zdarzenie Click przycisku (czyli tak jakby kto艣 klikn膮艂 na ten przycisk)聽聽 |
DisabledPicture |
Ta w艂a艣ciwo艣膰 m贸wi jaki ma by膰 pokazany obrazek na przycisku, kiedy jego w艂a艣ciwo艣膰 Enabled jest ustawiona na False |
DownPicture |
Ta w艂a艣ciwo艣膰 m贸wi jaki ma by膰 pokazany obrazek na przycisku, kiedy u偶ytkownik na niego kliknie (w chwili przytrzymania przycisku) |
DragIcon |
Jest to ikona wy艣wietlana zamiast wska藕nika, kiedy u偶ytkownik "podniesie" przycisk (w艂a艣ciwo艣膰 DragMode musi by膰 ustawiona na 1) |
DragMode |
Okre艣la tryb podnoszenia przycisku |
Enabled |
M贸wi kompilatorowi, czy przycisk jest aktywny, czy nieaktywny |
Font |
S膮 to ustawienia dotycz膮ce wielko艣ci i rodzaju czcionki |
Height |
Jest to wysoko艣膰 przycisku |
HelpContextID |
- |
Index |
Jest to numer indeksu u偶ywany w tablicach kontrolek (aby rozr贸偶ni膰 poszczeg贸lne przyciski wtedy gdy maj膮 jednakowe nazwy) |
Left |
Odleg艂o艣膰 lewej kraw臋dzi przycisku od lewej kraw臋dzi okna |
MaskColor |
- |
MouseIcon |
Kursor myszy wy艣wietlany nad przyciskiem (dzia艂a tylko wtedy, gdy w艂a艣ciwo艣膰 MousePointer jest ustawiona na 99) |
MousePointer |
Rodzaje kursor贸w systemowych ukazuj膮cych si臋 po najechaniu na przycisk |
OleDropMode |
- |
Picture |
Obrazek wy艣wietlany na przycisku jako t艂o |
RightToLeft |
- |
Style |
Styl wy艣wietlania przycisku - standardowy lub graficzny |
TabIndex |
Numer przycisku okre艣laj膮cy kt贸ry w kolejno艣ci ma si臋 pod艣wietli膰 po wci艣ni臋ciu tabulatora (dzia艂a tylko wtedy, gdy w艂a艣ciwo艣膰 TabStop jest ustawiona na True) |
TabStop |
Okre艣la czy po naci艣ni臋ciu tabulatora przycisk ma si臋 pod艣wietla膰 |
Tag |
Jest to pewnego rodzaju zbiornik przechowuj膮cy dane |
ToolTipText |
Tekst wy艣wietlany pod wska藕nikiem myszy po najechaniu nad przycisk |
Top |
Jest to odleg艂o艣膰 g贸rnej kraw臋dzi przycisku od g贸rnej kraw臋dzi okna |
UseMaskColor |
- |
Visible |
Jest to w艂a艣ciwo艣膰 m贸wi膮ca kompilatorowi, czy przycisk ma by膰 widoczny, czy nie |
WhatsThisHelpID |
- |
Width |
Jest to szeroko艣膰 przycisku |
聽W艂a艣ciwo艣ci pozosta艂ych obiekt贸w b臋d膮 r贸偶ni艂y si臋 tylko kilkoma podpunktami, kt贸re opisz臋 w dalszych lekcjach, wi臋c nie ma sensu omawia膰 ich w nowych tabelach. A teraz zapraszam na dalsz膮 cz臋艣膰 kursu:
Lekcja2 - Pisanie kodu, obs艂uga menu i zmienne
Programowanie w j臋zyku Visual Basic nie jest tak trudn膮 rzecz膮 jak mog艂oby si臋 to wydawa膰. Jak sama nazwa wskazuje jest to j臋zyk 艂atwy (ang. Basic) a posiadaj膮cy du偶e mo偶liwo艣ci, co sprawia, 偶e praca z nim to prawdziwa przyjemno艣膰. Efekty uzyskiwane za pomoc膮 tego j臋zyka s膮 czasem naprawd臋 bardzo imponuj膮ce a zrobione z minimalnym nak艂adem pracy, przez co coraz wi臋cej ludzi i co najwa偶niejsze szk贸艂 decyduje si臋 na nauk臋 tego j臋zyka.聽
"Zmienne nastroje" - obs艂uga obiekt贸w poprzez kod
Aby nauczy膰 si臋 obs艂ugiwa膰 obiekty i kontrolki za pomoc膮 kodu, to nast臋pn膮 lekcj臋 zaczniemy od napisania prostego programu pt.: "Zmienne nastroje". B臋dziemy w niej klika膰 na kolejne przyciski patrz膮c jak zmienia si臋 nastr贸j pana Kowalskiego. Na pocz膮tku utw贸rz pust膮 form臋 i umie艣膰 na niej cztery przyciski wzd艂u偶 dolnej kraw臋dzi okna ( przyciski rozmieszcza si臋 trzymaj膮c wci艣ni臋ty na nich przycisk myszki i poruszaj膮c kursorem) oraz dwie kontrolki Label gdzie艣 mniej wi臋cej po 艣rodku. W oknie w艂a艣ciwo艣ci (Properties) ustaw nast臋puj膮ce w艂a艣ciwo艣ci obiekt贸w:
- |
Name |
Caption |
Visible |
Command1 |
cmdb藕le |
bardzo 藕le |
True |
Command2 |
cmd藕le |
藕le |
True |
Command3 |
cmddobrze |
dobrze |
True |
Command4 |
cmdbdobrze |
bardzo dobrze |
True |
Label1 |
lblcojest |
Dzi艣 s膮 urodziny Pana Kowalskiego i ... |
True |
Label2 |
lbldane |
Pan Kowalski czuje si臋 |
False |
Je艣li ju偶 wszystko zrobi艂e艣 jak nale偶y mo偶esz wzi膮膰 si臋 za pisanie kodu, kt贸ry b臋dzie wygl膮da艂 nast臋puj膮co ( oczywi艣cie kod wpisany pomi臋dzy Private Sub xxxxxx_Click() a End Sub jest to kod wywo艂any w wyniku klikni臋cia na przycisk i je艣li podczas tworzenia projektu dwukrotnie klikniemy na dany przycisk wystarczy, 偶e wstawimy kod zawarty pomi臋dzy tymi dwoma linijkami) :
Private Sub cmdbdobrze_Click()
lblcojest.Caption = lbldane.Caption & " " & cmdbdobrze.Caption & "."
End Sub
Private Sub cmddobrze_Click()
lblcojest.Caption = lbldane.Caption & " " & cmddobrze.Caption & "."
End Sub
Private Sub cmdwspaniale_Click()
lblcojest.Caption = lbldane.Caption & " " & cmdwspaniale.Caption & "!"
End Sub
Private Sub cmd藕le_Click()
lblcojest.Caption = lbldane.Caption & " " & cmd藕le.Caption & "!"
End Sub
聽Je艣li wpisa艂e艣 ju偶 ten kod, to mo偶esz wreszcie podziwia膰 wyniki swojej pracy i uruchomi膰 program (je艣li wyst膮pi jaki艣 b艂膮d przy pr贸bie uruchomienia , sprawd藕 czy nie pope艂ni艂e艣 偶adnego b艂臋du) . A teraz we藕my si臋 za om贸wienie kodu. Nie b臋d臋 omawia艂 zdarze艅 klikni臋cia ka偶dego z tych przycisk贸w, poniewa偶 je艣li dok艂adnie przejrza艂e艣 kod, to z pewno艣ci膮 zd膮偶y艂e艣 ju偶 zauwa偶y膰, 偶e we wszystkich przypadkach jest on podobny, r贸偶ni si臋 jedynie warto艣ciami. A teraz do dzie艂a (Jest to pierwsze zdarzenie, czyli klikni臋cie na przycisk cmdbdobrze):
lblcojest.Caption = - Pewnie ju偶 wiesz, 偶e lblcojest oznacza jakie艣 odwo艂anie do tej kontrolki, ale co mo偶e znaczy膰 ta kropka, a potem ten znak r贸wno艣ci? Ju偶 wszystko wyja艣niam - kropka oznacza, 偶e odwo艂ujesz si臋 do w艂a艣ciwo艣ci Caption kontrolki lblcojest, a dok艂adniej bior膮c pod uwag臋 jeszcze znak r贸wno艣ci na ko艅cu, to przypisujesz w艂a艣ciwo艣ci Caption kontrolki lblcojest warto艣膰 kt贸ra znajduje si臋 po znaku r贸wno艣ci. Chyba troch臋 to zawi艂e co? No ale niestety takie jest programowanie i nic na to nie zdo艂am poradzi膰, ale nie poddawaj si臋, przeczytaj to jeszcze raz i spr贸buj sam pobawi膰 si臋 w takie przypisywanie (Ach! bym nied艂ugo zapomnia艂 np. przypisuj膮c nag艂贸wkowi kontrolki jaki艣 tekst (nie nazw臋 innej kontrolki czy wcze艣niej zapisan膮 dan膮) pami臋taj o umieszczeniu go w cudzys艂owie np. Command1.Caption = "Dzi艣 jest 艂adna pogoda")
lbldane.Caption & " " - Je偶eli znajduje si臋 po np. lblcojest.Caption i聽 znaku r贸wno艣ci to zmienia warto艣膰 nag艂贸wka danej kontrolki na warto艣膰 nag艂贸wka lbldane i znak pustego miejsca ( Operator & s艂u偶y do 艂膮czenia 艂a艅cuch贸w np. je艣li mamy dane dwa 艂a艅cuchy "Piotr " i "pisze program" to po po艂膮czeniu ich operatorem & uzyskamy wynik "Piotr pisze program")
& cmdbdobrze.Caption & "." - To samo co poprzednio, tyle 偶e na ko艅cu zamiast znaku spacji dodaje wykrzyknik
I co chyba ta lekcja nie by艂a zbyt trudna? A mo偶e zastanawia ci臋 jeszcze dlaczego wszystkim przyciskom nadawa艂em nazwy zaczynaj膮ce si臋 od cmd, a wszystkim etykietom od lbl. Ot贸偶 jest to do艣膰 dobra zasada przyj臋ta przez programist贸w i stosowana na ca艂ym 艣wiecie. I cho膰 teraz wydaje ci si臋 ona zapewne bezsensowna to warto j膮 zacz膮膰 stosowa膰 ju偶 teraz poniewa偶 w dalszym stopniu zaawansowania bardzo si臋 ona przydaje. A teraz podam nazewnictwo innych podstawowych obiekt贸w Visual Basica:
Nazwa |
Skr贸t |
Nazwa |
Skr贸t |
PictureBox |
pic |
Timer |
tmr |
Label |
lbl |
DriveListBox |
drv |
TextBox |
txt |
DirListBox |
dir |
Frame |
frm |
FileListBox |
fil |
CommandButton |
cmd |
Shape |
shp |
CheckBox |
chk |
Line |
lin |
OptionButton |
opt |
Image |
img |
ComboBox |
cbo |
Data |
dat |
ListBox |
lst |
OLE |
ole |
HScrollBar |
hsb |
Form (forma) |
frm |
VScrollBar |
vsb |
Menu |
mnu |
聽
"Czas to pieni膮dz, a pieni膮dz to czas" - tworzenie i obs艂uga menu
A teraz aby przybli偶y膰 wam obs艂ug臋 menu (tak, to w艂a艣nie to menu kt贸re znajduje si臋 u g贸ry okna i przewa偶nie widnieje tam kilka napis贸w jak File ( Plik ) i Edit ( Edycja ) ) zajmiemy si臋 tworzeniem programiku "Czas to pieni膮dz, a pieni膮dz to czas". Stworzymy w nim ma艂e menu za pomoc膮 kt贸rego dowiemy si臋 kt贸ra jest godzina, no i mo偶e jaka jest data. Na pocz膮tku tak jak zwykle trzeba stworzy膰 nowy projekt i doda膰 do niego kilka obiekt贸w. Teraz b臋dzie to tylko Timer s艂u偶膮cy do wyznaczania czasu i kontrolka Label ( Timerowi nadaj w艂a艣ciwo艣膰 Enabled na False, Interval 1000,聽 nazw臋 tmrczas, a Labelce nazw臋 lblpokaz i etykiet臋 Poka偶 czas). Aby doda膰 do programu rozwijalne menu wci艣nij jednocze艣nie Ctrl i E (no zawsze mo偶esz wcisn膮膰 najpierw Ctrl) lub klikaj膮c prawym klawiszem myszki na projekcie wybierz polecenie Menu Editor... . Zapewne ukaza艂o ci si臋 fajne okienko, ale co z nim zrobi膰. Najpierw dodamy menu g艂贸wne. W tym celu w polu Caption wpisz Menu kontroli wy艣wietlacza, a w menu name mnukontrol. Teraz nasza nowopowsta艂a pozycja powinna pojawi膰 si臋 w li艣cie. Aby doda膰 nast臋pne podmenu kliknij przycisk Next i spo艣r贸d czterech strza艂ek, t膮 skierowan膮 w prawo. W pole Caption wpisz Poka偶 czas, a w pole name mnuczas. Aby doda膰 now膮 pozycj臋 oddzielaj膮c膮 czas od daty (odseparowa膰 je) stw贸rz now膮 pozycj臋 (kliknij Next) w pole Caption wpisz -, a w pole Name mnusep. No w ko艅cu ostatnia pozycja. Kliknij Next, W polu Caption wpisz Poka偶 dat臋, a w polu Name mnudata. Wreszcie mo偶esz klikn膮膰 OK i zobaczy膰 swoje menu na 偶ywo. Teraz nadszed艂 czas na dodanie kodu. B臋dzie on wygl膮da艂 nast臋puj膮co:
Private Sub mnuczas_Click()
tmrczas.Enabled = True
lblpokaz.Caption = Time
End Sub
Private Sub mnudata_Click()
tmrczas.Enabled = False
lblpokaz.Caption = Date
End Sub
Private Sub tmrczas_Timer()
lblpokaz.Caption = Time
End Sub
No a teraz nadszed艂 czas na om贸wienie kodu:
tmrczas.Enabled = True - Za pomoc膮 tego polecenia uruchamiamy Timer (tak jak w oknie properties), oznacza to, 偶e Timer b臋dzie wykonywa艂 dane zadanie co taki czas jaki ustawili艣my we w艂a艣ciwo艣ci Interval, czyli w tym przypadku co sekund臋 ( we w艂a艣ciwo艣ci Interval ustawiamy czas z dok艂adno艣ci膮 do 1/1000 sekundy st膮d ta jednostka 1000, cho膰 nie wiem po co zastosowano tak膮 du偶膮 liczb臋 poniewa偶 najmniejszy odst臋p czasu jaki tam mo偶na uzyska膰 to 55/1000 sekundy)
lblpokaz.Caption = Time - Tak jak ju偶 wcze艣niej by艂a ju偶 o tym mowa przypisujemy kontrolce lblpokaz jak膮艣 nazw臋, tylko 偶e tym razem jest to Time ( z ang. czas - jest to wewn臋trzne polecenie Visual Basica wywo艂uj膮ce aktualny czas)
tmrczas.Enabled = False - wy艂膮cza Timer ( przestaje pokazywa膰 czas)
lblpokaz.Caption = Date - Wy艣wietla aktualn膮 dat臋 ( z ang. polecenie Date - data)
lblpokaz.Caption = Time - Wy艣wietla czas w kontrolce lblpokaz tylko, 偶e to zdarzenie znajduje sie teraz w Timerze i wykonywane jest co sekund臋聽
"Pami臋tnik" - Co to jest i do czego s艂u偶膮 zmienne
Zmienna - jest tymczasowym miejscem przechowywania danych w programie, kt贸ra mo偶e zawiera膰 wyrazy lub liczby. Aby przybli偶y膰 ci dzia艂anie zmiennych napiszemy kr贸tki programik o nazwie "Pami臋tnik". Do zrobienia tego programu b臋dzie nam potrzebna kontrolka TextBox i dwa przyciski CommandButton. Ustaw w艂a艣ciwo艣ci obiekt贸w, tak jak pokazano w tabelce:
Obiekt |
Name |
Caption |
Text |
Multiline |
Text1 |
txtmemo |
- |
(puste) |
True |
Command1 |
cmdzap |
Zapami臋taj |
- |
- |
Command2 |
cmdpod |
Podaj |
- |
- |
A teraz nadszed艂 czas na kod. Oto on:
Dim dane As String
Private Sub cmdpodaj_Click()
txtmemo.Text = dane
End Sub
Private Sub cmdzap_Click()
dane = txtmemo.Text
txtmemo.Text = ""
End Sub
No i co jest co:
Dim dane As String - Jest to zadeklarowana zmienna dane typu String
txtmemo.text = dane - przypisuje polu tekstowemu txtmemo tekst ze zmiennej
dane = txtmemo.Text - przypisuje zmiennej tekst z pola tekstowego
txtmemo.Text = "" - czy艣ci pole tekstowe
Opr贸cz typu String mamy jeszcze inne typy danych, kt贸re mo偶emy zadeklarowa膰 w swoim programie. A oto one:
Typ danych |
Rozmiar |
Zastosowanie |
Integer |
2 bajty |
do przechowywania liczb |
Long Integer |
4 bajty |
do liczb |
Single |
4 bajt贸w |
do liczb |
Double |
8 bajt贸w |
do liczb |
Currency |
8 bajt贸w |
do liczb (pieni臋dzy) |
String |
1 bajt na 1 znak |
do znak贸w |
Boolean |
2 bajty |
Warto艣膰 logiczna (True lub False) |
Date |
8 bajt贸w |
do przechowywania daty |
Variant |
16 bajt贸w (dla liczb); 22bajty + 1 bajt na jeden znak (dla 艂a艅cuch贸w) |
Do wszystkiego |
No, to ju偶 chyba b臋dzie na tyle do tej lekcji. Teraz zapraszam do nast臋pnej w kt贸rej nauczymy si臋 obs艂ugiwa膰 instrukcje warunkowe i p臋tle.
Lekcja3 - Instrukcje warunkowe i p臋tle
Instrukcje warunkowe nie s膮 trudn膮 rzecz膮, cho膰 s膮 bardzo cz臋sto u偶ywane i je艣li masz zamiar dalej programowa膰 w Visual Basicu to ta lekcja b臋dzie dla ciebie bardzo wa偶na. Na instrukcje warunkowe natkniesz si臋 jeszcze prawdopodobnie wiele razy, wiec postaraj si臋 zapami臋ta膰 jak najwi臋cej z tego dzia艂u.
"Jakie znaki w czcionce?" - Poznajemy obs艂ug臋 p臋tli
Tym razem nasz膮 lekcj臋 rozpoczniemy inaczej ni偶 zwykle, bo bez przyk艂adu. Na pocz膮tku om贸wimy dzia艂anie p臋tli For...Next, a dopiero potem napiszemy programik wykorzystuj膮cy t膮 nowo odkryt膮 przez nas technik臋. A wi臋c dzia艂anie p臋tli sprowadza si臋 do wielokrotnego wykonywania tej samej lub r贸偶ni膮cej si臋 pod ustalonym wzgl臋dem czynno艣ci. Je艣li mia艂bym poda膰 "przepis" na p臋tl臋, napisa艂 bym tak (wyrazy zaznaczone na niebiesko, to s艂owa kluczowe p臋tli):
For licznik = start To stop [Step krok]
聽聽聽 Instrukcje
Next [licznik]
A teraz co jest co:
For - jak ju偶 wcze艣niej m贸wi艂em jest to s艂owo kluczowe i reprezentuje ono pocz膮tek p臋tli (ang. for - dla)
licznik - zmienna zdefiniowana przez u偶ytkownika, u偶ywana przez p臋tl臋 jako licznik
start - liczba od kt贸rej zaczyna si臋 p臋ta
To - s艂owo kluczowe oddzielaj膮ce start od stop (ang. to - do)
stop - liczba, po osi膮gni臋ciu kt贸rej liczba si臋 zatrzymuje
Step - Jest to opcjonalne s艂owo kluczowe sygnalizuj膮ce istnienie kroku (normalnie p臋tla co jedn膮 kolejk臋 dodaje do licznika jeden, a je艣li po s艂owie step postawimy np. 5, to b臋dzie za ka偶dym razem dodawa艂a 5)
krok - wyznacza krok zmiany (kok mo偶e by膰 ujemny)
Next - s艂owo kluczowe zamykaj膮ce p臋tl臋
licznik - identyfikuje, kt贸ry licznik ma by膰 zmieniany przez s艂owo kluczowe Next (argument nieobowi膮zkowy i rzadko stosowany)
Teraz om贸wi臋 drugi rodzaj p臋tli, a mianowicie p臋tl臋 Do...Loop. Jej sk艂adnia wygl膮da nast臋puj膮co:
Do While (lub Until) warunek
聽聽聽 Instrukcje
Loop聽
Jak widzisz ta p臋tla jest troch臋 kr贸tsza, ale dzia艂a tak偶e na troch臋 innych zasadach, poniewa偶 wykonuje jak膮艣 czynno艣膰 a偶 si臋 co艣 nie stanie, a tamta odlicza艂a po kolei liczby. A teraz om贸wmy po kolei ka偶d膮 jej cze艣膰:
Do - s艂owo kluczowe 艣wiadcz膮ce o rozpocz臋ciu p臋tli
While - s艂owo kluczowe m贸wi膮ce o tym, jakiego rodzaju p臋tli u偶ywamy ( p臋tla wykonuje czynno艣膰 dop贸ki warunek jest prawdziwy np. x = 20;聽 x <30)聽
Until - s艂owo kluczowe m贸wi膮ce o tym, jakiego rodzaju p臋tli u偶ywamy ( p臋tla wykonuje czynno艣膰 dop贸ki warunek nie zostanie spe艂niony np. x = 20; x>30)聽
聽Loop - s艂owo kluczowe oznaczaj膮ce koniec p臋tli
No i wreszcie mo偶emy wzi膮膰 si臋 za program. B臋dzie on nosi艂 nazw臋 "Jakie znaki w czcionce". Stw贸rz nowy projekt w 艣rodowisku Visual Basic, dodaj do niego jeden przycisk i jedn膮 kontrolk臋 ListBox. Rozmie艣膰 nowopowsta艂e obiekty, tak aby lista zajmowa艂a prawie ca艂e okno, a przycisk zajmowa艂 w膮ski pasek wzd艂u偶 dolnej kraw臋dzi. Ustaw w艂a艣ciwo艣ci obiekt贸w tak jak pokazano w tabeli:
Obiekt |
Name |
Caption |
List |
Columns |
Command1 |
cmdgen |
Generuj |
- |
- |
List1 |
lstznaki |
- |
(puste) |
5 |
A teraz kod. Wpisz go w zdarzenie Click Przycisku cmdgen:
For i = 1 To 255
lstznaki.AddItem i & " - " & Chr(i)
Next
No i nadesz艂a pora na om贸wienie tego przyk艂adu:
For i = 1 To 255 - Jest to typowa p臋tla, kt贸ra odlicza nam od 1 do 255 co da nam w sumie 255 krotne wykonanie instrukcji znajduj膮cej si臋 w tej p臋tli ( dlaczego 255 - bo w ka偶dej czcionce jest 255 znak贸w i o to nam chodzi艂o)
lstznaki.AddItem - dodaje now膮 pozycj臋 do listy o nazwie, kt贸ra znajduje si臋 za tym poleceniem
i & " - " & Chr(i) - jest to nazwa nowej pozycji ( i - jest to numer aktualnie wykonywanej p臋tli; " - " - jest to po prostu my艣lnik; Chr(i) - to jest zapewne dla ciebie nowo艣膰, ale tak w Visual Basicu wyci膮ga si臋 litery ze znak贸w ASCII, wi臋c ten znak oznacza liter臋 ASCII numeru aktualnie wykonywanej p臋tli)
"Gdzie jeste艣" - Poznajemy instrukcje warunkowe, ich dzia艂anie i聽 zastosowanie
I oto nast臋pny dzia艂, kt贸ry zaczniemy bez przyk艂adu. B臋dziemy omawia膰 tutaj instrukcje warunkowe. Je艣li kto艣 ucz臋szcza艂 kiedy艣 na lekcje j臋zyka angielskiego i przerabia艂 na nich Conditionale to zapewne ten dzia艂 wyda mu si臋 znajomy, poniewa偶 wszystkie Conditionale (te z lekcji j臋zyka angielskiego i te w Visual Basicu) maj膮 ze sob膮 wiele wsp贸lnego. W naszym j臋zyku programowania mamy dwa rodzaje instrukcji warunkowych If...Then i Select Case. Na pocz膮tku zajmiemy si臋 t膮 pierwsz膮, zapewne cz臋艣ciej u偶ywan膮 przez programist贸w i podobn膮 do Conditionali. Instrukcj臋 t膮 mo偶na wykonywa膰 na kilka sposob贸w. Pierwszy z nich jest jednolinijkowy i u偶ywany do wykonania tylko jednej czynno艣ci. A oto sk艂adnia tej instrukcji:
If warunek Then polecenie
Gdzie:
If - jest s艂owem kluczowym zaczynaj膮cym instrukcj臋 warunkow膮
warunek - jest to warunek do spe艂nienia ( np. czy dana zmienna jest taka sama jak inna lub ma warto艣膰 True lub False)
Then - s艂owo kluczowe m贸wi膮ce co ma wykona膰 p臋tla (w poleceniu)聽 kiedy warunek b臋dzie prawdziwy
聽Drugi to wykonywanie kilku polece艅 w jednej instrukcji warunkowej:
If warunek Then
Polecenie1
Polecenie2
........
End If
Gdzie wszystkie oznaczenia s膮 takie same jak poprzednio, tyle 偶e na ko艅cu dodajemy End If (konieczne!)
Trzeci ju偶 ostatni przypadek, to taki w kt贸rym mamy do spe艂nienia kilka warunk贸w np.
If warunek1 Then
Instrukcje wykonywane gdy spe艂niony jest warunek pierwszy
ElseIf warunek2 Then
Instrukcje wykonywane gdy nie zosta艂 spe艂niony warunek pierwszy, ale jest spe艂niony warunek drugi
Else
Instrukcje wykonywane, gdy nie zosta艂 spe艂niony 偶aden z powy偶szych warunk贸w
End If
No i nie ma w zasadzie ju偶 tu czego t艂umaczy膰, poniewa偶 wszystko zosta艂o opisane ju偶 wcze艣niej.聽聽
No teraz zajmiemy si臋 drugim rodzajem instrukcji warunkowych, a mianowicie Select...Case. Jest ona podobna do serii instrukcji If...Then. Nast臋puj膮ce linijki ukazuj膮 spos贸b jej u偶ycia:
Select聽 Case Jaka艣Warto艣膰
聽聽聽 Case Warto艣c1
聽聽聽 Instrukcja1
聽聽聽 Case Warto艣膰2
聽聽聽 Instrukcja2
End Select
A teraz om贸wmy co jest co:
Select Case - to s艂owo kluczowe oznaczaj膮ce pocz膮tek instrukcji
Jaka艣Warto艣膰 - Jest to warto艣膰聽 sprawdzana w instrukcji
Case - nast臋pne s艂owo kluczowe sprawdzaj膮ce dan膮 warto艣膰
Warto艣膰1 - jest to sprawdzana warto艣膰 Jaka艣Warto艣膰, je艣li si臋 sprawdzi, to zostanie wykonana Instrukcja1
End Select - s艂owo kluczowe oznaczaj膮ce koniec instrukcji (wyboru)
No i wreszcie nadszed艂 czas na napisanie przyk艂adu z u偶ycie instrukcji warunkowych. B臋dzie to program pt. "Gdzie jeste艣". W programie b臋dziemy przesuwali myszk臋 nad formatk膮, a oczy b臋d膮 si臋 za nami rozgl膮da艂y (tak, tak ten program b臋dzie wymaga艂 od nas narysowania czterech par oczu - jednych skierowanych w d贸艂, jednych w g贸r臋, jednych w lewo i jeszcze jednych w prawo). Na pocz膮tku stw贸rz now膮, du偶膮 formatk臋, na kt贸rej umie艣膰 pi臋膰 obiekt贸w Image a w nich swoje rysunki. Nazwij je kolejno imgup ( oczy skierowane w g贸r臋 ), imgdown ( oczy skierowane w d贸艂 ), imgleft ( oczy skierowane w lewo ), imgright (oczy skierowane w prawo ) i imgcenter (pusty). Wszystkim opr贸cz ostatniego nadaj w艂a艣ciwo艣膰 Visible na False, a tego kt贸rego zostawi艂e艣 umie艣膰 w samym 艣rodku formatki. Teraz nadszed艂 czas na napisanie kodu. Kliknij dwukrotnie na formatk臋. Poka偶e ci si臋 bia艂e pole do edycji tekstu ze zdarzeniem FormLoad Formatki, ale dzisiaj nie b臋dziemy z niego korzysta膰. U g贸ry okna edycji widoczne s膮 dwie rozwijalne listy ( Object i Procedure ). Rozwi艅 teraz t膮 po prawej ( Procedure) i z menu wybierz zdarzenie MouseMove. W polu edycji Visual Basic automatycznie zadeklaruje potrzebne nam zdarzenie, a nam zosta艂o ju偶 tylko wpisa膰 kod. B臋dzie on wygl膮da艂 nast臋puj膮co ( pami臋taj 偶e masz go wpisa膰 w linijk臋 pomi臋dzy Private Sub a End Sub nowopowsta艂ego zdarzenia MouseMove):
If Y < imgcenter.Top And X > imgcenter.Left And X < imgcenter.Left + imgcenter.Width Then
imgcenter.Picture = imgup.Picture
ElseIf Y > imgcenter.Top And X > imgcenter.Left And X < imgcenter.Left + imgcenter.Width Then
imgcenter.Picture = imgdown.Picture
ElseIf X < imgcenter.Left Then
imgcenter.Picture = imgleft.Picture
ElseIf X > imgcenter.Left Then
imgcenter.Picture = imgright.Picture
End If
A teraz po kolei om贸wmy ka偶d膮 linijk臋 kodu:
If Y < imgcenter.Top And X > imgcenter.Left And X < imgcenter.Left + imgcenter.Width Then - jest to najzwyklejsza w 艣wiecie instrukcja warunkowa. Mo偶e ci臋 jedynie dziwi膰 sk膮d si臋 bior膮 te Y i X. Ot贸偶 s膮 zmienne zadeklarowane automatycznie w naszej procedurze, wskazuj膮 one aktualne po艂o偶enie kursora myszki nad form膮. Gdyby przet艂umaczy膰 t膮 linijk臋 na polski, to wygl膮da艂aby ona mniej wi臋cej tak: Je艣li Y jest mniejsze od g贸rnej kraw臋dzi obiektu imgcenter i X jest wi臋ksze od lewej kraw臋dzi imgcenter i X jest mniejsze od lewej kraw臋dzi plus d艂ugo艣ci imgcenter to...
聽imgcenter.Picture = imgup.Picture - przypisuje w艂a艣ciwo艣ci Picture obiektu imgcenter w艂a艣ciwo艣膰 Picture obiektu imgup ( czyli inaczej m贸wi膮c imgcenter pobiera obrazek od imgup
Nast臋pne linijki s膮 podobne do poprzednich wi臋c mam nadziej臋, 偶e sobie sam z nimi poradzisz.
No i to ju偶 chyba b臋dzie na tyle naszego kursu. Mam nadziej臋, 偶e przyniesie on jaki艣 po偶ytek i niejednej osobie przybli偶y programowanie, a w szczeg贸lno艣ci Visual Basic. 呕ycz臋 przyjemnej zabawy!聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Piotr Ska艂ecki聽-http://peterek15.republika.pl