PROGRAM PORUKA
'Prefixi u Visual Basicu
'
'Form----------Forma--------------frm
'Check box-------KOntrolni okvir-----chk
'Combo box ------Povezani okvir-----cbo
'Command button---Gumb naredbe------cmd
'Data-------------Baza podataka------dat
'Directory list box-----Okvir liste imenika--dir
'Drive list box-----Okvir liste jedinica----drv
'File list box------Okvir liste datoteka----fil
'Frame -------Okvir-------------------fra
'Grid---------Rešetka-----------------grd
'Horizontal scroll bar----Vodorav.linija pomicanja---hsb
'Image ------Slika-----------img
'Label---------Oznaka---------Ibl
'Line-------Crta----------lin
'List box--------Okvir liste--------Ist
'Menu------Izbornik-----------mnu
'OLE---------OLE-----------ole
'Option button------Izborni gumb---------opt
'Picture box--------Okvir ctreža--------pic
'Shape-------Oblik----------shp
'Text box--------Okvir texta--------txt
'Timer------Kontrola vremena--------tmr
'Vertical scroll bar-----Okomita linija pomicanja---vsb

'Pravila
'Ime mora početi slovom
'Ime može imati do 40 znakova

'Objekt u žarištu
'Got fokus-----Objekt u žarištu (samo ako su vrijednosti
'njegovih svojstava Enabled = odgovara na događaj uzrokovan
'djelovanjem korisnika) i Visible mora biti na True(određuje
'da li je objekt vidljiv na ekranu)

'Lost fokus----- Objekt van žarišta
'If typeOf Screen.ActiveControl Is txtPoruka Then
' .
' .
'End If-------Ova tri gornja reda provjeravaju je li objekt txtPoruka u žarištu
'Gumb naredbe
'Value mora biti an True = pritisak na Enter, gumb je odabran čak ako je žarište na drugoj kontroli
'Cancel na True = Pritisak an Esc isto kao u gornjem redu
'Oznaka texta
'Ako je vrijednost Border Style = 1 oznaka je uokvirena
'Ako Auto Size = True (oznaka raste vodoravno)
'Ako WordWrap = True (oznaka raste okomito)
'WordWrap je djelatan samo ako je Auto Size na True
'Okvir texta
'MultiLine =True (Okvir texta može prihvatiti više redova ako je vodoravna linija pomicanja na 0-None)
'Primjer ograničenog upisa samo velikih slova
'Sub txtVelikaSlova-Ke-Press (KeyAscii As Integer)
'If KeyAscii < Asci("A") Or KeyAscii > Asc("Z") Then
'KeyAscii = 0 'poništavanje znaka
'Beep 'zvučni signal greške
'End If
'End Sub
'Izborni bumbi
'Value = True (Ako želimo da neki izborni gumb bude difoltno označen)
'primjer-------optLjeto.value = True
'Enabled = False (Ako hoću da mi izborni gumb bude nedostupan)
________________________________________________________________________________________ 'Program izbor
'Chr(13) = oznaka za prelazak u novi red
'Padajući okvir
'Style = 0 (Ušteda an prostoru)
'Jednostavni povezani okvir
'Style = 1 (Lista je uvijek prikazana,a ako ne autoamtski se dodaje okom. lin. pomic.)
'Padajući okvir liste
'Style = 2 (gornji red nije prikazan)
'Za prvi i drugi okvir primjer prikaza gornjeg reda
'cmbJadran.Text = cmbJadran.List(0) 'Samo za stil 1 i 2
'Dodavanje elemenata na listu
'okvir.AddItem element (Index)
'Uklanjanje elemenata s liste
'okvir.Removeltem indeks
'IstList.Clear 'Brisanje svih elemenata liste
'Postavljanje elemenata na listu koja se zove ist.list i sortiranje
'Sorted mora biti na True
'Sub Form_Load ()
'IstList1.AddItem "W.A.Mozart"
'IstList1AddItem "J.S.Bach"
'IstList.AddItem "L.Beethoven"
'IstList.AddItem "R.Wagner"
'End Sub
' Sadržaj liste
'Sadržaj liste ako se označi Mozart
'Sub IstList1_Click ()
'If IstList.Text = "W.A.Mozart" Then
'txtText1.Text = "Austrijski skladatelj (1756-1791)"
'End If
'End Sub
'Svojstvo List omogućava pristup do svih elemen. liste
'okvir.List(Indeks)
'Argument okvir je okvir liste ili povezani okvir, a index je položaj elenmenta
'Prvi element ima indeks 0, sljedeći 1 i tako dalje
'Primjer trećeg elementa liste-----txtText1.Text = IstList1.List(2)
----------------------------------------------------------------------------------------------------------------------------------------------------------
'Program boje
'Svaki izbornik može imati najviše 4 podizbornika
'Insert se koristi ako se ubacuje u već postojeći izbornik
'Prečice do naredbe se koriste iz Meni designe pod Scorcut meni
'Nedostupni elementi izbornika
'Enabled = True 'za vrijeme izvršenja izbornik dostupan
'Enabled = False ' nedostupan, primjer:
'mnuBoje.Enabled = False 'nedostupan cijeli izbornik
'mnuPlava.Enabled = False 'nedostupan izbornik plave boje

