VISUAL BASIC 6.0 Visual Basic karmaşık mantıklara ve biçimlere

Transkript

VISUAL BASIC 6.0 Visual Basic karmaşık mantıklara ve biçimlere
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
VISUAL BASIC 6.0
Visual Basic karma k mant klara ve biçimlere sahip, Windows uyumlu uygulamalar n
tasar mlar
kullan
kolayla
bir görsel dildir. Bu dilde program geli tirmenin ilk ad
n ekranda görmek istediklerini saptamak ve ekran tasar
Bu programda her ey nesne olarak tan mlanm
,
gerçekle tirmektir.
r (form, yaz kutusu, komut dü mesi v.b.).
Nesneler, kendilerine ili tirilmi olan olaylar (farenin t klanmas , farenin çift t klanmas gibi)
tan yabilir ve yaz lm olan komutlara göre tepki verebilir. Olaylar gerçekle ti inde i lemler
yerine getirilir, ve pencereler güncelle tirilir. Sistem daha sonra yeni olaylar bekler.
TEMEL KAVRAMLAR
Form: Windows pencerelerinin Visual Basic'deki kar
r. Uygulama çal
ld
nda
formlar pencerelere dönü ür. Her uygulama en az bir form içermek zorundad r.
Prosedür: Komut cümlelerinden olu an program parçalar
r.
Modül: Tek bir dosyada toplanan ve program n herhangi bir yerinden ça
labilen
prosedürler ve tan mlamalar toplulu u.
Özellik (Property): Nesne karakteristiklerini (boyut, renk, konum, …) ve nesne
davran lar
tan mlayan nitelikler.
Olay (Event): Nesnelerin alg layabildi i eylemlerin ad
r.
ARAÇ ÇUBU U VE KISAYOL TU LARI
ekil-1'de araç çubu u ve üzerindeki k sayol tu lar görüntülenmektedir.
ekil-1. Araç Çubu u
Araç çubu u üzerindeki k sayol tu lar
n i levleri soldan sa a a
1
daki gibidir:
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Standart EXE Proje Ekleme - File/Add Project (File Menüsünden Add Project seçene i
klan r)
Form Ekleme - File/New Form
Menü Tasar
- Window/Menu Design - Ctrl+M
Proje Aç - File/Open Project
Proje Kaydet - File/Save Project
Kes - Edit/Cut - Ctrl+X
Kopyala - Edit/Copy - Ctrl+C
Yap
r - Edit/Paste - Ctrl+V
Bul - Edit/Find - Ctrl+F
Geri Al - Edit/Undo - Ctrl+Z
Tekrar - Edit/Redo
Ba lat - Run/Start - F5
Ara Ver - Run/Break - Ctrl+Break
Sona Erdir - Run/End
Proje Gezgini - View/Project Explorer
Özellikler Penceresi - View/Properties Window - F4
Form Görüntü Penceresi - View/Form Layout Window
Nesne Gezgini (tüm nesneleri gösterir) - View/Object Browser
Araç Kutusu (kontrol nesnelerini içerir) - View/Toolbox
Veri taban Ba lant lar - View/Dataview Window
Proje ve Form Pencereleri
Tüm Visual Basic bile enleri bir proje içerisinde bulunur. Proje yarat ld ktan sonra, proje
penceresinde, o uygulamada yer alan formlar, modüller ve özel denetçiler listelenir. Listeden
istenilen form seçildikten sonra View/Form ile formun kendisi ya da View/Code ile o forma
ait kod görüntülenebilir. Formun üzerinde yer alan noktalara grid denir. Bu noktalar form
üzerineyerle tirilecek nesnelerin hizalanmas
sa lar.
ÖZELL KLER PENCERES
Bir formun konumunu de
penceresi aç ld
tirmek onun özelli ini de
tirmek anlam na gelir. Özellikler
nda ekil-2'deki gibi görüntülenir. Ba k çubu u alt ndaki nesne kutusunda
(Object Box) yer alan aç klama nesnenin ad
ve ne tip bir nesne oldu unu belirtir. Örne in
2
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
ekil-2'deki "Form1 Form" aç klamas seçili nesnenin bir form oldu unu ve ad
n Form1
oldu unu göstermektedir. Nesne kutusunu alt ndaki ayarlar kutusunda (Settings Box) ise
pencerede o anda seçilmi olan ayar n de eri görüntülenir ve de
ço unlu u kullan
tirilebilir. Seçeneklerin
ya dü en liste olarak sunulur. Bu liste renkler için paleti görüntülerken,
pencerenin görünür olma özelli i için ise do ru/yanl (True/False) olarak sunulur.
Baz Form Özellik Tan mlar
(Name): sim
Appearance: Formun düz ya da 3-boyutlu
görünmesini sa lar.
BackColor: Artalan rengi
BorderStyle: Kenar çizgisi biçimi
Caption: Form Ba
ControlBox: Pencere kontrollar
olmayaca
n olup
belirler.
Font: Yaz tipini belirler.
Height: Formun yüksekli ini belirtir.
Left: Formun sol koordinat
belirler.
Top: Formun üst koordinat
belirler
Visible: Formu gizlemek ya da gizli formu
görüntülemek için kullan r.
Width: Formun geni li ini belirtir.
ekil-2. "Properties" Özellikler Penceresi
Program Ba latma
Visual Basic program
ba latt
zda ekrana ekil-3'deki Yeni Proje Penceresi gelir. E er
Visual basic daha önceden çal yor ise ayn pencereyi File/New project seçene i ile de
açabilirsiniz. Bu pencere seçenekleri ile proje tipini belirleyebilirsiniz. Normal proje için
Standard.EXE, Internet ile ilgili projeler için Activex.EXE kullan
3
z.
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
ekil-3. Yeni Proje Diyalog Penceresi
ekil-4. Proje Tasar m Penceresi
Proje aç ld ktan sonra proje tasar m penceresi ekil-4'deki gibi ekrana gelir. Bu pencerenin
ba
Project1: Microsoft Visual Basic (Design) olarak görüntülenir. Daha sonra bu program
çal
ld
nda Design-Run olarak de
ecektir.
4
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Bu yeni proje bir form ile ba lar. Genelde bu form program
n ba lang ç sayfas olur. Form
penceresi d nda Tasar m Penceresi üzerinde projede yer alan formlar gösteren "Project1"
adl proje penceresi, formun ekran üzerindeki boyutunu gösteren "Form Layout" penceresi ile
nesne özelliklerini gösteren "Properties" penceresi yer al r. Tasar m penceresinin sol taraf nda
ise nesne yarat
için gerekli bir araç çubu u bulunur.
Projeyi Saklama
Projenin saklanmas için öncelikle projenin bile enleri (form, kod modülü, vs.) ayr ayr ait
olduklar
saklanmal
dosyalara saklanmal , daha sonra projenin kendisi proje dosyas
olarak
r.
Projeyi saklamak için File/Save Project menü seçene i ya da araç çubu u üzerindeki Save
Project dü mesi t klan r. Her proje bile eni için ard ard na
ekil-5'deki Yeni Adla Proje
Saklama Diyalog kutusu ekrana gelecektir. Bu kutu üzerinde her dosyan n ad
belirlemeniz gerekmektedir.
ekil-5. Yeni Adla Proje Saklama Penceresi
Formlar Programlama
5
ve yerini
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Formlar 20'den fazla olaya tepki verebilirler. Bu tepkinin ne olaca
belirtebilirsiniz. Örne in, kullan
kodlama ile
form üzerindeki herhangi bir bölgeyi t klad
nda bir
mesaj görüntüleyebilirsiniz. Kodlamay yapabilmek için formu çift t klamak ya da View/Code
komutu kullanmak yeterlidir. Bu komut çal
ld
nda ekil-6'daki pencere ekrana gelir. Bu
pencerenin üst sa ndaki "Object" k sm nda formda yer alan tüm nesnelerin listesi, soldaki
"Proc" k sm nda ise nesnenin tan yaca
olaylar bulunur.
ekil-6. Form Kod Penceresi
Form t kland
nda "Fareyi t klad
z" mesaj
vermek için gerekli kod a
Sub Form_Click
Print "Fareyi tikladiniz."
End Sub
6
dad r:
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Örnek Form Olaylar
Activate
Formun etkin pencere olmas
Click
Form üzerinde farenin t klanmas
DblClick
Form üzerinde farenin çift t klanmas
Deactivate
Formun edilgen olmas
GotFocus
Form denetçilerinin edilgen, formun etkin olmas
KeyDown
Odak form üzerinde iken klavye tu una bas lmas
KeyPress
Odak form üzerinde iken klavye tu una bas p b rak lmas
KeyUp
Odak form üzerinde iken herhangi bir tu a bas lmas yada b rak lmas
Load
Form penceresinin aç lmas
LostFocus
Oda n formdan ba ka bir nesneye kaymas
MouseDown Farenin bir tu una bas lmas
MouseMove Farenin hareket ettirilmesi
MouseUp
Farenin bas lan tu unun b rak lmas
Unload
Formun kapat lmas
Örnek Form Yöntemleri
Circle
Form üzerine daire, elips ya da yay çizer
Cls
Form üzerindeki tüm yaz ve resimleri siler
Hide
Formu gizler fakat kapatmaz
Line
Form üzerinde çizgi ya da dikdörtgen çizer
Move
Formu hareket ettirir
Print
O andaki renk ve yaz boyunu kullanarak form üzerine yaz yazar
PrintForm
Formu ekranda göründü ü gibi yaz
Refresh
Formun kendini yeniden çizmesini sa lar
Scale
Formun koordinat sistemlerini tan mlar
SetFocus
Oda n forma kaymas
Show
Formun görüntülenmesini sa lar
TextHeight
Yaz boyunu belirler
TextWidth
Yaz uzunlu unu belirler
sa lar
7
ya yollar
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Kullan
Etkile imi
Kullan dan bilgi almak için kontrol nesneleri kullan r. Bu kontrol nesneleri
ekil-7'de
görüntülenmektedir.
Gösterici (Pointer)
Resim Çerçevesi (PictureBox)
Etiket (Label)
Yaz Kutusu (TextBox)
Çerçeve (Frame)
Komut Dü mesi (CommandButton)
aret Kutusu (CheckBox)
Seçenek Dü mesi (OptionButton)
Çekme Liste (ComboBox)
Liste (ListBox)
Yatay Kayd rma Çubu u (HScrollBar) Dü ey Kayd rma Çubu u (VScrollBar)
Zamanlay
(Timer)
Sürücü Listesi (DriverListBox)
Dizin Listesi (DirListBox)
Dosya Listesi (FileListBox)
ekil (Shape)
Çizgi (Line)
Resim (Image)
Veri Denetçisi (Data)
OLE Denetçisi (OLE)
ekil-7. Kontrol Nesnelerinin Yer Ald
Araç Çubu u
Bir Nesnenin Ta nmas ve Boyutland lmas
Bir nesnenin ta nma ve boyut de
tirme i lemleri grafik nesnelerinki ile ayn
birden fazla nesne Ctrl tu u bas
tutularak seçilir ve grup halinde ta ma ya da boyut
de
r. stenirse
tirme i lemi gerçekle tirilebilir.
Etiket
Kullan
ya bilgileri ve yaz lar görüntülemek için kullan r, burada bilginin kullan
taraf ndan de
tirilmesi olas de ildir.
Etiket Ekleme
Yaz kutular
n i levini belirlemek için her yaz kutusu ile birlikte bir adet etiket kutusuna
gereksinim vard r.
Araç çubu u üzerinde etiket kutusu dü mesini t klay
Farenin imlecini form üzerine, kutuyu koyaca
Fareyi t klayarak parma
z.
z yerin bir kö esine götürünüz.
b rakmadan kutunun kar
sürükleyiniz, ve fare dü mesini b rak
z.
8
kö esi olacak yere kadar
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Etiket kutusunun özellikleri "Properties" penceresinde görüntülenir. Nesnenin ad "Name" ile
belirlenir, etiketin ekranda gözükecek yaz
ise "Caption" bölümüne yaz r.
Yaz Kutusu
Kullan dan yaz
olarak bilgi almak ve yine bilgileri kullan
ya göstermek için kullan r.
Yaz kutusunun özellikleri yine "Properties" penceresinden de
tirilir. Yaz kutusuna girilen
bilgi say sal bilgi de olsa karakter dizini olarak kabul edilir. Aritmetik i lem yap laca
takdirde say ya çevrilmelidir (Val komutu ile). Yaz kutular
n ismi vard r ancak ba k -
"Caption" özelli i bulunmaz.
Yaz Kutusu Ekleme
Araç çubu u üzerinde yaz kutusu dü mesini t klay
Farenin imlecini form üzerine, kutuyu koyaca
Fareyi t klayarak parma
z.
z yerin bir kö esine götürünüz.
b rakmadan kutunun kar
sürükleyiniz, ve fare dü mesini b rak
kö esi olacak yere kadar
z.
Komut Dü mesi
Kullan
n t klamas ile çe itli i levlerin çal
rmas
sa layan dü melerdir. Komut
dü melerinin üzerine komutun i levini belirten yaz lar ba k-Caption özelli i ile ili tirilir.
Ba k yaz
dü menin ortas na yaz r. Ba k dü menin standart boyundan geni ise
boyutland rma otomatik olarak yap lmaz. Bunu sizin yapman z gerekir. Ba k üzerinde bir
karakterin alt
çizmek için o karakterin önüne & i areti konur, ve o karakter alt çizili olarak
yaz r. Böylece komut Alt tu u ile alt çizili karakterin klavyeden bas lmas ile de çal
r.
&Son -- Son -- Alt+S ile Son komutu gerçekle ir ve program sona erer
Komut Dü mesi Ekleme
Araç çubu u üzerinde komut dü mesi dü mesini t klay
Farenin imlecini form üzerine, dü meyi koyaca
Fareyi t klayarak parma
z.
z yerin bir kö esine götürünüz.
b rakmadan dü menin kar
sürükleyiniz, ve fare dü mesini b rak
z.
PROGRAMLAMA TEMELLER
9
kö esi olacak yere kadar
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Cümleler
Bir cümleyi yaz p Enter tu una bast
zda o komut cümlesi de erlendirilir ve yaz m
yanl lar saptan r. Büyük küçük harf ayr
yap lmaz. Komutun ilk harfi otomatikman
büyültülür. Komut olmayan aç klama sat rlar için tek t rnak, Rem ya da Remark kullan r.
Rem
Yard m Dü mesi
' Bu dü me t klan nca çal r.
Print "Yard m yok" 'sat r aras na da aç klama koyabilirsiniz
De
kenler
Kullan dan al nan bilgiler ve hesaplama sonuçlar de
ken denilen geçici bölgelerde
tutulur. De
ken ad bir alfabe karakteri ile
ba lamal
De
ken adlar en fazla 255 karakter olabilir. De
r. De
kenin özellikleri ise a
da verilen listedeki gibi belirlenir:
s -String
:
Karakter dizisi
n - Integer
:
Tamsay (-32768 +32767)
l - Long
:
Uzun Tamsay
f - Single
:
Tek Duyarl Ondal kl Say (floating)(1E-45, 3E38)
d - Double
:
Çift Duyarl Ondal kl Say (floating)(5E-324 )1.8E308
c - Currency
:
Para de eri ($) (xxxxxxxxxxxxxxx.xxxx)
b - Boolean
:
Do ru/Yanl (true-false 0/-1)
v- Variant
:
De
d - Date
:
Gün ve saat bilgisi (1/1/100 den 12/31/9999 a kadar)
(yakla k +/- 2 milyar)
ken
ken Tan mlar
Bir formda tan mlanan de
ken o formda yarat lacak tüm prosedürlerde kullan labilir. Bir
prosedürde Dim ya da Private ile yerel olarak tan mlanan de
tan ml kal r. Genel tan mlar n k tlanmas kod hatalar
ken ise sadece o prosedür için
n ay klanmas aç ndan kolayl k
getirir. Bu nedenle yaln zca prosedür içinde kullan lacak de
tan mlanmal
r. Heryerde (formlar aras ) kullan labilecek de
tan mlanmal
r.
Dim
kenler yerel olarak
ken tan mlamas ise Public ile
de
kenad [As de
kentipi] [, de
kenad 2 [As de
kentipi2]]
Private de
kenad [As de
kentipi] [, de
kenad 2 [As de
kentipi2]]
10
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Public de
kenad [As de
kentipi] [, de
kenad 2 [As de
Buna göre dolar olarak gösterilecek para de
keni tan
kentipi2]]
u olabilir:
Dim cPara As Currency
Atama ve Özellik Belirleme
De
kenlere de er atamas için "=" ya da "Let" deyimi kullan r. De
taraf nda, de eri ise sol taraf nda olmal
kenin ad e itli in sa
r.
Faiz = .6
Let Faiz = .6
Yard m.Caption = "&Yard m"
'Yard m dü mesinin ba
belirler
Yard m.Left = Yard m.Left-200
' Yard m dü mesini 200 piksel sola al r
Yard m.Visible = False
' Yard m dü mesini gizler
Yard m.TabStop = False
' Tab ile bu dü meye geçilmez
' Alttaki komut yard m dü mesi gizli ise görüntüler, de ilse gizler
Yard m.Visible = Not(Yard m.Visible
Say lar ve
lemler
Tamsay (Integer) de
kenlere reel say atand
nda tamsay ya yuvarlanarak atan r. De
ken
tipine uymayan bir atama yap r ise sistem uyar verir.
Dim Sayi As Integer
Dim Yil As String
Sayi = 50000
' Yanl , en fazla 32768.
Sayi = 32.2
' 32 olarak atan r
Sayi=Val("1994")
' 1994 de eri atan r
Yil = Str$(1994)
' "1994" de eri atan r
Aritmetik i lemlerde parantezlerin önceli i vard r. Parantez yok ise yukar da belirtilen öncelik
ralar uygulan r. Ayn öncelik s ras na sahip olan i lemler soldan sa a do ru gerçekle tirilir.
Aritmetik Operatörler ve Öncelik S ras
1
^
Üs alma
2
-
Negatif say lar gösterme
11
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
3
*
Çarpma
3
/
Bölme
4
\
Tamsay bölme
5
Mod
6
+
Toplama
6
-
Ç kartma
Kalan bulma (5 Mod 2 = 1) (Tamsay )
Farkl tipte iki say ya i lem yap ld
nda sonuç say lardan daha duyarl olan tipte olur.
Duyarl k s ras Integer, Long, Single, Double ve Currency'dir.
Komut
lemleri Kodlama
Visual Basic'de nesnelere hangi durumlarda hangi i lemleri yapaca
kodlama ile belirtilir.
Bunlar nesnenin üzerine farenin gelmesi, nesnenin t klanmas ya da nesnenin çift t klanmas
gibi durumlar olabilir.
Bir komut dü mesini kodlamak için:
Dü meyi çift t klay
z.
Kod penceresine gerekli kodu giriniz. lk olarak ekrana gelen prosedür t klama için
olacakt r. De
seçip de
ik olaylar için sa daki prosedür dü en listesini t klayarak di er durumlar
ik kodlar yazabilirsiniz.
lk sat rdaki Private Sub xxxx_Click() komutu bu prosedürün xxxx komut dü mesi
kland
nda çal acak prosedür oldu unu belirtir. En alt sat rdaki End Sub komutu ise
prosedürün bitti ini göstermektedir.
Bir di er komut dü mesine kod yazmak için kod penceresini kapatt ktan sonra, o dü meyi
çift t klayarak, ya da aç k olan kod penceresinin sa daki nesne dü en listesini t klayarak ve
istenilen nesneyi seçerek de prosedürü yazabiliriz.
Diyalog Pencereleri
12
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Yaz kutusu d nda kullan dan bilgi almak için diyalog pencereleri kullan labilir. Bunun
için kullan lan fonksiyon InputBox (kullan
n girdi i biçimde atan r) ya da InputBox$
(karakter olarak atan r) d r.
InputBox$ (Aç klama$[,[Ba k$][,[ lkDe er$][,x%,y%]]])
Sub Form_Load
'Form görüntülendi inde ad
soran diyalog penceresi ekrana gelir.
Ad = InputBox$("Lütfen ad
giriniz:", "Ad", "Damla Buket")
End Sub
Prosedür Kodu
Bu k mda program için gerekli hesaplamalar yaz lacakt r. Program n içine yaz lacak olan
aç klamalar için sat n en soluna tek t rnak i areti koymak yeterlidir. Yaz kutusundan gelen
de erlerin say de erine çevrilmesi için gerekli komut Val komutudur.
"txtSure" yaz kutusunun de erini bir de
' Sure de erini de
kene atamak için a
daki komut kullan labilir:
kene atar
nSure = Val(txtSure.Text)
Program n Çal
lmas
Bir program 3 ekilde çal
labilir:
1. Visual Basic araç çubu u üzerindeki "Start" dü mesine bas
2. Run/Start menü seçene ini t klay
3. Klavyede F5 tu una bas
z.
z.
Hata oldu u takdirde bunlar bir pencerede görüntülenecektir.
13
z.
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
KRED GER ÖDEME PLANI PROJES
Bu projenin amac
ekil-8'deki gibi bir form olu turmak, kullan
dan anapara, y ll k faiz
oran , ve faiz süresi (y l baz nda) bilgilerini alarak, ayl k ödemeleri hesaplamakt r. Bu projede
kullan dan anapara bilgileri "Anapara", Y ll k faiz oran bilgileri "Yillik Fazi Orani", ve y l
baz nda faiz süresi bilgisi "Faiz Suresi (Yil)" yaz kutular ile al nacakt r. Hesaplama i lemi
"Hesaplama" komut dü mesi ile ba lat lacakt r. Sonuç yine "Aylik Odeme Miktari" yaz
kutusu ile görüntülenecektir. Programdan ç
için "Cikis" komut dü mesi kullan lacakt r.
ekil-8. Kredi Geri Ödeme Plan Projesi
Projeyi Kaydetme
"Kredi Geri Ödeme Plan " projesinin saklanmas için gerekli dü meye bas ld
nda öncelikle
form daha sonra da proje için diyalog kutular ekrana gelecektir. Bu i lemde form için dosya
ad olarak "krediana" (uzant
.frm olacakt r) kullan
z ve dosyay "My Documents" alt nda
"krediproje" adl bir klasör yaratarak, bu klasöre saklay
diyalog kutusunda ise dosya ad için "krediproje" (uzant
tu una bas
z. Daha sonra ekrana gelen proje
.vbp olacakt r) yaz
z ve Save
z (dosya ayn klasöre saklanacakt r).
Yaz Kutusu Ekleme
Proje için gerekli olan 4 yaz kutusunu formun solunda etiketlere yer b rakacak ekilde
yaratt ktan sonra bu kutulara anapara için "txtAnapara", y ll k faiz oran için "txtFaiz", faiz
süresi için "txtSure", ve ödemeler için "txtOdeme" isimlerini "Name" seçene i ile veriniz.
"Text" seçene inde yer alan "text" yaz
siliniz. Bu alan kutunun bir yaz ile dolu olarak
gelmesi istenirse kullan r.
Etiket Ekleme
14
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Proje için gerekli olan 4 etiket kutusunu formun sa na ve yaz kutular
n soluna gelecek
ekilde yaratt ktan sonra bu kutulara anapara için "lblAnapara", y ll k faiz oran için "lblFaiz",
faiz süresi için "lblSure", ve ödemeler için "lblOdeme" isimlerini veriniz. Ekran görüntüsü
için ise "Caption" özelliklerine anapara için "Anapara", y ll k faiz oran için "Y ll k Faiz
Oran (%)", faiz süresi için "Faiz Süresi (Y l)", ve ödemeler için "Ayl k Ödeme Miktar "
de erlerini giriniz.
Komut Dü mesi Ekleme
Hesaplama ve programdan ç
için gerekli 2 komut dü mesi yarat
z. Hesaplama
dü mesinin "Name" özelli ine "cmdHesap", "Caption" özelli ine ise "Hesaplama" giriniz.
dü mesinin "Name" özelli ine "cmdCik", "Caption" özelli ine ise "Ç
Komut
" giriniz.
lemleri Kodlama
Projenin "Ç
" dü mesini çift t klay
komutu aras na programdan ç
Proje için gerekli de
z. Private Sub cmdCik_Click() komutu ile End Sub
için gerekli "end" komutunu yaz
ken tan mlar
a
daki gibi yap
z:
Dim cAnapara As Currency
Dim fFaiz As Single
Dim nSure As Integer
Dim cOdeme As Currency
Prosedür Kodu
Projede cAnapara de eri txtAnapara yaz kutusundan al nacakt r.
' Anapara de erini de
kene yükle
cAnapara = Val(txtAnapara.Text)
Di er hesaplama kodlar ise a
'Yüzde faiz oran
daki gibidir:
ondal k de ere çevir
fFaiz = Val(txtFaiz.Text) / 100
'Y ll k faiz oran
ayl a çevir
fFaiz = fFaiz / 12
'Toplam y l süresini aya çevir
nSure = Val(txtSure.Text) * 12
'Ayl k odemeleri hesapla
cOdeme = cAnapara * (fFaiz / (1- (1+fFaiz) ^ -nSure))
15
z.
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
txtOdeme.Text = Format(cOdeme,"Fixed")
Program n Çal
lmas
Start" dü mesini t klayarak projeyi çal
z. Anapara için 128000, faiz oran için 9.75, süre
için ise 30 de erlerini giriniz. Ayl k ödemeler 1099.72 olmal
r.
FORMAT:
Format (1234, “$#,###.00”)
Biçime 0 kondu unda rakam olmasa bile 0 mutlaka görüntülenir.
$1,234.00
Format (1234, “$#,###.##”)
Biçime # kondu unda rakam olmazsa görüntülenmez.
$1,234
Format (234, “$#,###.00”)
$234.00
Format (1234567, “$#,###.00”)
$1,234,567.00
Format(1234, “Currency”)
$1,234.00
veya
1.234,00 TL (Türkçe)
FormatNumber (1234)
1,234.00
veya
1.234,00 (Türkçe)
FormatDateTime(“20:10”, vbLongTime)
20:10:00
16
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
FORM ÖZELL
DE
RME PROJES
(Program Çal rken)
Bu örnekte formun geni li i ile ilgili bilgi kullan
de
tiren program yaz lacakt r. Form ilk aç ld
de
mez olarak görüntülenecektir.
dan al
p, buna göre form özelli ini
nda ekran n sol üst kö esinde ve boyutlar
Form (Ornek1) üzerinde bir yaz kutusu (txtGenis-Name), bir etiket (Istenilen GenislikCaption, lblGenis-Name) ve bir komut dü mesi (Formu Genislet-Caption, cmdGenis-Name)
olacakt r.
Form Prosedürü
Sub Ornek1_Load
Ornek1.Top = 0
Ornek1.Left = 0
Ornek1.BorderStyle = 0
Ornek1.ControlBox = 0
End Sub
Komut Dü mesi Prosedürü
Sub cmdGenis_Click
' Formun geni li inin 500'den fazla olmamas için denetleme
If Val(txtGenis.Text) > 500 Then Ornek1.Width =500
Else
Ornek1.Width = Val(txtGenis.Text)
End If
End Sub
17
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
SEV ML B R UYGULAMA
1.
Yeni bir proje yarat
z.
2.
Form üzerine bir zamanlay
3.
Resmin "Picture" özelli inin yan ndaki dü meyi t klay
4.
"Load Picture" diyalog pencerei ekrana geldi inde VisualBasic\Graphics\Icons\Misc
ve bir resim denetleyicisi koyunuz.
z.
dizininden face03.ico resmini seçiniz.
5.
da verilen kodlar gerekli yerlere yaz
z.
Dim xChange As Integer
Dim yChange As Integer
Private Sub Form_Load
xChange=100
yChange=100
End Sub
Private Sub Timer1_Timer()
Image1.Left = Image1.Left + xChange
Image1.Top = Image1.Top + yChange
If Image1.Left > Me.ScaleWidth Then xChange=xChange * -1
If Image1.Left < 0 Then xChange=xChange * -1
If Image1.Top > Me.ScaleHeight Then yChange=yChange * -1
If Image1.Top < 0 yChange=yChange * -1
End Sub
6.
"Timer Control" özellikler penceresinde "Interval" özelli ini "True" yap
Program çal
çarpt
rd
nda yön de
z.
zda, resim ekran üzerinde hareket edecek ve formun bir kenar na
tirecektir.
18
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
ACCESS'DEN VER AKTARIMI ÖRNE
Veri taban ndan
bilgi
aktar
için
kullanaca
z
komutlar
OpenDatabase,
ve
OpenRecordset'dir. Veri taban (Db) ve kay t kümesi (Rs) genel tan mlar yap ld ktan sonra,
bu tan mlardan veritaban için OpenDatabase tan
tan
yap lmal
r. OpenRecordset tan
olan kayd n bir kopyas
, kay t kümesi için de Open Recordset
nda kullan lan "snapshot" dosya aç ld
nda aktif
al r. Bu örnekte tek kay tl k bir veritaban kullan lacak ve o bilgi
görüntülenecektir.
Tüm kay tlar n görüntülenmesi i lemi bir döngü ile aktif kay t ilerletilerek yap lmal
Visual Basic Program 'na Access veritaban ndan veri aktar
r.
gerçekle tirmek için öncelikle
bir veri taban haz rlamam z gereklidir.
Access Veri taban haz rlama i lemleri:
1. Access'de "c:\MyDocuments" dizini alt na "ornek.mdb" dosyas aç
2. Tables/New/Design seçenekleri ile tablo tasar
3. "Field Name" kolonuna "Yazi" yaz
z.
penceresini aktif hale getiriniz.
z.
4. "Data Type" kolonunda "Text" seçiniz.
5. Tabloyu kapat
z ve saklama penceresi geldi inde tabloyu "tblornek" ad ile saklay
6. Ana anahtar seçimi için "No" yan tlay
7. Tablonuzu "Open" ile aç
8. Access'den ç
Visual Basic'de ise a
1.
2.
z.
z. lk sat ra "Veri Aktar m Denemesi" yaz
z.
z.
daki i lemleri gerçekle tiriniz:
Yeni bir proje aç
saklay
z.
z. Projeyi "ornek" olarak yine "c:\MyDocuments" dizinine
z.
Form_Load Prosedürü'ne eklenecek kod:
Dim Db as Database
Dim Rs as Recordset
3.
Formun üzerine bir etiket ve 2 komut dü mesi yerle tiriniz.
4.
Etiket özellikleri:
Caption =
(Bo olacak)
Name = Label1 (Ayn kalacak)
19
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
BorderStyle = 1
Appearance = 0
5.
Birinci komut dü mesi özellikleri:
Caption = Veri Al
Name = Command1 (Ayn kalabilir)
6.
kinci komut dü mesi özellikleri:
Caption = Cikis
Name = Command2 (Ayn kalabilir)
7.
Birinci komut dü mesi Click_Prosedürü
Set Db = OpenDatabase("c:\MyDocuments\ornek.mdb")
Set Rs = Db.OpenRecordset("tblornek",dbopensnapshot)
Label1.Caption = Rs!Yazi
8.
kinci komut dü mesi Click_Prosedürü:
End
9.
Project/References menü seçene inden sonra liste üzerinde "Microsoft DAO 3.51
Object Library" seçene ini i aretleyiniz.
10.
Program saklay
Program
çal
z.
rd ktan sonra "Veri Al" dü mesine bast
zda
olu acakt r.
ekil-9 Veri Taban ndan Veri Aktar m Örne i
20
ekil-9'daki görüntü
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
VER TABANINDA ARAMA YAPMA ÖRNE
Bir kay t bilgisinin veri taban nda olup olmad
belirlemek için arama i lemi yapman z
gerekmektedir. Bu i lem için öncelikle aranacak bilginin bir yaz kutusu ile kullan dan
al nmas daha sonra da veri taban nda arama yap lmas gerekmektedir. Bilginin bulunup
bulunmad
bilgisi yine yaz kutusu ile kullan
Arama için yapaca
1.
z i lemler a
ya verilebilir.
daki gibidir:
"ornek.mdb" veritaban na "deneme" ve "veri aktarim" olmak üzere iki adet kay t daha
giriniz.
2.
"ornek.frm" üzerine bir yaz kutusu ekleyiniz, "Text" özelli i bo olsun.
3.
"ornek.frm" üzerine bir komut dü mesi ekleyiniz, "Caption" özelli i ara olsun. Bu
komuta a
dak prosedürü ekleyiniz.
Private Sub Command3_Click()
Set Db = OpenDatabase("c:\bg\telif\vb\ornek.mdb")
Set Rs = Db.OpenRecordset("tblornek", dbOpenSnapshot)
Do While Not Rs.EOF
If Text1.Text = Rs!Yazi Then
Text1.Text = "Bulundu"
Else:
Rs.MoveNext
End If
Loop
If Text1.Text <> "Bulundu" Then Text1.Text = "Bulunamadi"
End Sub
4.
Program çal
rd ktan sonra yaz
kutusuna "Deneme" girip "Ara" dü mesini
klarsan z yaz kutusu üzerine "Bulundu" yaz
görüntülenecektir. E er "Ornek" girip
yine "Ara" dü mesini t klarsan z bu kez de "Bulunamad " yaz
21
görüntülenecektir.
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
VER RAPORU YARATMA
Veri raporu yaratma i lemi için öncelikle veri alan tan mlamalar yap lmal
r.
Veri Ba lant Tan mlamalar
1. Project/Add Data Environment (Project/Components/Designers/Data Environment ya da
Project/More Activex Designers/Data Environment) t klan r.
2. Aç lan "Data Environment" penceresindeki "Connection1" üzerinde farenin sa tu u
klanarak "Properties" seçilir.
3. "Data Link Properties" diyalog kutusu üzerinde "Microsoft Jet 3.51 OLE DB Provider"
klan r.
4. "Next" dü mesi t klanarak "Connection" k sm na geçilir.
5. "Use data source name" yaz kutusu yan ndaki (…) dü mesi t klanarak Access veri taban
seçildikten sonra kullanaca
z veri taban seçilir.
6. "Test connection" t klanarak veri taban na eri im yap p yap lamad denetlenir.
Veri Taban Tan mlamalar
1. "Connection1" üzerinde farenin sa tu u t klanarak "Add Command" seçilir.
2. Eklenen "Command1" üzerinde sa tu t klanarak "Properties" seçilir. Aç lan pencerenin
"General" k sm nda "Command Name" ile bir isim atan r, "Connection" ile istenilen
ba lant seçilir (birden fazla ba lant oldu u durumlarda kullan lmal r), "Database
Object" ile verinin tablo oldu u belirtilir, "Object Name" üzerinden tablo ismi seçilir.
(Hastane veri taban üzerinde kimlik tablosu gibi)
3.
er bu veri taban na ili kili bir veri taban var ise bu "Add Child Command" ile
gerçekle tirilir. Di eri gibi isim ve tablo ismi tan mlamalar yap ld ktan sonra "Relation"
ile ili ki tan
yap r. (Hastane veri taban üzerinde vizite tablosu, kimlik-hastakod ile
vizite-hastakod ili kisi gibi)
Veri Raporu Yaratma
1. Project/Add Data Report seçilir. Ekrana "Access" benzeri bir rapor ortam gelir.
2. "Properties" penceresi üzerinde "Data source" için önceden tan mlanan "Data
Environment", "Data Member" için ise tan mlanan veri taban girilir. stenirse raporun
ismi de tirilebilir.
3. "Data Report" penceresi üzerinde farenin sa tu u t klanarak "Retrieve Structure" seçilir.
Bu i lem otomatik olarak veri alanlar tan mlar.
4. Daha sonra "Data Environment" penceresi üzerinden alanlar "Data Report" üzerine
klan p sürüklenerek eklenir ve istenilen biçimde yerle tirilir.
Yarat lan veri raporlar bir komut dü mesine eklenecek rapor_ismi.show ile ça labilir.
Gösterilen rapor üzerinde yazd rma dü mesi bulundu u için ayr ca yazd rma komutu
eklemeye gerek yoktur.
22
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
HASTANE VER TABANI UYGULAMASI
HASTANE VER TABANI
Veri taban üzerinde Data1 (hastane-kimlik) ve Data2 (hastane-vizite) nesneleri "visible.false"
olarak bulunmaktad r.
(General Declaration)
Public son1 As Integer
Dim son2 As Integer
Public sayi As Integer
Sub ilkform()
cmdileri.Visible = True
cmdgeri.Visible = True
cmdbas.Visible = True
cmdson.Visible = True
cmdekle.Visible = True
cmdrapor.Visible = True
cmdguncelle.Visible = True
cmdbul.Visible = True
cmdcikis.Visible = True
cmdiptal.Visible = False
End Sub
Public Sub goster()
txtad.Text = Data1.Recordset("ad")
txtsoyad.Text = Data1.Recordset("soyad")
txthastakod.Text = Data1.Recordset("hastakod")
Data2.Recordset.MoveFirst
liste(0).Clear
liste(1).Clear
23
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
liste(2).Clear
endx = 0
Do While endx = 0
Do While Not Data2.Recordset.EOF
If Data1.Recordset("hastakod") <> Data2.Recordset("hastakod") Then
Data2.Recordset.MoveNext
Else
endx = 1
varx = Data2.Recordset("hastakod")
vary = Data2.Recordset("hastakod")
Do While varx <> 0
Do While vary = varx
liste(0).AddItem (Data2.Recordset("protokolno"))
liste(1).AddItem (Data2.Recordset("tarih"))
liste(2).AddItem (Data2.Recordset("tani"))
Data2.Recordset.MoveNext
If Data2.Recordset.EOF = True Then
varx = 0
vary = 1
Else
vary = Data2.Recordset("hastakod")
End If
Loop
varx = 0
Loop
End If
Loop
Loop
End Sub
Sub ekledugkaldir()
cmdileri.Visible = False
cmdgeri.Visible = False
cmdbas.Visible = False
cmdson.Visible = False
cmdekle.Visible = False
cmdrapor.Visible = False
cmdguncelle.Visible = False
cmdbul.Visible = False
cmdcikis.Visible = False
cmdiptal.Visible = True
End Sub
Private Sub bul_Click()
Data1.Recordset.MoveFirst
sayi = 1
endx = 0
Do While endx = 0
If Data1.Recordset("hastakod") <> bul.Text Then
24
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Data1.Recordset.MoveNext
sayi = sayi + 1
Else
endx = 1
goster
End If
Loop
End Sub
Private Sub cmdbas_Click()
Data1.Recordset.MoveFirst
goster
sayi = 1
End Sub
Private Sub cmdbul_Click()
soyadx = txtsoyad.Text
bulx = 0
bul.Clear
Data1.Recordset.MoveFirst
Do While Not Data1.Recordset.EOF
If Data1.Recordset("soyad") = soyadx Then
bul.AddItem (Data1.Recordset("hastakod"))
Data1.Recordset.MoveNext
bulx = 1
Else
Data1.Recordset.MoveNext
End If
Loop
If bulx = 0 Then
MsgBox ("bulamadim.")
Else
bul.Text = bul.List(0)
bul.Visible = True
txtbul.Visible = True
txtbul.Text = "soyad =" + soyadx
End If
End Sub
Private Sub cmdcikis_Click()
End
End Sub
Private Sub cmddegtamam_Click()
Data1.Recordset.Edit
Data1.Recordset("Ad") = txtad.Text
Data1.Recordset("Soyad") = txtsoyad.Text
Data1.Recordset.Update
Data1.Refresh
cmddegtamam.Visible = False
25
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Data1.Recordset.Move (sayi - 1)
ilkform
goster
End Sub
Public Sub cmdekle_Click()
Ekle.Show
Hastane.Hide
son1 = son1
End Sub
Private Sub cmdgeri_Click()
If sayi <> 1 Then
Data1.Recordset.MovePrevious
goster
sayi = sayi - 1
Else
MsgBox ("Kayit basina gelindi!")
End If
End Sub
Private Sub cmdguncelle_Click()
ekledugkaldir
cmddegtamam.Visible = True
End Sub
Private Sub cmdileri_Click()
If sayi <> son1 Then
Data1.Recordset.MoveNext
goster
sayi = sayi + 1
Else
MsgBox ("Kayit sonuna gelindi!")
End If
End Sub
Private Sub cmdiptal_Click()
goster
cmdekletamam.Visible = False
cmddegtamam.Visible = False
ilkform
goster
End Sub
Private Sub cmdrapor_Click()
DataReport1.Show
End Sub
Private Sub cmdson_Click()
Data1.Recordset.MoveLast
26
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
goster
sayi = son1
End Sub
Private Sub Form_Load()
Data1.Refresh
Data2.Refresh
Data1.Recordset.MoveLast
son1 = Data1.Recordset.RecordCount
Data2.Recordset.MoveLast
son2 = Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
sayi = 1
goster
End Sub
EKLE FORMU
Public Sub cmdekletamam_Click()
Hastane.Data1.Recordset.AddNew
Hastane.Data1.Recordset("Ad") = txtad.Text
Hastane.Data1.Recordset("Soyad") = txtsoyad.Text
Hastane.son1 = Hastane.son1 + 1
Hastane.Data1.Recordset("Hastakod") = Hastane.son1
Hastane.Data2.Recordset.AddNew
Hastane.Data2.Recordset("Hastakod") = Hastane.son1
Hastane.Data2.Recordset("protokolno") = txtprot.Text
Hastane.Data2.Recordset("tarih") = txttarih.Text
Hastane.Data2.Recordset("tani") = txttani.Text
Hastane.Data1.Recordset.Update
Hastane.Data2.Recordset.Update
27
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Hastane.Data1.Refresh
Hastane.Data2.Refresh
Hastane.goster
Hastane.sayi = 1
Hastane.Show
Ekle.Hide
End Sub
Private Sub cmdiptal_Click()
Hastane.Show
Ekle.Hide
End Sub
Private Sub Form_Load()
txtad.Text = ""
txtsoyad.Text = ""
txtprot.Text = ""
txttani.Text = ""
txttarih.Text = ""
End Sub
28
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Visual Basic Editörü
Bilgisayar programlar geli tirmek için kulland
z araçlara editör
deriz.Visual Basic için kulland
z editör sadece visual basic için
tasarlanm r ve 4 versiyondan olu ur. Bunlar;
Learning Edition
Standart Edition
Professional Edition
Enterprise Edition
Bu editörlerin kullan m aç ndan hiç bir fark yoktur. Farkl klar ise içerdikleri
programlama modülleri, araçlar ve nesnelerden ibarettir.
Visual Basic editörünü çal rmak için Ba lat->Programlar->Microsoft Visual
Studio->Microsoft Visual Basic menülerini kullanabilirsiniz veya daha önceden
kaydetmi oldu unuz Visual Basic Proje dosyalar na çift t klama yolunu
kullanabilirsiniz. E er proje dosyas kullanarak Visual Basic editörünü
çal
rsan z direk olarak seçti iniz proje aç lacakt r. Ba lat menüsü ile Visual
Basic editörünü çal
san z kar
za yeni proje türünü seçmenizi, en son
çal lan projelerden birini açman veya daha önce çal
z proje
dosyas n yerini göstermenizi amaçlayan bir diyalog kar
za gelecektir
(Resim 1.1).
Resim 1.1 Visual Basic ba lang ç diyalog penceresi.
Bu ders kapsam nda görece iniz konular uygularken Standart EXE türündeki
proje türünü seçebilirsiniz. Standart EXE proje türünü seçtikten sonra "Aç"
dü mesine t klad
zda yeni bir projeyi Visual Basic editörü sizin için
haz rlar(Resim 1.2).
Resim 1.2 Visual Basic editörü.
29
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Visual Basic projelerini geli tirken en çok kullan lan editör araçlar Resim
1.2'de gösrterilen Toolbox, Project Manager, Properties Window, Form
Penceresi dir.
ToolBox : Form Penceresi üstüne yerle tirece imiz nesneleri eklemek için
kullan lan araç çubu udur. Form üstüne bir nesne eklemek için üstündeki
simgelerden istenilen nesnenin simgesine t klan p form üstüne resim çizilir gibi
eklenir.
Project Manager : Üstünde çal
lan projenin form, modül vb. temel
nesneleri aras nda geçi yapmak, projeye yeni form, modül vb.nesneleri
eklemek ve projeye eklenmi olan form, modül vb. nesneleri projeden
karmak için kullan lan proje yönetim penceresidir.
Properties Window : Proje içindeki nesnelere ait özelliklerin görüntülendi i ve
de erlerinin de tirilmesi için kullan lan penceredir. Kullan mda özellikleri
de tirilecek nesne(ler) seçildikten sonra de iklik Properties Window
içindeki iki sütunlu tablonun sa sütunundaki de er de tirilir.
Form Penceresi : Proje dahilinde istenilen say da form kullan labilir. Proje
do rultusunda geli tirilen program n arayüzlerini olu turdu umuz tasar mlar
olu turdu umuz bölümdür.
Editör ile çal rken kullan lmayan pencere ve araç çubuklar saklamak için
veya kullan lacak pencere veya araç çubu u sakl ise tekrar görünür hale
getirmek için View menüsünü kullanal r.(Resim 1.3 )
Resim 1.4 View Menüsü
Nesne
Programlar haz rlan rken kullan arayüzünde kullan ile program n ileti ime
geçmesini sa layan veya bir amaç do rultusunda haz rlanm programlama
araçlar r. Örne in Label
nesnesi program n arayüzüne yerle tirilen ve
kullan taraf ndan de tirilemeyen metinleri kullan ya sunmay amaçlayan
görsel bir nesneyken, Timer
nesnesi kullan
n göremeyece i fakat
belirtilen zaman aral klar nda istenilen görevleri yerine getiren bir nesnedir.
Nesnelerin Özellikleri : Bir program geli tirirken veri giri ini, sunumlar ve
özel uygulamalar nesneleri kullanarak gerçekle tiririz. Bir nesneyi kullanmak o
nesnenin özelliklerini amaçlar do rultusunda de tirebilmek ve olaylar i
ak
sa layacak ekilde kullanmak anlam ndad r. Bir nesnenin yatay ve
dü ey konumu, ad , görünürlü ü ve eri elebilirli i bir nesnenin temel
özellikleridir. Nesnelere ait özellikler de tirilirken a
daki ifade kullan r :
30
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Nesnenin ad = Label1
Nesnenin özelli i = Caption
Nesnenin özelli inin yeni de eri = "Visual Basic" ise
Label1.Caption = "Visual Basic"
Komut sat Label1 nesnesinin Caption özelli ini "Visual Basic" olarak
de tirecektir. Nesnelerin bir çok özelli i çal ma an nda (Run Time)
de tirilebilirken ad (Name) özelli i gibi baz özellikleri sadece tasar m
an nda (Design Time) de tirilebilir.
Nesnelere Ait Olaylar : Bir nesneye kullan
n müdahalesi veya sistemin
müdahalesi an nda nesnenin program yönlendirmesi için haz rlanm alt
programlar (Sub Routine) olay olarak adland r. Örne in bir bilgi giri i
ekran nda bütün bilgileri girdikten sonra "Kaydet" dü mesine mouse ile
kland nda "Kaydet" dü mesinin (Caption özelli i "Kaydet" olan dü menin
ismi Command1 varsay lm r.) Private Sub Command_Click olay çal r ve
programc program n "Kaydet" dü mesine t klan ld nda yapmas gerekenleri
bu alt programa kodlar. A
daki örne i inceleyiniz.
Private Sub Command1_Click()
Label1.Caption = Text1.Text
End Sub
Yukar daki program n aç klamas : Program n ekran nda ad yani Name
özelli i Label1 olan bir Label, ad Text1 olan bir TextBox ve ad Command1
olan bir CommandButton bulunmaktad r. Command1 dü mesine
klan ld nda Label1'in içeri ini (Ekranda görünen statik metni) Text1'in içeri i
(Kullan
n Text1'e yazd metin) yap.
Temel Visual Basic Nesneleri
Label Nesnesi : Label nesnesi ekranda yani kullan arayüzünde
kullan
n de tiremeyece i sabit metinleri kullan ya sunar. Label
nesnesinin en çok kullan lan özellikleri;
Name : Her nesnenin oldu u gibi Label nesnesinin de Name özelli i vard r. Bir
nesnenin Name özelli i nesnenin program n içindeki ad r. Bu özellik sadece
tasar m an nda de tirilebilir.
Caption : Label nesnesinin ekranda görünen metnini içeren özelli idir. Caption
özelli i de ti inde ekrandaki metinde ayn anda de ecektir. Name özelli i
ile Caption özelli i kar
lmamal rlar.
Label nesnesine ait olaylar;
31
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Click : Kullan mouse ile nesnesinin üstüne t klad
Herhangi bir parametresi yoktur.
nda olu an bir olayd r.
DblClik : Kullan mouse ile nesnesinin üstüne çift t klad
olayd r. Herhangi bir parametresi yoktur.
nda olu an bir
MouseMove : Kullan mouse imlecini nesnenin üstünde hareket ettirdi i
zaman olu an olayd r. Parametreleri;
Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
End Sub
Button : Integer veri tipinde bir parametredir ve mouse'un hangi tu una
bas ld
gösterir. Parametrenin de erlerine göre ifade ettikleri;
Button Parametresinin de eri
Bas olan dü me
2
0
Sa
Hiçbiri
3
1
Sol ve Sa
Sol
Shift : Integer veri tipinde bir parametredir ve klavyenin hangi fonksiyon
tu una bas ld
gösterir. Parametrenin de erlerine göre ifade ettikleri;
Shift Parametresinin de eri
Bas
olan tu
3
Shift+Ctrl
5
Shift+Alt
6
Ctrl+Alt
7
0
Hiçbiri
1
Shift
2
Ctrl
4
Alt
Shift+Ctrl+Alt
X ve Y : Single veri tipindeki parametrelerdir ve mouse'un ekran
üstündeki koordinatlar verirler.
MouseDown : Kullan nesnenin üstündeyken mouse'un bir tu una bast
zaman olu ur. Parametreleri MouseMove olay n parametreleri ile ayn r ve
ayn ekilde çal rlar.
MouseUp : Kullan nesnenin üstündeyken mouse'un bas tu unu serbest
rakt zaman olu ur. Parametreleri MouseMove olay n parametreleri ile
ayn r ve ayn ekilde çal rlar.
32
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
TextBox Nesnesi : TextBox nesnesi kullan arayüzünde kullan
n
de tirebice i dinamik metinleri kullan ya sunar ve düzenlemesini bekler.
TextBox nesnesinin en çok kullan lan özellikleri;
Name : Bir nesnenin Name özelli i nesnenin program n içindeki ad
özellik sadece tasar m an nda de tirilebilir.
r. Bu
Text : TextBox nesnesinin ekranda görünen metnini içeren özelli idir. Text
özelli i de ti inde ekrandaki metinde ayn anda de ecektir veya kullan
metni düzenledi inde Text özelli inin de eri de ecektir. Name özelli i ile
Text özelli i kar
lmamal rlar.
MaxLenght : Bu özellik ile TextBox nesnesinin içerece i metnin maksimum
uzunlu udur. Örne in Bir ifre alan na kullan 8 haneden fazla karakter
girmesini engellemek istersek maxlenght özelli ini 8'e e itleyebiliriz. Girilecek
metni s rland rmamak için de maklenght özelli ini 0'ra e ilenir.
PassChar : Kullan
n yazd karakterlerin yerini alan karakteri içerir.
Örne in bir programa girilirken kullan ad ve parola sorulur ve kullan ad
girilirken kullan girdi i kullan ad birebir görebilirken, parolay girerken
parolan n her karakteri için "*" karakterini görür. Bu örnekte parolan n girildi i
textbox nesnesinin PassChar özelli i "*" içerir. Bu sayede üçüncü ah slar
girilen parolalar göremezler.
Locked : Kullan
n ekrandaki metinleri belirli i lemler süreci içinde
de tirmesi engellenmesi için kullan lan özelliktir. Locked özelli inin de eri
True ise kulan metni düzenleyemez ancak False ise düzenleyebilir.
MultiLine : Metnin TextBox içinde birden fazla sat rda görüntülenmesine
olanak verir.
ScrollBars : MultiLine özelli i True yap ld nda görüntülenmek istenen
kayd rma çubuklar göstermenize veya saklaman za olanak tan r.
TextBox nesnesine ait olaylar;
Click : Kullan mouse ile nesnesinin üstüne t klad
Herhangi bir parametresi yoktur.
nda olu an bir olayd r.
DblClik : Kullan mouse ile nesnesinin üstüne çift t klad
olayd r. Herhangi bir parametresi yoktur.
nda olu an bir
Change : Kullan TextBox' n içindeki metni düzenledi i an olu ur. Herhangi
bir parametresi yoktur.
MouseMove : Bak
z Label nesnesi MouseMove Olay .
KeyPress : Kullan dan veya sistemeden programa bir karakter gitti i zaman
olu an olayd r. Parametreleri;
33
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Private Sub Text1_KeyPress(KeyAscii As Integer)
End Sub
KeyAscii : Sistemden veya klavyeden programa gönderilen karakterin
Ascii tablosundaki numaras r.
KeyDown : Odak nesnenin üstündeyken kullan
bast zaman olu ur. Parametreleri;
n klavye'nin bir tu una
KeyCode : Klavye üstünde kullan lan tu un sistemde ili kilendirildi i
numaras r.
Shift : Integer veri tipinde bir parametredir ve klavyenin hangi fonksiyon
tu una bas ld
gösterir. Parametrenin de erlerine göre ifade ettikleri;
Shift Parametresinin de eri
Bas
olan tu
0
Hiçbiri
1
Shift
2
Ctrl
4
Alt
3
Shift+Ctrl
5
Shift+Alt
6
Ctrl+Alt
7
Shift+Ctrl+Alt
34
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
KeyUp : Odak nesnenin üstündeyken kullan
n klavyede bast tu tan
parma
kald rd an olu ur. Parametreleri KeyDown olay n parametreleri
ile ayn r ve ayn ekilde çal rlar.
CommandButton : Kullan arayüzünde gerekli veriler girildikten sonra
bir i lemi ba latmak için kullan lan nesnedir. CommandButton nesnesinin en
çok kullan lan özellikleri;
Name : Bir nesnenin Name özelli i nesnenin program n içindeki ad
özellik sadece tasar m an nda de tirilebilir.
r. Bu
Caption : Command nesnesinin ekranda görünen metnini içeren özelli idir.
Name özelli i ile Caption özelli i kar
lmamal rlar.
Default : Bir diyalog penceresinde bulunan onay tu unun Default özelli ine
True de erini atarsak, diyalog penceresini kullanan kullanac pencere üstünde
herhangi bir yerde {ENTER} tu una basarsa onay tu una basm say r. Bir
Form üstünde sadece bir CommandButton nesnesinin Default özelli i True
de erini alabilir.
Cancel : Bir diyalog penceresinde bulunan iptal tu unun Cancel özelli ine
True de erini atarsak, diyalog penceresini kullanan kullanac pencere üstünde
herhangi bir yerde {ESC} tu una basarsa iptal tu una basm say r. Bir Form
üstünde sadece bir CommandButton nesnesinin Cancel özelli i True de erini
alabilir.
CommandButton nesnesine ait olaylar;
Click : Kullan mouse ile nesnesinin üstüne t klad
Herhangi bir parametresi yoktur.
nda olu an bir olayd r.
Private Sub Command1_Click()
End Sub
Not :Di er Visual Basic nesneleri ileride aç klanacaklard r.
ListBox : Arayüz içinde basit anlamda (tek sütun) listeleri görüntülemekte
kullan lan nesnelerdir. ListBox nesnesi içindeki liste elemanlar ekrana s mayacak
kadar fazlaysa ListBox nesnesinin sa taraf nda dü ey bir kayd rma çubu u belirir ve
bu sayede listenin bütün elemanlar görüntülenebilir. Kullan ListBox nesnesindeki
bir eleman seçebilece i gibi duruma göre birden fazla eleman seçmesi de
istenebirilir. ListBox nesnesinin en önemli metodlar ve özellikleri a
da
listelenmi tir. Ayr ca liste elemanlar n görünmeyen bir de erleri vard r. Görünen
de er bir String de erdir fakat görünmeyen de er bir Long de erdir.
Özellikleri
35
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
ListIndex : Tek seçimli modda seçili olan liste eleman n, çoklu seçim modunda en
son seçilen liste eleman n index numaras saklar. Türü Integer'd r. 1. Liste
eleman n ListIndex de eri 0'd r. n. eleman n ListIndex de eri n-1 dir.
ListCount : Liste elemanlar
n say
verir. Türü Integer'd r.
Text : Seçili Liste eleman n görünen liste de erini verir ve de
tirir. Türü String'dir.
ItemData([ListIndex]) : ListIndex de eri ile belirtilen liste eleman
de erini verir ve de tirir. Türü Long'dur.
n görünmeyen
Selected([ListIndex]) : ListIndex de eri ile belirtilen liste eleman n seçli olup
olmad
belirtir ve atar. Türü Boolean'd r.
Sorted : Liste elemanlar n görünen de erlerine göre s ralan p s ralanmayaca
belirtildi i özelliktir. Türü Boolean'd r.
List([ListIndex]) : ListIndex de eri ile belirtilen liste eleman
ve de tirir.
n görünen de erini verir
MultiSelect : Kullan
n liste içinde birden fazla kay t seçip seçemeyece ini
belirtildi i özelliktir. Türü Integer'd r.
Metodlar
Clear : Liste içindeki bütün elemanlar silen metoddur.
ListBox1.Clear
AddItem [Görünen De er] : Görünen de eri parametre olarak alan bu metod ile
listeye eleman eklenir.
ListBox1.AddItem "Visual Basic"
Refresh : Listenin ekran görüntüsünü güncelleyen metoddur.
ListBox1.Refresh
RemoveItem([ListIndex]) : ListIndex ile belirtilen liste eleman
listeden siler.
ListBox1.Remove(0)
ComboBox : Arayüz içinde basit anlamda (tek sütun) listeleri tek sat rda
(sadece seçili liste eleman ) görüntülemekte kullan lan nesnelerdir. ComboBox
nesnesi içindeki liste elemanlar birden fazlaysa ComboBox nesnesinin sa
taraf ndaki dü ey ok tü üna bas nca sa taraf nda duruma göre kayd rma çubu u
olan bir liste belirir ve bu sayede listenin bütün elemanlar
görüntülenebilir. ComboBox nesnesinin en önemli metodlar ve özellikleri a
da
36
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
listelenmi tir. Ayr ca liste elemanlar n görünmeyen bir de erleri vard r. Görünen
de er bir String de erdir fakat görünmeyen de er bir Long de erdir.
Özellikleri
ListIndex : Tek seçimli modda seçili olan liste eleman n, çoklu seçim modunda en
son seçilen liste eleman n index numaras saklar. Türü Integer'd r. 1. Liste
eleman n ListIndex de eri 0'd r. n. eleman n ListIndex de eri n-1 dir.
ListCount : Liste elemanlar
n say
verir. Türü Integer'd r.
Text : Seçili Liste eleman n görünen liste de erini verir ve de
tirir. Türü String'dir.
ItemData([ListIndex]) : ListIndex de eri ile belirtilen liste eleman
de erini verir ve de tirir. Türü Long'dur.
n görünmeyen
Selected([ListIndex]) : ListIndex de eri ile belirtilen liste eleman n seçli olup
olmad
belirtir ve atar. Türü Boolean'd r.
Sorted : Liste elemanlar n görünen de erlerine göre s ralan p s ralanmayaca
belirtildi i özelliktir. Türü Boolean'd r.
List([ListIndex]) : ListIndex de eri ile belirtilen liste eleman
ve de tirir.
n görünen de erini verir
Style : ComboBox' n ekran üstündeki görünümünü ve kullan
tasar m an nda de tirilebilir.
de
tirir. Sadece
Metodlar
Clear : Liste içindeki bütün elemanlar silen metoddur.
ComboBox1.Clear
AddItem [Görünen De er] : Görünen de eri parametre olarak alan bu metod ile
listeye eleman eklenir.
ComboBox1.AddItem "Visual Basic"
Refresh : Listenin ekran görüntüsünü güncelleyen metoddur.
ComboBox1.Refresh
RemoveItem([ListIndex]) : ListIndex ile belirtilen liste eleman
listeden siler.
ComboBox1.Remove(0)
Horizantal ve Vertical ScrollBar : Arayüz içine s mayan bilgilerin veya
listelelerin görünmeyen yerlerinde dola mak için kullan lan nesnelerdir. Bu
37
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
nesnelerin tek yapt klar arayüzde minimum ve maximum de eri belli olan kayd rma
çubuklar n tutamaçlar n kullan taraf ndan yerleri kullan taraf ndan
de tirilmesi durumunda olu acak olayla programc kendi bilgilerini birle tirir ve
ekran üstünde bütün bilgileri kademeli olarak kullan ya aktarabilir. Buna örnek
olarak bir harita üstünde kullan
dola rmak verilebilir. Bu nesnelerin en önemli
özellikleri ve olaylar a
da aç klanm r.
Özellikleri
Value : Kayd rma çubu u tutamac
n mevcut konumunu belirtir. Türü Integer'd r.
Min : Kayd rma çubu u tutamac n en solda veya en altta oldu u zaman ald
Value de eridir. Türü Integer'd r.
Max : Kayd rma çubu u tutamac
Value de eridir. Türü Integer'd r.
n en sa da veya en üstta oldu u zaman ald
Olaylar
Change Olay : Kayd rma tutamac
Scroll Olay : Kayd rma tutamac
ras nda olu ur.
n konumunun de
mesiyle olurur.
n konumunun fare ile sürüklenerek de
tirilmesi
CheckBox : Kullan dan bir onay al nmas gerekti inde veya bir bilginin olup
olmad nda (Do ru/Yanl ) kullan ya bilgi vermek için veya kullan dan bilgi
almak amac yla kullan lan nesnedir. CheckBox'a ait önemli özellikler ve olaylar
da aç klanm r.
Özellikleri
Caption : CheckBox' n yan ndaki metni içeren özelliktir.
Value : CheckBox' n seçili olma durumunu gösteren ve de
Integer'd r.
tiren özelliktir. Türü
Olaylar
Click Olay : Kullan taraf ndan CheckBox nesnesinin seçilme durumunun
de tirilmesiyle gerçekle ir.
RadioButton : Kullan dan birden çok seçenek içinden sadece birini seçmesi
istenildi inde kullan lan nesnedir. Bir form içinde gruplanmam olan RadioButton'lar
içinden sadece bir tanesi seçilebilir. RadioButton'a ait önemli özellikler ve olaylar
da aç klanm r.
Özellikleri
Caption : RadioButton' n yan ndaki metni içeren özelliktir.
38
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Value : RadioButton' n seçili olma durumunu gösteren ve de
Boolean'd r.
tiren özelliktir. Türü
Olaylar
Click Olay : Kullan taraf ndan RadioButton nesnesinin seçilme durumunun
de tirilmesiyle gerçekle ir.
Visual Basic Nesnelerinin Ortak Özellikleri
Görsel Özellikler : Nesnenin görselli i ile ilgili özelliklerdir.
Alignment : Nesne içindeki metnin yatay hizalama eklini içerir.
BackColor : Nesnenin arkaplan rengini içerir.
Enabled : Nesnenin eri ilebilirli ini belirleyen özelliktir.
Font : Nesne üstündeki metnin yaz biçimini yap and ran özelliktir.
MousePointer : Mouse'un ekran üstündeki eklini belirler. önceden
tan mlanm
ekillerin yan ra 99-Custom özelli i ile istenilen cursor
eklini elde edebilirsiniz.
MouseIcon : Mouse'un ekran üstündeki özel (Custom) eklini içeren
özelliktir.
TabStop : Kullan
durup durmayaca
Tab tu unu kulland
belirler.
TabIndex : Nesnenin Tab s ras
nda oda n nesne üstünde
kontrol eder.
Tag : Gerekti inde kullan lmas amac yla programc için aç klama yeri.
ToolTipText : Nesnenin aç klamas kullan
kullan lan TollTip'lerin yaz ld özelliktir.
ya göstermek amac ile
Di er Özellikler :
Index : Nesnenin nesne dizileri içindeki numaras
De
r.
kenler
De kenler içlerinde veri saklayan programlama arçlar r. Bir program
geli tirirken programc iki türlü veri kullan r bunlar karakter dizileri ve say sal
verilerdir. Bu da bir programlama dilinde verileri depolayan araçlar ikiye
ay rmay zorunlu k lm r. Di er programlama dillerinde oldu u gibi Visual
Basic'te de veri depolayan araçlar yani de kenler ikiye ayr rlar. Bunlar :
Karakter dizileri ve say sal de kenlerdir. De kenlerle ilgili daha ayr nt bilgi
için a
daki tabloyu inceleyiniz.
39
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Karakter Dizileri
String
Karakter Dizisi
n Byte
Say sal De
kenler
Byte
0-255 aras tam say
1 Byte
Integer
sa tam say
2 Byte
Long
Uzun tam say
4 Byte
Single
sa rasyonel say
4 Byte
Double
Uzun rasyonel say
8 Byte
Currency
19 haneli rasyonel say
8 Byte
Di er
Boolean
True/False mant ksal tip
1 Byte
Variant
Her türlü veriyi depolayan de
8 Byte
De
ken tipi
ken Tan mlama
Visual Basic'te herhangi bir olay veya alt programda geçerli olacak bir de keni
tan mlamaya gerek yoktur. Kullan lan de ken olay veya alt program çal maya
ba lad nda otomatik olarak Visual Basic taraf ndan tan mlan r. Bu yöntem ile
program geli tirmek kolay olmas n yan ra büyük uygulamalarda yetersiz
kalmaktad r. Bu yöntemin bir dezavantaj ise kod yaz
s ras nda programc n
yapaca de kenlere ba yaz m (syntax) hatalar derleyicinin farkedememesidir.
Visual Basic Code Window içindeyken en üste Option Explicit yaz ld nda Visual
40
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Basic derleyicisi kullan lan bütün de kenlerin tan mlanmas
Basic'te üç türlü de ken tan mlama yöntemi vard r bunlar;
art k lar. Visual
Dim : Kullan ld ortamda geçerlili ini sürdüren de kenler tan mlamak için
kullan r. De kenler Dim ile bir olay n içinde tan mland nda sadece o olay içinde
geçerli olurlar. Formun veya Modülün General Declarations bölümünde tan mlanan
de kenler tan mland klar form veya modülün içindeki bütün olay, alt program ve
fonksiyonlarda geçerli olurlar. A
daki örnekte x de keni Dim deyimi ile
tan mlanan bir Integer'd r. Kullan Command1 isimli dü meye bast nda do ar,
sadece Command1_Click() olay içinde geçerlidir ve olay bitti inde ölür.
Private Sub Command1_Click()
Dim x as Integer
x=3
End Sub
Static : Kullan ld ortamda geçerlili ini sürdüren ve alt program n içinde oldu u form
veya modül bellekten silinene kadar ya am sürdüren de kenler tan mlamak için
kullan r. A
daki örnekte x de keni Static deyimi ile tan mlanan bir Integer'd r.
Kullan Command1 isimli dü meye ilk bas nda do ar, olay bitti inde uyur ve
içindeki de eri saklar, sadece Command1_Click() olay içinde geçerlidir ve
Command1 isimli CommandButton' n üstünde oldu u form bellekten silindi inde
ölür. A
daki örnekte dü meye üç kez bas ld nda Label1 nesnesi ekranda 9
gösterecektir.
Private Sub Command1_Click()
Static x as Integer
x=x+3
Label1.Caption=x
End Sub
Redim : Esnek boyutlu dizi de kenler tan mlamak veya tan mlanm bir dizi
de kenin boyutlar de tirmek için kullan r. Ayr nt bilgi sonraki bölümlerde
verilecektir.
Global : Sadece Modüllerin General Declarations bölümünde kullan labilir. Projenin
heryerinde geçerli olan, program çal
nda do an ve program bellekten silindi inde
ölen de kenler tan mlamak için kullan r.
Not: Global tan mlanm x de keniniz varsa ve herhangi bir olay n, alt program n
veya fonksiyonun içinde de bir x de keni tan mlarsan z. O olay n, alt program n ve
fonksiyonun içinden global olan x de kenine eri emezsiniz.
41
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
De
ken dönü üm fonksiyonlar
CStr() : Herhangi bir veri tipini String veri tipine dönü türmek için kullan r.
CByte() : Herhangi bir veri tipini Byte veri tipine dönü türmek için kullan r.
CInt() : Herhangi bir veri tipini Integer veri tipine dönü türmek için kullan r.
CLng() : Herhangi bir veri tipini Long veri tipine dönü türmek için kullan r.
CSng() : Herhangi bir veri tipini Single veri tipine dönü türmek için kullan r.
CDbl() : Herhangi bir veri tipini Double veri tipine dönü türmek için kullan r.
Str() : Herhangi bir say veri tipini String veri tipine dönü türmek için kullan r.
Int() : Herhangi bir say veri tipini tam say ya dönü türmek için kullan r.
Val() : Herhangi bir String veri tipini say ya dönü türmek için kullan r.
String
leme Fonksiyonlar
Trim() : Bir String ifadenin ba nda ve sonunda bulunan bo luklar siler.
LTrim() : Bir String ifadenin ba nda bulunan bo luklar siler.
RTrim() : Bir String ifadenin sonunda bulunan bo luklar siler.
Mid(String,start,lenght) : Bir String ifadenin bir bölümünü kesmek için kullan r.
Örne in Mid("ABCDEF",3,2)="CD"
Right(String,Lenght) : Bir String ifadenin sondan istenilen say da karakterinin
kesilmesi anlam na gelir. Örne in Right("ABCDEF",3)="DEF"
Left(String,Lenght) : Bir String ifadenin ba tan istenilen say da karakterinin kesilmesi
anlam na gelir. Örne in Left("ABCDEF",3)="ABC"
Yeni De
ken Türü Olu turma (Type)
Mevcut kullan lan de ken türleri yetersiz kald nda veya yap lan çal may
sadele tirmek istendi inde yeni bir de ken türü tan man r. Yeni de ken türü bir
veya birden fazla mevcut de ken türlerinde tan mlanm alt de kenlerden olu ur.
Bu i lemi gerçekle tirebilmek için a
daki yaz m kural na uygun Type komutu
kullan r. Type komutu sadece modül içinde kullan labilir. Form içinde kullan lamaz.
Type [Yeni De
ken Türü Ad ]
AltDe
ken1 As MevcutTür
AltDe
ken2 As MevcutTür
42
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
.
.
AltDe
ken3 As MevcutTür
End Type
Yeni olu turulmu bir de ken türü program n her yerinde di er de
farks z olarak kullan labilirler.
kenlerden
Not: Rasgele eri imli dosyalarda kullan lacak olan bir de ken türü içinde tan mlanan
String türünde alt de kenlerin uzunluklar a
daki örnek koddaki belirtilmelidir.
Type Ogrenci
Ad As String * 25
Soyad As String * 25
Ya
As Integer
AnneAd As String *25
BabaAd As String * 25
End Type
Operatörler ve Ba laçlar
=
Atama Operatörü
x=3
+
Toplama Operatörü
x=y+5
Ç karma Operatörü
x=y-3
*
Çarpma Operatörü
x=y*3
/
Bölme Operatörü
x=y/2
^
Üs Operatörü
x=y^2
>
Mant ksal Büyüktür Operatörü
43
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
x>5
<
Mant ksal Küçüktür Operatörü
x<3
<>
Mant ksal Farkl Operatörü
x<>6
Not
Mant ksal De il Ba lac
Not x>5
And
Mant ksal VE Ba lac
x>3 And y<>2
Or
Mant ksal VEYA Ba lac
x=5 OR y<9
If-Then-Else
Nesne temelli programlamada program ak sadece olaylar ile yap lmaz. Olaylar
içinde yaz lan kodun mant k çerçevesinde yönlendirilmesi gereklidir. Visual Basic'te
büyük ço unlukla yönlendirme i lemi if bloklar ile gerçekle tirilir. If bloklar n yaz m
(syntax) kural a
dad r.
If
art1 Then
'Blok Ba lang
............. ' art1 do ru ise yap lacak i lem
ElseIf
art2 Then
................ ' art1 Yanl
ElseIf
ve art2 do ruysa yap lacak i lem
art3 Then
............... ' art1 ve art2 Yanl
ElseIf
art3 do ruysa yap lacak i lem
art4 Then
...............
ElseIf art(n) Then
............... 'Bütün artlar Yanl
ve art(n) do ruysa yap lacak i lem
Else
............... 'Bütün artlar Yenl
End If
44
'Blok Sonu
ise yap lacak i lem
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
If bloklar kullan rken programc n yukar daki gibi Else veya ElseIf alt If bloklar
kullanma zorunlulu u yoktur. A
daki örnekleri iyice inceleyiniz.
If x=8 Then
................ ' x=8 ise
End If
'-------------------------------------------------------------If x=8 Then
................ 'x=8 ise
ElseIf x=9 Then
................ 'x=8 de il ve x=9 ise
End If
'-------------------------------------------------------------If x=8 Then
................ 'x=8 ise
Else
................ 'x=8 de ilse
End If
'-------------------------------------------------------------If x=8 Then
................ 'x=8 ise
ElseIf x=9 Then
................ 'x=8 de il ve x=9 ise
Else
................ ' x=8 de ilse ve x=9 de ilse
End If
Select Case
45
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
"Select case" komutu ikiden fazla durumun söz konusu oldu u artlarda
program ak
yönlendirmek için kullan lan yönlendirme komutudur. "Select
Case" komutu durum de kenine göre hareket eder. A
da "Select Case"
komutunun yaz m kural aç klanm r.
Select Case [Durum De
keni]
Case [Durum1]
...............
' Durum1 olu ursa çal acak kod
Case [Durum2],[Durum3]
...............
' Durum2 veya Durum3n olu ursa çal acak kod
Case Is > [Durum4]
...............
' Durum de
keni Durum4'den büyükse
' çal acak kod
Case Is < [Durum5]
...............
' Durum de
keni Durum5'den küçükse
' çal acak kod
Case Else
...............
' Yukar daki durumlar n hiçbiri gerçekle miyorsa
' çal acak kod
End Select
ral Dosya Eri imi
Output : ral eri im dosya açma yöntemlerinden biridir. Sabit disk
üstünde var olmayan bir dosyay olu turur. Var olan dosyalar n içeri ini
silerek açar. Yaz m kural a
daki gibidir.
Open [Dosya Yolu] For Output As #[Dosya No]
[Dosya Yolu] : Aç lacak dosyan n sabit disk üstündeki adresidir. Türü String'dir.
[Dosya No] : Aç lacak dosyaya program içinde eri ilirken kullan lan 0-255 aras ndaki
say r. Farkl iki dosya için ayn say kullan lamaz
Dosyaya bilgi yazmak için Print# veya Write# komutlar kullan r.
46
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Print #[Dosya No], [String De
ken]
Write #[Dosya No], [String De
ken]
Append : ral eri im dosya açma yöntemlerinden bir di eridir.
Dosyan n içindeki var olan sat rlar n sonuna sat r eklemek için
kullan lan yöntemdir. Aç lmak istenen dosya sabit disk üstünde yoksa
hata verir. Yaz m kural a
daki gibidir.
Open [Dosya Yolu] For Append As #[Dosya No]
[Dosya Yolu] : Aç lacak dosyan n sabit disk üstündeki adresidir. Türü String'dir.
[Dosya No] : Aç lacak dosyaya program içinde eri ilirken kullan lan 0-255 aras ndaki
say r. Farkl iki dosya için ayn say kullan lamaz.
Dosyaya bilgi yazmak için Print# veya Write# komutlar kullan r.
Print #[Dosya No], [String De
ken]
Write #[Dosya No], [String De
ken]
Input : ral eri im dosya açma yöntemlerinden biridir. Sadece okuma
amaçl dosya aç rken kullan r. Dosyay Input eklinde açabilmek için
dosyan n sabit disk üstünde var olmas gerekmektedir.yap lan her
okuma i leminde yeni okuma için otomatik olarak bir alt sat ra
konumlan r. Aksi halde hata olu ur. Yaz m kural a
daki gibidir.
Open [Dosya Yolu] For Append As #[Dosya No]
[Dosya Yolu] : Aç lacak dosyan n sabit disk üstündeki adresidir. Türü
String'dir.
[Dosya No] : Aç lacak dosyaya program içinde eri ilirken kullan lan 0255 aras ndaki say r. Farkl iki dosya için ayn say kullan lamaz .
Dosyadan okuma yapmak için Input# veya Line Input# komutlar
kullan r.
Input #[Dosya No], [String De
ken]
Line Input #[Dosya No], [String De
ken]
Rasgele Dosya Eri imi
Rasgele dosya eri im yöntemini kullanabilmek için öncelikle dosya içinde saklanacak
veriler modellenmelidir. Veriler modellendikten sonra herbir veri grubu için bir
de ken türü olu turulmal r. De ken türü olu turmak için Type komutu kullan r.
47
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
Rasgele eri imli dosyan n s ral eri imli dosyalardan program kodlama aç ndan en
büyük fark dosyaya yazma ve okuma için tek bir yöntem kullan lmas r ve sabit disk
üstünde bulunmayan bir dosyay olu turmak i lemininde bu yöntem taraf ndan
yap lmas r. Rasgele eri imli dosyalarda kay tlar n uzunlu u sabit oldu undan dosya
içindeki her kayd n byte cinsinden adresi bellidir. Buyüzden dosya içindeki istenilen
kayda ait bilgiler direkt olarak de tirilebilir. Bu özellik bu yöntemin en önemli
özelli idir. Rasgele Eri imli dosya kullanma yönteminde dosya açma i lemi a
daki
ekilde kullan r.
Open [Dosya Adresi] For Random As #[Dosya No] Len=[Kay t Uzunlu u]
[Dosya Adresi] : Türü String'tir. Aç lacak olan dosyan n sabit disk üstündeki adresini
belirtir.
[Dosya No] : Türü Integer'd r. Aç lacak dosyaya daha sonra program içinde bu
dosyay temsil edecek olan ve ba ka bir dosya taraf ndan kullan lmayan bir dosya
numaras r.
[Kay t Uzunlu u] : Türü Integer'd r. Aç lacak olan dosyada kay tlar n adreslenmesinde
kullan lan üzere her bir kayd n byte cinsinden boyutudur.
Dosya içindeki kay t say dosyan n byte cinsinden olan boyutunu kayd n byte
cinsinden olan boyutuna bölümünden ibarettir. A
da bu i lemi gerçekle tiren
program kodu verilmi tir.
Ks = LOF([Dosya No])/[Kay t Uzunlu u]
Dosya içine kay t eklemek için put de imi kullan r. Put de iminin yaz m ekli
da belirtilmi tir.
Put #[Dosya No],[Kay t No],[Kay t De
keni]
[Dosya No] : Dosya açarken kullan lan doaya numaras
r.
[Kay t No] : Kayd n kaç nc s raya yaz laca
belirtir. Bilgisayar sabit kay t uzunlu u
sayesinde belirtilen kayd n byte cinsinden adresini hesaplar.
[Kay t De keni] : Kay n No sayesinde hesaplanan kay t adresine Kay t de
içerdi i bilgiler yaz r.
keninin
Dosya içinden bir kayd okumak için Get de imi kullan r. Get de iminin yaz m kural
da belirtilmi tir.
Get #[Dosya No],[Kay t No],[Kay t De
keni]
[Dosya No] : Dosya açarken kullan lan doaya numaras
r.
[Kay t No] : Kayd n kaç nc s radan okunaca
belirtir. Bilgisayar sabit kay t
uzunlu u sayesinde belirtilen kayd n byte cinsinden adresini hesaplar.
48
KU- KUR E itimi: Ders Sorumlusu y.Doç.Dr.Hilmi Ku çu
[Kay t De keni] : Kay n No sayesinde hesaplanan kay t adresinden okunan
bilgiler Kay t de kenine yaz r.
Program içinde kullan lmayan dosyalar Close de imi ile kapat lmal
Close [Dosya No]
49
r.

Benzer belgeler