U Visual Basic 6 programu je moguće predvidjeti nastanak greške (pogrešnu akciju korisnika, greška u sistemskim resursima i sl.) i spriječiti 'pad' programa 'lovljenjem' te greške i izvođenjem odgovarajuće akcije, odnosno davanjem mogućnosti korisniku da izvede akciju za rješavanje nastale situacije i nastavak rada. Da bi se to postiglo, koristi se sljedeće:
Ispred linije u kojoj se očekuje da bi mogla nastati greška upisati sljedeći kod:
On Error GoTo greska
Riječ greska, koju sam ja izabrao, birate po volji. To je samo oznaka linije koja je zadužena za obradu te greške.
U slučaju pojave greške fokus se prebacije na liniju na kraju procedure koja počinje sa greska.
Učenje programiranja zahtijeva puno truda i vremena, a kreiranje funkcionalnog i intuitivnog programa još više. Još ako, u toku projektovanja neke aplikacije morate tražiti i učiti sintaksu naredbi, onda nećete daleko stići. Da ne bih svaki put ponovo tražio neke sintakse i metode koje sam otkrio, smislio ili pronašao tokom programranja u Visual Basic 6, ja sam sve zapisivao u jedan word dokument koji sam nazvao VB6 tips. Tog materijala se, tokom godina, nabralo više od 70 stranica.
Ta iskustva, skupljena u PDF dokument od 77 stranica možete preuzeti u sekciji Poseban download u dokumentu Visual Basic 6 programiranje - primjeri, savjeti i trikovi. U dokumentu su sintakse Visual Basic 6 naredbi, metode programiranja, primjeri i savjeti koji su rezutat direktnog rada a ne teoretisanja ili kopiranja sa interneta. Svi primjeri su iz stvarnih projekata i mogu se direktno kopirati i primijeniti u drugim projektima.
Ako se pri pokretanju Project\References... javi greška Can't access the system registry i nije moguće pristupiti referencama u VB-u, onda pokrenuti Registry Monitor (RegMon.exe) (iz sysinternals suite) i postaviti filter da prikazuje samo stavke od VB6.exe (include: VB6.exe).
Nakon toga pokrenuti Visual Basic 6 i u Registry Monitor-u pogledati kojem registy ključu VB6.exe nije mogao pristupiti – access denied.
U ovom slučaju je to:
OpenKey HKCR\TypeLib\{D8468700-DD70-4E4D-B03D-BAD2551CFDD7} ACCESS DENIED
Ako pri pokretanju programa iz Visual basic editora "iskoči" greška da nije pronađena library CurDir onda znači da nedostaje neka od referenci. Treba izabrati Project\References...
U novodobijenom prozoru će biti prikazane uključene reference (sa kvakicama). Ispred neke od uključenih referenci će biti ispisano MISSING. Potrebno je isključiti tu referencu da bi se program mogao pokrenuti.
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Dim file As String, greska As Variant
Nakon toga, pozivanje funkcije se vrši navođenjem cijele putanje do file-a koji se pokreće kao argumenta funkcije ShellExecute:
'otvaranje file-a
greska = ShellExecute(frmopen.hwnd, "open", file, "", "", 1) 'praćenje greške
shellgreske greska
Ako je potre
bno definisati vlastiti tip podataka sa određenim vrijednostima koje Visual Basic ponudi nakon upisa imena tipa podatka i znaka jednako (=), slika ispod, potrebno je deklarisati ENUM tip podataka.
Za dobijanje trenutnog datuma u Visual Basic 6 programu potrebno je koristiti funkciju Date. Ova funkcija daje trenutni datum i može se koristiti kao uprimjeru ispod:
datum=Date
Time se u varijablu datum smiješta vrijednost trenutnog datuma.
Za prikaz datuma u željenom formatu koristiti funkciju Format:
Format (date, "dd/mm/yyyy")
U ovom primjeru je izvršeno formatiranje datuma u formatu npr. 27/07/2004.
CASE naredba služi za usmjeravanje toka izvršavanja programa na osnovu vrijednosti varijable ili izraza.
U sljedećem primjeru se na osnovu vrijednosti varijable MjesecS, koja predstavlja redni broj mjeseca, varijabli MjesecL dodjeljuje naziv mjeseca.
Ako je potrebno iz programa simulirati pritisak na neku tipku sa tastature, koristi se funkcija SendKeys ("^{END}"), True
U tabeli su navedene tipke na tastaturi i kodovi koji se koriste u funkciji sendkeys:
Ako se text box koristi za unos password-a moguće je izvršiti maskiranje unesenih znakova, tj. zamjenu ukucanog znaka željenim znakom. Potrebno je za text box u svojstvo PasswordChar upisati znak koji će biti korišten kao zamjenski, npr. *
Sada će pri upisu teksta u text box biti prikazane samo zvjezdice.
Da bi se izvršila zabrana upisa određenog znaka u text box potrebno je pratiti pritisak tipke na tastaturi i to kroz proceduru txtime_KeyPress. Ako je detektovan zabranjen znak onda se ASCII vrijednost postavlja na nulu.
Na primjeru je zabrana upisa svih znakova osim cifara 0-9 i tipki Del i Backspace.
Private Sub txtime_KeyPress(KeyAscii As Integer)
If KeyAscii >47 And KeyAscii <58 or KeyAscii=127 Or KeyAscii=8 Then
Else
KeyAscii=0
Beep
End if
End Sub
Moguće je umjesto ASCII koda za neki znak koristiti funkciju Asc ali je tada moguće samo pisati uslove sa = kao u primjeru:
Private Sub txtime_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc(".") Then
MsgBox "Unos decimalnog broja nije dozvoljen.", vbOKOnly + vbInformation, "Poruka."
End If
End Sub