'Nevidljivi elementi izbornika
'U prozoru Meni Design isključiti visible
'ili programski------mnuCrvena.Visible = True 'nevidljiv element izbornika
'nakon što je nevidljiv on nestaje a ostali se pomiču prema gore
'Postavljanje kvačice
'U prozoru Meni Design uključiti checked
'programski-------mnuCrvena.Checked = True' Kvačica uz element izbornika
'mnubijela.Checked = False 'Uklanja kvačicu sa bijele boje
---------------------------------------------------------------------------------------------------------------------------------------------------------
'Program dijalog
'Koristimo: InputBox fujkciju----Prikaz teksta u okviru dijaloga
'MsgBox naredbu-----Prikaz poruke u okviru dijaloga
'MsgBox funkciju-----Prikaz poruke u okviru dijaloga
'Primjer: MsgBox "Stavite disketu u disketnu jedinicu", 48, "Upozorenje"
'Naredba MsgBox ima tri parametra:
'Poruku koja će se prikazati
'tip dijaloga(cijeli broj)
'naziv dijaloga(niz znakova)
'funkcija MsgBox ima tri argumenta kao i naredba s tim što vraća vrijednost
'ona ukazuje koji gumb je korisnik odabrao
'ako je korisnik odabrao Yes ,odgovor je 6(konstanta IDYES definirana u
'području deklaracije forme i program završava naredbom END
'Konstante kada varijablom TipDijaloga kažemo koji gumbi idu
'Konstanta: Vrijednost: Prikazani gumbi

'MB_OK o OK
'MB_OKCANCEL 1 OK, Cancel
'MB_ABORTRETRYIGNORE 2 Abort,Retry, Ignore
'MB_YESNOCANCEL 3 Yes, No Cancel
'MB_YESNO 4 Yes, No
'MB_RETRYCANCEL 5 Retry,Cancel

'KOnstanta: Vrijednost: Prikazana ikona

' MB_ICONSTOP 16 Znak stop
'MB_ICONQUESTION 32 Upitnik
'MB_ICONEXCLAMATION 48 Uskličnik
'MB_ICONINFORMATION 64 Obavijest

'Konstante koje vraća funkcija MsgBox
'Konstanta: Vrijednost: Odabrani gumb:

'IDOK 1 OK
'IDCANCEL 2 Cancel
'IDABORT 3 Abort
'IDRETRY 4 Retry
'IDIGNORE 5 Ignore
'IDYES 6 Yes
'IDNO 7 No

'InputBox
'Prvi argument funkcije inputBox je poruka u okviru dijaloga
'drugi argument funkcije je naslov okvira dijaloga_---Primjer:
'Grad = InputBox (Naziv grada:", "InputBox funkcija")
___________________________________________________________________________________
Program Upis
'Okvir dijaloga
'Border style 1 Rub postaje čvrst i sprečava promjenu
'ControlBox False Uklanja okvir u gornjem lijevom kutu
'MaxButton False Uklanja povećanje
'MinButton False Uklanja minimize

'Ako se ukloni (ControlBox = False) mora se omogućiti izlazak iz programa

______________________________________________________________________________________
'Program Zajedno
'comonBox ili zajednički okvir dijaloga: open, save as, Print, color i font
'Koji okvir ćemo koristiti određuje svojstvo Action

'Action Prikaz dijaloga
'0 Nema prikaza
'1 Open
'2 Save As
'3 Color
'4 Font
'5 Print
'6 Poziv Winhelp.exe

'Primjer za font: CMDialog1.Action = 4
'Filter

'Filtrira koje će datoteke biti prikazane
'Primjer: CMDialog1.Filter = "Sve datoteke (*.*)

'Kada je vrijednost svojstva CancelError = True, a stisnem Cancel bude greška
'To omogućava pisanje dijela koji to hvata(npr. On Error GoTo BojaGreska)

'Okvir dijaloga Font
'Sličan je postupku dijaloga open osim što treba postaviti:
'Flags = &H1&(ekranski fontovi),&H2&(fontovi pisača) ili &H3&(oboje)
'primjer: CMDialog1.Flags = &H3&
'Okvir dijaloga Print
'Broj kopija(svojstvo Copies)
'Početak ispisa(FromPage)
'Stranicu završetka ispisa(ToPage)
'Obično se navede uz CMDialog51.Action = 5 i CMDialog.1.CancelError = True i
'On Error Go To ObradaGreske tako da se iza ObradaGreske može napisati dio koda -
'koji je aktivan kada se pritisne gumb Cancel
'Procedure
'Procedure mogu biti potprogami (Sub) ili funkcije (funkcion procedure)

'Potprogrami
'Sintaksa potprograma:
'Sub Ime potprograma (Lista Argumenata)
'naredbe
'End Sub

'Lista argumenata je lista imena arg. međus. odvojenih zarezima
'Svaki argument je deklaracija varijable
'Sintaksa argumenta:
'ByVal ime variable () As tip
'Ako tip izostavimo , argument je tipa Variant
'Tip može biti:Integer, Long, Single, Double, Currency ili String

'Definiran je potprogram MnoziS ovako:
'Sub Mnozis (a%, B%, Rez&)
'Rez& = a% * b%
'End Sub
'Onda se ona poziva ovako:
'MnoziS 7,4,UmnozakS&
'Nakon poziva potprograma varijabla UmnozakS& sadrži broj 28
'Funkcija
'Funkciji se predaje jedna ili više vrijednosti (argumenata) a ona vraća jednu

'Sintaksa funkcije:
'Function ImeFunkcije (ListaArgumenata) As Tip
'naredbe
'ImeFunkcije=rezultat
'End Funkction

'Primjer Funkcije:
'Function MnoziF& (a%, b%)
'MnoziF& = a% * b%
'End Function

'Poziv funkcije
'UmnozakF& = MnoziF&(7,4)

'Primjer funkcije koja oblik datuma mm-dd-gggg pretvara u dd.mm.gggg
'Function HrDatum&(D$)
'HrDatum& = Mi$(D$, 4, 2) + "." + Left$(D$, 2) + "." + Right$(D$, 4)
'End Function

'Poziv funkcije:
'B$=HrDatum$(Date$)

'Rekurzivna funkcija
'Funkcija koja poziva samu sebe
'Primjer funkcije koja računa faktorijele:
'function Fakt (ByVal Broj As Integer) As Single
'If Broj = 1 Then
'Fakt = 1
'Else
'Fakt = Broj * Fakt(Broj - 1)
'End If
'End Function
'Poziv Fakt(6) dao bi rezultat 720 što je 6 = 1*2*3*4*5*6
_____________________________________________________________________________________-
'Vrijednosti kontrole
'Sve vrijednosti imaju svojstvo koem možemo koristiti za spremanje vrijednosti-
'samo pozivom na kontrolu , a da ne pišemo ime svojstva
'Tablica prikazuje svojstvo koje se smatra vrijednošću te kontrole

'Kontrola Svojstvo

'Check box (kontrolni okvir) Value
'Combo box(povezani okvir) Text
'Command button (Gumb naredbe) Value
'Common dialog (zajednički dijalog) Action
'Data (Baza podataka) Caption
'Directory list box (okvir liste imenika) Path
'Drive list box (Okvir liste jedinica) Drive
'File list box (okvir liste datoteka) FileName
'Frame (Okvir) Caption
'Grid (Rešetka) Text
'Horizontal scrol bar (vodoravna linija pom. Value
'Image (Slika) Picture
'Label (oznaka) Caption
'Line(Crta) Visible
'List box (okvir liste) Text
'Menu (izbornik) Enabled
'Option button(izborni gumb) Value
'Picture box (okvir crteža) Picture
'Shape (Oblik) Shape
'Text box (Okvir texta) Text
'Timer (kontrola vremena) Enabled
'Vertical Scroll bar(vertik. linija pomicanja Value
'KOrištenje vrijednosti kontrole nije preporučljivo
______________________________________________________________________________________
'VArijabla ima ime na koje se pozivamo da bi došli do sadržaja varijable i
'tip koji određuje vrstu podataka koja se može spremiti u varijablu.
'Deklariranje varijabli

'Dim imevarijable Dim Mjesec As Integer 'Mjesec cijeli broj
'Varijable tipa Dim su lokalne (samo za tu proceduru)

'Kontrolne strukture
' If Then i If Then_Else blokovi
'Select Case naredbe
'Do i For petlje
'Strukture odlučivanja
'Postoje tri strukture odlučivanja i to:
'If...Then, If...Then...Else i Select Case
'If uvjet Then naredba If M > 12 Then M = 1
'Ako želimo izvršiti više redova programa koristimo If...Then...End If

'If...Then...Else
'KOristimo za definiranje više blokova naredbi od kojih se izvršava samo jedna
'Primjer:
'Opći oblik Primjer:
'If uvjet1 Then If X < 10 Then
'bloknaredbi-1 Y = 1
'ElseIf uvjet2 Then ElseIf X < 100 Then
'bloknaredbi-2 Y = 2
'Else Else
'bloknaredbi-n Y = 3
'End If End If

'Select Case
'KOristi se umjesto If...Then...Else
'Primjer:
'Select Case testizraz Select Case X1
'Case lista izraza1 Case 3 To 15, 20
'bloknaredbi-1 Y1 = 10
'Case listaizraza2 Case Is >=50
'bloknaredbi-2 Y1 = 20
'Case Else Case Else
'bloknaredbi-n Y1 = 30
'End Select End Select

'On...GoTo
'Služi za prijelaz na određeni redak programa
'Oblik:
'On izraz GoTo lista odredišta On N GoTo Vrijednost_1, Vrijednost_2
'Izraz je brojčani izraz čija je vrijednost između 0 i 255
'Lista odredišta je lista brojeva ili oznaka linija programa odvojenih zarezom.

'Petlje
'Omogućavaju ponavljanje izvršenja grupe naredbi. Postoje dvije strukture petlje
'Do...Loop
'For...Next

'Do se koristi za izvršenje na neograničen broj puta
'Postoje dva oblika Do...Loop naredbe. Prvi je:
'Do While uvjet Do While X<10
'naredbe X=X+1
'Loop Form1.Print X
'Loop
'Drugi je:
'Do
'naredbe
'Loop While uvjet--ovdje se prvo izvršavaju naredbe a zatim ispituje uvjet(Obratno od prethodnog slučaja)


'For...Next
'Ovo se koristi kada petlju koristimo određeni broj puta
'Sintaksa
'For brojač=početak To kraj Step korak For X=0 To 100 Step 20
'naredbe Form1.Print "Brojač: ", X
'Next brojač Next X

'Naredba Exit omogućava izlaz iz For i Do petlji, te Sub i Function koliko je god potrebno(Exit For)
____________________________________________________________________________________
'Varijabla ima tri dosega:
'LOkalni Dim, Static ili ReDim(unutar procedure)
'Modul Dim(U području deklaracije forme ili modula)
'Globalni Global(U području deklaracije modula)

'Da je forma deklarirana umjesto Static sa varijablom Dim bila bi samo jedna promjena
'Varijabla Variant sadrži slova, brojeve, datume i dr.

'Osnovni tipovi podataka(Varijabli)

'Tip Opis

'Integer 2 byte cijeli broj % -32,768 do 32,767
'Long 4 byte cijeli broj & -2,147,483,648 do 2,147,483,647
'Single 4 byte decimalni broj ! -3.4E38 do 3.4E38
'Double 8 byte decimalni broj # -1.8D308 do 1.8D308
'Currency 8 byte broj sa čvrstom dec. točkom @ -922337203685477.5808 do 922337203685477.5807
'String Niz znakova $ 0 do 65,500 znakova
'Variant Datum/vrijeme,dec.broj ili niz znakova

'Varijabla koja nije Variant mora se deklarirati kao Dim, Global ili Static o obaveznim As tip Na Primjer:
'Dim I As Integer
'Dim Suma As Double
'Static Ima As String

'Osim korištenja As naredbe mogu si koristiti znakovi iz gornje tablice
'Npr.: Mjesec% je Integer, Iznos# Double, Grad$ tipa String
'Ako varijabla sadrži niz znakova onda je String Npr.:

'Dim ImeFilma As String
'ImeFilma = "Lovac na jelene"

'Varijabla tipa String je promjenjive veličine ovisno o sadržaju
'Može se zadati nepromjenjiva duljina: String * veličina npr.
'Dim ImePrezime As String * 25

'Datumi
'Datumi se pišu kao variant unutar znaka# npr.:
'RDatum=#7-3-95#
'RDarum=#7-3-1995 13:35#
'ili RLovro=#Mar-7-95#
'RLovro=#7 March 1995 19:00#

'Greške
'1:greške koda compile errors
'2:greške izvršenja run-time errors
'3:logičke greške

'greške koda nastaju prilikom pogrešnog upisa koda
'greške izvršenja otkrivaju se tek prilikom izvršenja koda
'logičke greške su najteže za otkrivanje
__________________________________________________________________________________--
'Rad s mišem
'MouseDown pritisnuta bilo koja tipka miša
'MouseUp Otpuštena
'MouseMove Pokazivač miša se giba i prenosi na novo mjesto na ekranu

'Primjer:SubForm_MouseDown (Buton As Integer, Shift As Integer, X As Single, Y As Single)
'Line -(x, Y) crta linije po formi
'Circle (X, Y), 40 crta kružnice na klik

'Primjer određuje koja tipka miša je pritisnuta:

'Private Sub Form_MouseMove(Tipka As Integer, TipkeCAS As Integer, X As Single, Y As Single)


'If Tipka = 1 Then
'Print "Pritisnuta lijeva tipka"
'ElseIf Tipka = 2 Then
'Print "Pritisnuta desna tipka"
'ElseIf Tipka = 4 Then
'Print "Pritisnuta srednja tipka"
'End If
'End Sub

'Primjer pokazuje koja je tipka tastature pritisnuta uz miša:

'Sub Form_MouseDown(Tipka As Integer, TipkeCAS As Integer, X As Single, Y As Single)
'If (TipkeCAS And 1) = 1 Then Print "Pritisnuta tipka SHIFT"
'If (TipkeCAS And 2) = 2 Then Print "Pritsnuta tipka CTRL"
'If (TipkeCAS And 2) = 3 Then Print "Pritisnuta tipke SCHIFT i CTRL"
'If (TipkeCAS And 7) = 7 Then Print "Pritisnute tipke SHIFT,CTRL i ALT"
'End Sub

'Vuci i ispusti
'Kategorija Element Opis

'Svojstvo DragMode Omogućava automatsko ili ručno vučenje kontrole
'DragIcon Određuje koja ikona će se prikazati kada se vuče kontrola
'Događaj DragDrop Prepoznaje kada je kontrola ispuštene na objekt
'DragOver Prepoznaje kada je kontrola vučena preko objekta
'Postupak Drag Započinje ili prekida ručno vučenje

'Sve kontrole osim izbornika i kontrole mogu se vući
'Forme poznaju svojstva DragDrop i DragOver, nemaju DragMode i DragIcon
'Postavljanjem vrijednosti DragMode na 1 omogućava automatsko vučenje kontrole
'Primjer:
'imgSloan.DragMode = 1
'imgSloan.DragMode = 0 ručno vučenje kontrole
______________________________________________________________________________________- Program vučenje
Ovdje je cijeli program vučenje
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
Source.Move X, Y
End Sub

Private Sub txtText1_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
Const ULAZ = 0, IZLAZ = 1
Dim PrivBoja As Long
If Stanje = ULAZ Or Stanje = IZLAZ Then
PrivBoja = txtText1.BackColor
txtText1.BackColor = txtText1.ForeColor
txtText1.ForeColor = PrivBoja
End If
End Sub
'Naredba Source.Move X, Y premješta gornji lijevi rub kontrole
'Ako hoćemo središte onda :
'Source.Move (X - Source.Width / 2), (Y - Source.Height / 2)
_____________________________________________________________________________________
Program Raznobojni prozori
Private Sub Command1_Click()
Dim F As New Form1 ' Deklariranje varijable forme
F.Show 'Napuni i prikaži novu pojavu
'Pomicanje i bojanje nove pojave
F.Move Left + (Width \ 10), Top + (Height \ 10)
F.BackColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)


End Sub

'Prva linija određuje objektnu varijabl F tipa Form1
'ključna riječ New određuje da će se autom. stvoriti nova pojava Form1
'Move je pomicanje nove pojave

'Primjeri deklariranja objektne varijable

'Dim VarForme As New frmPoc 'frmPoc je postojeća forma u aplikaciji
'Dim opcaForma As Form 'Varijabla opće forme
'Eim opciText As TextBox 'Bilo koji okvir teksta

'Generičke varijable odnose se na bilo koju formu u aplikaciji
'Postoje 3 generička tipa objekta: forma, kontrola i MDI forma
'Kod za bilo koju formu je generička varijabla forme npr:
'Za trenutno aktivnu formu je ActiveForm

'Posebna objektna varijabla odnosi se na određenu formu ili objekt(TextBox)
'Ime posebne varijable forme određeno je svojstvom Name forme npr:
'Dim VarfrmPos As frmPrva 'frmPrva već postoji u aplikaciji
'ReDim PoljeJedan(4) As New frmPrva

'Određivanje tipa objektne varijable
'Za to se koriste naredbe If..TypeOf i ElseIf...TypeOf npr.
'Sub VidSlika (Izvor A Control)
'If TypeOf Izvor Is Image Then
'Else
'Izvor.Visible = False
'End If
'End Sub
'Pozivom ovog koda uklanja se gumb cmdPoruka sa forme.
'Objektnoj varijabli pridružujemo drugi objekt naredbom Set:
'Set Objektna varijabla = Oznaka objekta ili
'Dim Forma As Form
'SEt Forma = Screen ActiveForm

'MDI
'Sučelje MDI omogućava stvaranje aplikacije sa višestrukim formama unutar jedne forme
'Kada se otvara forma potomak svojstvo MDIChild forme1 mora biti na True
'Prvo se otvara forma1 pa onda MDI forma
'MDI formi može se dodavati više potomaka (MDIChild True)
'Određivanje boje
'1.Korištenjem RGB () funkcije
'2.Korištenjem QBColor() za odair jedne od 16 boja koja koristi VB
'3.Korištenjem Constante koja je definirana u datoteci CONSTANT.TXT
'4.Neposrednim upisom vrijednosti boje

'RGB
'To su crvena, zelena i plava
'RGB(255, 0, 0) je crvena
'RGB(0, 255, 0 ) je zelena
'RGB(0, 0, 255) je plava
'RGB(255, 255, 255) je bijela
'RGB(0, 0, 0,) je crna
'QBFunkcija
'Može se koristiti funkcija QBColor() koja kao argument koristi cijeli broj od 1 do 15

'Boja Broj

'Crna 0
'Plava 1
'Zelena 2
'Cijan 3
'Crvena 4
'Ljubičasta 5
'Žutozelena 6
'Svijetlo siva 7
'Siva 8
'Svijetlo plava 9
'Svijetlo zelena 10
'Svijetlo cijan 11
'Svijetlo crvena 12
'Svijetlo ljubičasta 13
'Svijetlo žuta 14
'Bijela 15

'Primjer korištenja:
'Form1.BackColor = QBColor(1) 'Forma obojena u tamno plavo
'Korištenje grafičkih kontrola
'Kontrola crte, kontrola slike i kontrola oblika
'Umjesto da se piše kod , ove kontrole omogućavaju da se na formi dizajna nacrta kružnica crta ili oblik

'Program "Crta na formi"
Private Sub Form_Click()
linCrta.BorderColor = RGB(Int(255 * Rnd), Int(255 * Rnd), Int(255 * Rnd))
linCrta.X1 = Int(frmCrta.Width * Rnd) 'x koordinata početka crte
linCrta.Y1 = Int(frmCrta.Height * Rnd) 'Y koordinata početka crte
linCrta.X2 = Int(frmCrta.Width * Rnd) 'x koordinata završetka crte
linCrta.Y2 = Int(frmCrta.Height * Rnd) 'koordinata završetka crte
End Sub

'BorderColor određuje boju crte
'Boje se određuju na slučajan način jer sve tri komponente imaju slučajne vrijednosti
'Rnd vraća slučanji broj između 0 i 1
'Funkcija Int vraća cjelobrojnu vrijednost argumenta
'Širina forme frmCrta dana je svojstvom Width, a visina Height
'Int(frmCrta.Width * Rnd 'vraća slučajni broj između 0 i širine forme a
'Int(frmCrta.Height * Rnd) 'slučajni broj između visine i 0
'Slika na formi
'Može se puniti sa *.BMP, *.ICO te sa *.WMF datotekama
'Stretch omogućava da crtež proširimo na željenu veličinu
'AutoSize omogućava da se slika automatski širi ili smanjuje ovisno kako je napravljena(True)
'Grafički postupci koje se mogu primijeniti na forme i okvire crteža

'Postupak Opis
'
'Cls Čisti svu grafiku i izlaz naredbe Print
'PSet Postavlja boju pojedinačnog piksela
'Point Vraća vrijednost boje navedene točke
'Line Crta crtu, pravokutnik ili ispunjeni okvir
'Circle Crta kružnicu, elipsu ili luk
'Osnove crtanja
'postupak crta na formi, okviru crteža ili objektu
'Potrebno je naznačiti gdje će se crtati, ako ne onda crtamo na formi
'Primjer:
'frmForma.Pset (500, 500) 'crtanje po formi frmForma
'picJadran.Pset (500, 500) 'crtanje po okviru crteža picJadran
'Pset (500, 500) 'crtanje po trenutačnoj formi



___________________________________________________________________________________--

'Dinamičko premještanje kontrola
'Left je udaljenost između gornjeg lijevog kuta kontrole i lijevog ruba forme a
'Top je udaljenost između gornjeg lijevog kuta kontrole i vrha forme npr:
'imgZvono.Left = imgZvono.Left + 200 'premještanje udesno
'imgZvono.Top = imgZvono.Top + 300 'premještanje prema gore
'Apsolutno premještanje
'Primjer: imgZvono.Move 100, 200
'Relativno premještanje
'određuje za koliko će se objekt pomaknuti sa mjesta na kojem se nalazi npr:
'imgZvono.Move imgZvono.Left + 100, imgZvono.Top + 100
'Promjena veličine kontrole
'Primjer:
'Sub cmdPovecaj_Click()
'cmdPovecaj.Height = cmdPovecaj.Height + 50
'cmdPovecaj.Width = cmdPovecaj.Width + 50
'End Sub
'Svakim klikom se povećava gumb naredbe
'Skrivanje kontrole
'Primjer:
'Sub cmdVidNevid_Click ()
'imgZvono.Visible = Not imgZvono.Visible
'End Sub
'Naredbom se prikazuje kontrola ako nije vidljiva i obrnuto

___________________________________________________________________________________
'određivanje fontova
'Primjer:
'txtImeMjeseca.FontName ="Cro_Swiss"
'txtImeMjeseca.fontBold = True
'txtImeMjeseca.Text = "Svibanj"

'Ispis texta na formi
'Primjer ispisa texta na formu i u okvir crteža:
'frmTekstovi.Print "Prikaz teksta na formi"
'picPoruka.Print "Stavite disketu u disketnu jedinicu"
'picPoruka.Print "Tekst će biti prikazan";
'picPoruka.Print "u istom redu"

'Ako se želi ispisati tekst na određeno mjesto na formi koristimo:
'frmTekstovi.ScaleMode = 4 'Znak
'frmTekstovi.CurrentX = 5 'šesti stupac
'frmTekstovi.CurrentY 0 9 'deseti redak
'frmTekstovi.Print "Ispis teksta na određenom mjestu"
'Brisanje teksta
'picPoruka.Cls 'brisanje sadržaja crteža
'frmTekstovi.Cls' brisanje sadržaja forme
'Ispis brojeva i datuma
'Funkcije Format$ i Format
'Funkcija Format$ () pretvara brojčanu vrijednost u niz znakova
'Funkcija Format () pretvara brojčanu vrijednost u tip podataka variant
'Sintaksa im je zajednička: Format$ (brojčani izraz,fmt$

'Različiti primjeri ispisa:
'PrintFormat$(12345,"######") 12345
'Print Format$(39.4271,"##.##") 39.43
'Print Format$(3.7,"00.000") 03.700
'Print Format$(O.72,"###%") 72%
'Print Format$
'Print Format$(107.1,"####.00 \K") 107.10 K
'Print Format$(324.15,"####.00 \K") 324.15 K
'Print Format$(3571478.6,"###,###,###.00 \K") 3,571,478.60 K

' U dijelu fmt$ sintakse može se pisati u drugim formatima pod navodnim znakovima" "
'Imenovani format opis
'Currency koristi znak i način ispisa negativnog broja iz Win.ini
'Fixed prikaz bar jedne znamenke
'Standard Odvajanje skupina po tri znamenke
'Percent Množi vrijednost sa 100 i na kraju ispisuje %
'General date Ispisuje datum i vrijeme (ako postoji u nizu znakova)
'Long Date Ispisuje dugi oblik datuma određen u control panelu
'Medium Date Format dd-mmm-gg (primjer: 01-Apr-95)
'Short Date Ispisuje kratki oblik ( primjer: 4/1/95)
'Long Time Ispisuje u obliku hh:mm:ss i AM ili PM
'Short Time Prikaz vremena u obliku hh:mm

'Primjer ispisa kojeg sadrži varijabla DatumPocetka:
'IblPocetak.Caption = Forma$(DatumPocetka, "Short Date")
'Ispis iz aplikacije (printanje)
'PrimjerTeksta = "Tekst i na formi i na pisaču"
'frmTekstovi.Print PrimjerTeksta
'Printer.Print Primjer Teksta

'Ispis postupkom EndDoc
'Printer.Print "Prva stranica"
'Printer.NewPage
'Printer.Print "Druga stranica"
'Printer.EndDoc 'Slanje na pisač(koji mora biti uključen)

'Sadržaj se može ispisati i sa forme postupkom: forma.PrintForm
'Grafika na formi ispisuje se ako je svojstvo forme AutoRedraw = True
____________________________________________________________________________________-
'Clipboard
'Clipboard je jedan od pet posebnih unaprijed definiranih objekata
'Ostala 4 su (App, Screen, printer i Debug)
'SetText kopira tekst na Clipboard
'GetText kopira tekst sa Clipboarda

'Primjer:
'txtText1.SelStart = 0 'početak označavanja(početak teksta)
'txtText1.SelLength = Len(txtText1.Text) 'označavanje do kraja teksta
'Rem' bit će zamijenjen cijeli tekst iz okvira teksta
'txtText1.SelText = 2Tekst koji dolazi an mjesto označenog"

'Za kopiranje crteža ili datoteka naredbe su:
'GetData, SetData i GetFormat

'Rad s tipkovnicom
'VB poznaje tri događaja koje prepoznaje forma za unos s tipkovnice
'1. KeyDown Pritisak bilo koje tipke tipkovnice
'2.KeyPress Pritisak tipke koja ima neku ASCII vrijednost
'3.KeyUp Otpuštanje bilo koje tipke tipkovnice
_____________________________________________________________________________________
'Kontrole datoteka
'Okvir liste jedinica je padajući okvir liste koji prikazuje aktivnu jedinicu.
'Odabrana jedinic ne postaje odmah aktivna nego tek naredbom: ChDrive drvDrive1.Drive

'Okvir liste imenika prikazana je struktura aktivne jedinice
'Svaki imenik u okviru ima pridružen broj
'Imenik određen svojstvom Path (dirDir1.Path) ima vrijednost ListIndex = -1
'Imenici iznad radnog imenika imaju redom vrijednoti -2, -3 itd
'Prvi podimenik imenika dirDir1.Path ima ListIndex = 0 a ostali 1, 2 itd
'Ako želimo sve imenike i podimenike moramo pisati: dirDir.Path = drvDrive1.Drive
'Time se radni imenik samo osvjetljava i ListIndex postaje = -1
'Radni imenik se postvlja naredbom ChDir ovako:ChDir dirDir1.Path
'Jedan klik osvjetljava a dvoklik daje vrijednost ListIndex -1 i otvara podimenike

'Okvir liste datoteka prikazuje datoteke sadržane u imeniku i određene svojstvom Path
'Prikaz svih datoteka aktivne jedinice: filFile.Path = dirDir1.Path
'Patern omogućuje prikaz datoteka određenog tipa npr: filFile1.Pattern = "*.MAK; *.FRM"
'Ako želimo prikaz svih datoteka svojstva Normal, Sistem i Hidden moraju biti na True



'Datoteke sa slučajnim pristupom
'Prvo treba odrediti tip slogova koji čine sadržaj datoteke
'Tip podataka koji se zove Radnik:

'Type Radnik
'ID As Integer
'Ime As String * 15
'Prezime As String * 15
'BrojBodova As Integer
'Koeficijent As Integer
'End Type
'Korisnički tip je uvije globalan i mora se deklarirati u području modula a ne forme

'Deklariranje varijabli
'Nakon određivanja tipa sloga diklariraju se varijable:
'Global Zaposleni As Radnik 'varijabla sloga
'Global BrojSloga As Long 'Položaj tekućeg sloga
'Global ZadnjiSlog As Long 'Broj zadnjeg sloga u datoteci
'Otvaranje datoteka
'Prije nego se podaci mogu čitati datoteku treba otvoriti
'Primjer koda za otvaranje datoteke sa slučajnim pristupom:
'DuljinaSloga = Len(Osoba)
'BrojDatoteka = FreeFile 'Sljedeći dostupan broj datoteka
'Open "OSOBE.DAT" For Random AS BrojDatoteke Len = DuljinaSloga
'Čitanje i promjena sadržaja datoteke
'Čita se naredbom Get, kojom se slogovi kopiraju iz datoteke u varijable:
'Get #BrojDatoteke, BrojSloga, ImeVarijable
'Zapis u slog
'Naredbom Put slogovi se upisuju u datoteku koja je otvorena za slučajni pristup.Zamjena sloga:
'Put #BrojDatoteke, BrojSloga, ImeVArijable

'Dodavanje sloga na kraj datoteke:
'ZadnjiSlog = ZadnjiSlog + 1
'Put #BrojDatoteke, ZadnjiSlog, Osoba

'Baza podataka
'Izabere se Data Manager,New Database,upiše se npr:test.mdb,gumb New table
'Filds gumb add,Fild Name upisati npr: Oznaka.
'Sve zatvoriti pa u tablicu upisati podatke, pa Close
'Izaći iz baze podataka i otvortiti novu formu
'Dodati ikonu baze podataka na formu.
'Properties Data base,Database Name otvoriti pa izabrati test.mdb
'Dvoklik na RecordSource pa strelica prema dolje, izabrati
'Sada treba okvire texta txtOpis i txtOznaka povezati sa poljima baze
'Svojstva DataSource i DataField ovako:

'Okvir texta txtOznaka DataSource Data1
'DataField Oznaka
'Okvir texta txtOpis Data Source Data1
'DataField Opis
'Ovo se može doraditi sa dodavanjem gumba naredbe kao u ovom programu

'Značajke baze podataka
'Svojstvo Određuje Napomena

'Conect Tip baze podataka Tip baze (nije potrebno za Aces)
'DatabaseName Puno iem datoteke baze Put i ime baze podataka
'Exclusive Pojedinačni ili višekor
'isnički pristup bazi True (pojedinačni) ili zadani
'False (višekorisnički)
'ReadOnly Način pristupa bazi True (Samo za čitanje)
'False (Čitanje i pisanje)
'RecordSource Ime postojeće baze kojoj
'se pristupa Mora biti ime postojeće tablice ili upita

Ole datoteke
Private Sub OLE1_DblClick()
Const OLE_CREATE_LINK = 1 'Određivanje aplikacije koja će isporučiti objekt
OLE1.Class = "WordDokuments" 'određivanje datoteke za povezivanje
OLE1.SourceDoc = "D:\My Dokuments\Ugovor.doc"
'Stvaranje povezanog objekta (ole_create-link = 1)
OLE1.Action = OLE_CREATE_LINK
End Sub

'Stvaranje objekata za vrijeme izvršenja(gornji kod)

'Svojstvo Opis

'Class Određuje aplikaciju koja je stvorila objekt
'OleTypeAllowed Određuje vrstu objekta koji možeta stvoriti (povezani, uloženi ili oboje)
'SourceDoc Kada stvaramo povezani objekt, ovo svojstvo određuje datoteku s kojom se povezuje
'Kada stvaramo uloženi objekt ovo svojstvo određuje datoteku koja se koristi kao predložak
'SourceItem Određuje dio datoteke s kojim će se povezati (samo za povezane datoteke)
'Action Određuje postupak koje će se izvršiti na OLE kontroli

'Stvaranje uloženog objekta od datoteke
'1.Class određuje tip objekta
'2.Odrediti SourceDoc
'3.Action = 0

'Sljedeći kod stvara uloženi objekt korsteći postojeću datoteku kao predložak
Const OLE_CREATE_EMBED = 0 'određivanje vrste objekta
'Ole1.Class = "WordDokuments" 'određivanje datoteke koja će biti uložena
OLE1.SourceDoc = "d:\My Dokuments\Ugovor.doc"
'stvaranje uloženog objekta (OLE_CREATE_EMBED = 0)
OLE1.Action = OLE_CREATE_EMBED

'Stvaranje praznog uloženog objekta
'Kada se stvara prazan uloženi objekt dobro je pokrenutu i aplikaciju koja daje objekt
'1.Class odrediti vrstu objekta
'2.Action = 0
'3Action = 7
'Sljedeći dio koda stvara prazni uloženi objekt ,i pokreće aplikaciju koja ga je napravila

Private Sub OLE1_DblClick()
Const OLE_CREATE_EMBED = 0, OLE_ACTIVATE = 7
'određivanje vrste objekta
OLE1.Class = "Word Dokuments"
'stvaranje uloženog objekta (Const OLE_CREATE_EMBED = 0 'određivanje vrste objekta
'Ole1.Class = "WordDokuments" 'određivanje datoteke koja će biti uložena
OLE1.SourceDoc = "d:\My Dokuments\Ugovor.doc"
'stvaranje uloženog objekta (OLE_CREATE_EMBED = 0)
OLE1.Action = OLE_CREATE_EMBED 'poziv aplikacije koja je napravila objekt
OLE1.Action = OLE_ACTIVATE

End Sub

'Spremanje podataka iz OLE objekta
'1.Otvorite datoteku u binarnom načinu
'2.Svojstvo FileNumber na broj datoteke korišten u prvom koraku
'3,Svojstvo

'Da bismo podatke iz OLE objekta sačuvali u datoteci, koristimo svojstvo Action
'Kada su podaci spremljeni u datoteku ona se može otvoriti i obnoviti OLE objket.
'Objekti u OLE kontroli mogu se spremiti samo u otvorenome,binarne datoteke


'3.koraka spremanja podataka iz OLE objekta prikazana su u proceduri (SaveObject_Click:
Sub SaveObjekt_Click()
BrojDatoteke = FreeFile 'broj datoteke
Open "WALD.OLE" For Binary As #BrojDatoteke
OLE1.FileNumber = BrojDatoteke
OLE1.Action = 11 'Spremanje datoteke
Close #BrojDatoteke 'Zatvaranje datoteke
End Sub

'Čitanje podataka iz datoteke u OLE kontrolu
'1.otvoriti datoteku u binarnom načinu
'2.Svojstvo FileNumber postaviti na broj datoteke korišten u prvom koraku
'3.Svojstvo Action na 12 (OLE_READ_FROM_FILE)
'Primjer otvaranja:

Sub OpenObject_Click()
BrojDatoteke = FreeFile 'Broj datoteke
Open "WALD.OLE" For Binary As #BrojDatoteke
OLE1.FileNumber = BrojDatoteke
OLE1.Action = 12 'čitanje iz datoteke
Close #BrojDatoteke 'zatvaranje datoteke
End Sub
End Sub
Program Bipro

'Deklariranje DLL procedura
'Osnovnu podlogu programa Microsoft Windows čine dinamičke veze DLL ili
'dynamic-link libraries(DLL)
'Windows API (application programming interface) ili sučelje za programiranje aplikacija
'Aplikacije VB mogu pozivati procedure u DLL bibliotekama da bi mogle obaviti neke postupke kojih nema u VB
'Te datoteke su nezavisne i VB-u treba dati podatke kako da ih pronađe
'To se postiže naredbom Declare
'Declare se stavlja u deklaraciju forme ili modula koda
'Ako se deklarira u formi zove se samo iz te forme
'Ako se deklarira u modulu koda(BAS datoteka) može se pozvati iz bilo koje forme ili modula
'Ako procedura vraća vrijednost , deklarira se kao potprogram (Sub procedura)npr:
'Declare Sub BringWindowToTop Lib "User" (ByVal hWnd As Integer)
'Ako vraća vrijednost, diklarira se kao funkcija, npr:
'Declare Function GetFreeSpace Lib "Kernel" (ByVal wFlags As Integer) As Long

'Dio naredbe Lib kazuje gdje će VB naći biblioteku za povezivanje (Lib imedatoteke)
'Za biblioteke procedura operacijskog sustava imedatoteke je "User", "GDI" ili "Kernel"
'Biblioteka procedura koju možemo koristiti u VB je c:\VB\Winapi\win30Api.txt
'Gorjnu datoteku učitati u neki od programa za obradu texta i pronaću u njoj deklaraciju procedure koja nam je potrebna
'Poziv DLL procedure
'Kao i svaka druga procedura u VB-u
'Primjer izlaska iz Windows-a:
'Sub cmdExitWindows_Click
'Dim IzlazIzWindowsa
'IzlazIzWindowsa = ExitWindows(0, 0)
'End Sub