Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
190
Cevap
94821
Tıklama
0
Öne Çıkarma
Cevap: Visual Basic Örnekler (5. sayfa)
S
19 yıl
Yarbay
Konu Sahibi

Visual Basic Temel Ders Notları : Yeni baslayanalar için güzel bir kaynak 40 sayfa 627 kb rarlı dosya..

http://rapid share.de/files/7349431/VisualBasicTemel.rar.html


Bu mesaja 1 cevap geldi.
M
19 yıl
Çavuş

Merhaba, herkeze kolay gelsin.
Bende v.net e yeni baslayanlardan biriyim. kendimce bazi calsimalar yapmaya calsiyorum. takildigin bir iki yer var. birisini sormamda sakinca yoktur sanirim.

Bir calsima hazirladim ve bunu setup dosya halince getirdim diyelim. Bu programin ismine E programi diyelim simdilikte kafamiz karismasin. E programi kuracak kisi setup casitirdiginda program kuruluma sirasinda password girmez ise program kurulduktan sonra(artik secilen sureye bagli 1-2 hafta) calsimaz duruma gelecek. Yada programi kurduktan sonra menuden istedigi yerden parolayi girecek ve program sinirli kullanimdan kalkacak. Bildigimiz standart prg ler gibi yani. Ve parolada oyle olmaliki bir E prg si icin kullanilacak parola baska bir E prg sinde kullanilamasin.

Kisacasi windows taki serial key olaylarinin benzeri. yardimci olabilecek arkads varmi acaba aramizda.

baska bir soru ise print olayi bir turlu beceremiyorum. yazdir olayini direk form sayfasi yapiyorum o zamanda istedigim sonucu elde edemiyorum. Form uzerindeki text.bixlarin icerigini arka planda calsisan bir word yada text dosyasina falan mi atmam gerekiyor acaba?


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Asal çarpanlara ayırma kodu

(Bir command, bir tex öğesi ve bir list box olacaktır. Sayı texte girilecek. Commanddan komut girimiyle girilen sayının asal çarpanları listte cıkacaktır)

Private Sub COmmand1_Click()

Dim asal,bölen as Integer

asal=val(text1.text)
bölen=2
while asal <>1
While asal mod bölen = 0
List1.AddItem (Str(bölen))
asal=asal/bölen
wend
bölen=bölen +1
wend
end sub


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Fibonachi Dizisi,

Bilmeyen için belirtelim Fibonachi dizisi ilk iki elemandan sonraki elemanlar önceki iki elemanın toplamı şeklinde gider. Da Vinci Şifresi kitabında böyle bir olay vardı belki hatırlayanlar olabilir. 1,1,2,3,5,8,13,21,34...

Visual Basic te amacımız Fibonachi dizisinde n eleman sayısını girip bir list boxta gösterebilme... Bunun için n sayısını girecek bir text box, sayıları gösterecek list box ve komutu verecek command butonu olması yeterlidir.


Private Sub Command1_Click()
Dim sayi1,sayi2,sayi3 as Long
Dim n,i as Integer

n=text1.text
sayi1=1
sayi2=1
Lİst1.Clear
List1.Additem (sayi1)

For i = 2 to n
sayi3 = sayi1 + sayi2
sayi1=sayi2
sayi2=sayi3
List1.AddItem (sayi2)
Next i
End Sub



S
19 yıl
Çavuş

Dim db1 As Database
Dim rs1 As Recordset

Private Sub Command1_Click()
Dim cevap As String
cevap = MsgBox("Bu kayıt dosyaya kaydedilsinmi?", vbYesNo)

If cevap = vbYes Then
rs1.AddNew
rs1.Fields("Sicil") = txtsicil
rs1.Fields("Ad") = txtad
rs1.Fields("Soyad") = txtsoyad
rs1.Update

txtsicil = ""
txtad = ""
txtsoyad = ""
txtsicil.SetFocus
Else
End
End If
End Sub

Private Sub Command2_Click()
txtsicil = ""
txtad = ""
txtsoyad = ""
MsgBox "Yeni Bir Kayıt Girmek İstiyormusunuz?"
txtsicil.SetFocus
End Sub

Private Sub Command3_Click()
On Error GoTo hata
rs1.MovePrevious
txtsicil = rs1.Fields("Sicil")
txtad = rs1.Fields("Ad")
txtsoyad = rs1.Fields("Soyad")
Exit Sub
hata:
If Err.Number = 3021 Then rs1.MoveNext
End Sub

Private Sub Command4_Click()
On Error GoTo hata
rs1.MoveNext
txtsicil = rs1.Fields("Sicil")
txtad = rs1.Fields("Ad")
txtsoyad = rs1.Fields("Soyad")
Exit Sub
hata:
If Err.Number = 3021 Then rs1.MoveLast
End Sub

Private Sub Command5_Click()
rs1.MoveFirst
txtsicil = rs1.Fields("Sicil")
txtad = rs1.Fields("Ad")
txtsoyad = rs1.Fields("Soyad")
End Sub

Private Sub Command6_Click()
rs1.MoveLast
txtsicil = rs1.Fields("Sicil")
txtad = rs1.Fields("Ad")
txtsoyad = rs1.Fields("Soyad")
End Sub

Private Sub Command7_Click()
Dim bul
bul = InputBox("Sicil Noyu Giriniz", "Sahıs Bul")
rs1.Seek "=", bul
If rs1.NoMatch Then
MsgBox "Aradığınız Kayıt Bulunamadı"
Else
txtsicil = rs1.Fields("Sicil")
txtad = rs1.Fields("Ad")
txtsoyad = rs1.Fields("Soyad")
End If

End Sub

Private Sub Command8_Click()
rs1.Edit
rs1.Fields("Sicil") = txtsicil
rs1.Fields("Ad") = txtad
rs1.Fields("Soyad") = txtsoyad
rs1.Update
End Sub

Private Sub Command9_Click()
End
End Sub

Private Sub Form_Load()
Set db1 = OpenDatabase("d:\PERSONEL.mdb")
Set rs1 = db1.OpenRecordset("SAHIS")
rs1.Index = "SicilNo"
End Sub






baya işe yarar kodlar...



J
19 yıl
Yarbay

Hocam ellerinize saglık ama bunlari nasil kullanabiliriz vb programin içinemi koyacagiz ?
Saygılar...


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Kodların cogunlugu COmmand Butonu için gecerli kodlardır. Yani VB açıldıgı zaman boş alana bir tane COmmand Buton ata o butonu çift tıkla ve cıkan ekrana kodları yaz. Hepsi bu

Ama tabiki sadece CommandButon değil diğer elemanlarında herbirine ayrı kodlar yazılabilir. Kolay gelsin


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:


Degiskenlerin belirtilmesi (tanimlanmasi):



Bir degiskeni Visual Basic’te kullanabilmek ve degiskenlerden yararlanabilmek için degiskenleri belirtmek gerekmektedir. Bir degiskeni belirli bir kümeye ait olarak tanimlayip belirtmeye “degiskeni belirtmek” gerekir



Matematikten hatirlarsak;



Bir fonksiyon veya kümesel islem icin kullanacagimiz degiskenlerin ne tür bir sayi olacagini nerede tanimli oldugunu belirtmemiz gerekir.


x = { x | x є Z+ , x < 6 , x > 2 }


Bu matematiksel ifadenin anlami:



X öyleki; x sayisi pozitif tam sayilarda tanimli, 6 dan küçük, 2 den büyük

(Buradaki Z+, pozitif tamsayilari göstermektedir)



Burada sonuç olarak x degiskeninin alabilecegi degerler:



x = { 3, 4, 5}



Matematikte iyi olmayanlar üzülmesinler, burada sadece belirtmek istedigimiz, x degiskeni belirli bir sinirlama ile tanimlamaktir. Tabi ki bir sinirlama getirmeden de belirtme yapmak mümkündür.

Örnek olarak;

x = { x | x є Z}


Burada x bütün tam sayilar olabilir.



Simdi farkli bir yoldan açiklama yapalim.



Örnek olarak;



A adiyla tanimladigimiz bir topluluk var. Bu A toplulugunu söyle ifade ediyoruz:
Istanbuda, Ümraniyede, Çamlica sitesinde, Cansu apartmaninda, 3. katta ikamet eden insanlar.



Eger bir degiskeni bu kümeye ait olarak tanimlarsak, bu degisken degeri, sadece buradaki insanlardan birinin ismi olarak deger alabilir. Matematikte verdigimiz örneklerde ayni olayi ifade etmektedir.



Tabiki bu kümeyi genisletmek veya daraltmak, veya bir küme belirtmeksizin sadece degiskeni belirtmek te mümkündür.



Sonuçta Degisken belirtmek bir tür beyan etmedir. Tabiki daha büyük bir kümeye ait bir degiskeni belirtmek ve bunu saklamak için daha çok yer harcanacaktir.



Örnek olarak;



Kisilerin adreslerini tuttugumuz bir dosya düsününüz. Eger “Istanbuda, Ümraniye’de, Çamlica sitesinde, Cansu apartmaninda, 3. katta ikamet eden insanlar.” seklinde belirttigimiz kümeden bir kisinin adresini yazacaksak sadece “5. Daire” diye belirtmek mümkün olacaktir. Fakat böyle bir küme belirtmeden bir kisinin adresi için

“KITA – ÜLKE – SEHIR – ILÇE (veya KASABA) – SEMT – SOKAK – BINA – NUMARA – POSTA KODU....” gibi bir çok bilgi girmek zorunda kaliriz. Haliyle bu tip tanimlama kagit üzerinde de daha çok yer kaplar. Aynen programlama da da bu tip tanimlamalar yani daha genis tanimlamalar, daha çok yer kaplarlar.



Bir degisken, prosedürler içinde;



Dim [Degisken ismi]



seklinde belirtilir.




Örnek olarak;



”Merhaba” adinda bir sub prosedürümüz bulunmaktadir. Bu prosedürün sub veya function olmasi önemli degildir. Sadece belirtmek istedigim herhangibi bir prosedürde degiskenlerin tanimlanmasidir.



Sub Merhaba()



End sub



Peki tanimlamak istedigimiz degiskenleri nereye nasil yaziyoruz.

Örnek olarak;

”Merhaba” adli bu prosedür içinde, ”a” adinda bir degiskeni tanimlamak için



Sub Merhaba()

Dim a

End Sub



... seklinde bir ifade kullaniyoruz. Sonuç olarak bu örnekte “Merhaba” adli prosedürde “a” adli bir degisken belirtmis bulunuyoruz.



Yeni bir örnek;



“Merhaba” adli prosedürde a, b, mat, c12 adli 4 tane degisken belirleyelim (tanimlayalim).





Sub Merhaba()

Dim a

Dim b

Dim mat

Dim c12

End Sub



... gördügünüz gibi degisken tanimlama son derece basittir. Degiskenleri alt alta “dim” kullanarak tanimlayabildigimiz gibi ayrica;



Sub Merhaba()

Dim a, b, mat, c12

End Sub



... seklinde de belirtmek mümkündür. Bu yöntem bizim için daha kisa ve kullanislidir.





q Degisken isimlerini asla tirnak ifadesi içinde yazmayiniz
Örnek olarak ;

Dim “a”

seklinde bir degisken belirtmesi olamaz.

q Tirnak içinde gördügünüz hiçbir ifade degisken degildir.

q Dim ile prosedürlerde belirtilmis degiskenler prosedürde “End Sub” veya “End Function” ifadesiyle yok olurlar. Ve ayrica dim ile belirtilen degiskenler form içinde bilgi tasimazlar, sadece o prosedür içinde kullanilirlar.



Visual Basic’te “=” isareti



Visual Basic, program kodlari içerisinde; bir “=” isareti gördügünde, durur ve ilk olarak yanliz ve yanliz “=” isaretinin deger kismina yani sag tarafina bakar. Esittir’in sag tarafini hesaplar, daha sonra da esittirin sol tarafindaki degiskene esitler.



Sub Deneme()

Dim a

a = 3 + 3 / 3
End Sub





Öncelikle gördügüz sari bölümdeki deger hesaplanir (4), daha sonra “a” degiskenine atanir.



Bir prosedür içinde tanimladigimiz bir degiskene, süphesiz deger veririz. Çünkü zaten bir degiskeni bir degeri tutmasi için belirtiriz. Degiskenlere deger atamak “=” isaretiyle mümkün olmaktadir. Visual Basic’te, iki türlü degisken atamasi vardir. Bunlar:



Degisken = Deger Esitlemesi


Asagidaki örnekte bir degiskene bir deger atadik.



Sub Deneme()

Dim a

a = 3

End Sub



Örnekte, “a” adli degiskene 3 degerini atadik. Simdi asagidaki örnege bakalim.



Sub Deneme()

Dim a, b, c

a = 3
b = 4

c = 2.876456

End Sub



Örnekte, “a”, “b”, “c” adli degiskenlere “3”, “4”, “2.876456” degerlerini atadik. Simdi asagidaki örnege bakalim.



Sub Deneme()

Dim a

a = 3

a = a + 1

End Sub



Sari ile taranmis alana baktiginizda;

a = a + 1



...ifadesinde, matematiksel bir yanlis oldugunu görürsünüz. “Nasil olurda bir sayi (a) kendisinin bir fazlasina esit olur.” Yani 123 nasil olurda 124’e esitlenir. Bu matematiksel olarak yanlistir. Fakat Visual Basic de yanlis degildir. Yukarda belirttigimiz gibi, öncelikle “=” in sag tarafi hesaplanir. Yani;



a + 1



“a” degiskeninin degeri 3 oldugundan



3 + 1 = 4



...sonucu alinir. Simdi bu alinan deger esitligin diger tarafindaki (sol) degisken degerine esitlenir. Yani; a = 4 olur. Bunun gibi ifadeleri daha sonralari döngülerde kullanicagiz.





Degisken = Degisken Esitlemesi




Ikinci tip esitleme ise, bir degiskenin degerine, bir baska degiskenin degerini atamaktir.



Sub Deneme()

Dim a, b

a = 3

b = a

End Sub



Burada ilk olarak; a degiskenine “3” degerini atadik. Daha sonra da, b degiskenine a degiskeninin degerini atadik. Iste böyle bir durumda da yine “=” kuralimizi kullanicaz. Öncelikle “=” sag tarafini hesaplayalim.



b = a


a, 3 oldugundan...



b = 3



Iste sonuçta; b degiskeni a degiskeninin degerini alacaktir.



Degiskenlere yazisal degerlerin atanmasi



Süphesiz, degskenlere sayisal deger atiyabildigimiz gibi, yazisal degerlerde atamak mümkündür. Örnegin; a adli degiskene “Nasilsin” yazisal ifadesini atayalim



Sub Deneme()

Dim A

A = “Nasilsin”

End Sub



Gördügünüz gibi, yazisal ifadeleri tirnak içinde yaziyoruz. Eger bu yazisal ifadeyi tirnak içinde belirtmezsek, o zaman A degiskeninin degeri Nasilsin adli bir degiskenin degerine esit olur. Böyle bir degisken olmadigi için, A degiskeninin degeri bos olur. Asagida örnekte görülüyor.



Sub Deneme()

Dim A

A = Nasilsin

End Sub



Asagidaki iki ifadedeki fark; ilk ifadede A degiskeninin degeri “Nasilsin” yazisal degeridir. Ancak ikincide, A degiskeninin degeri yoktur.



Sub Deneme()

Dim A

A = “Nasilsin”

End Sub
Sub Deneme()

Dim A

A = Nasilsin

End Sub




Ikinci ifadede eger Nasilsin adli bir degisken olsaydi, o zaman A degiskeninin deger Nasilsin adli degiskeninin degeri olurdu.



Örnegin:



Sub Deneme()

Dim A, Nasilsin, B

Nasilsin = “Güzel”

A = Nasilsin

B = “Nasilsin”

End Sub



Yesille taranmis bölgedeki A degiskeninin deger “Güzel” dir. Sari ile taranmis B degiskeninin degeri ise “Nasilsin” dir.





q Hiçbir zaman bir yazilsal deger veya sayisal deger bir degiskene esitlenmez.





Sub Deneme()

Dim A

3 = A

End Sub



..gibi bir ifade degisken görüldügü gibi 3’e bir degisken atamak imkansizdir. Çünkü “=” in sol tarafinda mutlaka bir degisken olmalidir ki deger atanabilsin. Fakat 3 sabit bir degerdir.



Aslinda degiskenleri belirlemeden de kullanabiliriz. Fakat bu bize çok hafiza kaybettirir. Yani RAM’leri doldurur. Eger küçük bir program yapiyorsak bu az ram kaybi bizim programimizi etkilemez. Ancak büyük programlarda, büyük etkiler olusur. Programin yaptigi islemler yavaslar. Bu yüzden profesyonelce çalismali ve her degiskeni belirtmeliyiz.



Visual Basic ‘te “&” isareti



Visual Basic ‘te iki yazisal ifadeyi birlestirmek için “&” isareti kullanilir.



Örnegin;



Sub Deneme()

Dim A as string

A = “C” & “W”
End Sub



Burada A degiskeninin degeri “VBKAYNAK.COM” olur. Tabi bunu



Sub Deneme()

Dim A as string

A = “CW”

End Sub



...seklinde belirtmek daha kolaydir. Ancak, bir degisken ve bir yaziyi birlestirmek için & kullanmak zorunludur.



Sub Deneme()

Dim A as string,B as string

A = “CW”

B = A & “’ye hosgeldiniz”

End Sub



Burada ise B degiskeninin degeri “VBKAYNAK.COM’a hosgeldiniz” olur. Görüldügü gibi yazisal degerli ifadeleri birlestirmek için “&” kullanilir.



“&” isareti daha çok bilinmeyen degerlerde kullanilir. Yani programi hazirlarken bir özellik düsündünüz. Bu özelligin program kapandiginda “Güle Güle [Kullanici Ismi]” mesajini göstermesini istiyoruz. Biz programi yazarken, programi kullanacak kisinin veya kisilerin ismini bilmemekteyiz. Kullanici ismi Windows’a kayitlidir. Bunu registry sayesinde okuyup alabiliyoruz (Registry’yi daha ilerki konularimizda görecegiz). Suan için registry’den bu kayiti nasil ve hangi yöntemle okudugu önemli degildir. Sadece bu degeri okuyup bir degiskene esitledigimizi düsünelim.



Sub Deneme

Dim Kullanici as string

Dim Kullanici as string

Kullanici = ... Registry’den okunacak

Mesaj = “Güle Güle “ & Kullanici

End Sub



Sari ile taranmis alana baktigimizda “Güle Güle “ degeriyle Kullanici adli degiskenin degeri birlestiriliyor.









Degisken Türleri



Her degiskene, o degiskene atayacagimiz degere göre bir degisken türü seçebiliriz. Bu bize programlarimizda hiz performans kazandirir. Daha dogrusu uygun tür bizi hafiza kaybindan kurtarir. Asagidaki tabloda degisken türleri gözükmektedir.



Isim Tür Varsayilan
deger
Deger Boyut
Byte
Tam Sayi
0
0 – 255 arasi
1 Byte

Boolean
Dogru / Yanlis
Yanlis
-1(Dogru), 0 (Yanlis)
2 Byte

Integer
Tam Sayi
0
-32.768 / + 32.767 arasi
2 Byte

String
Yazisal ifade
“”
1 / 65.400
X Byte

String Yazisal ifade
“”
231 karakter (2 Milyar)
10+ X Byte

Variant
Genel
(Bos)
Her türlü deger
16 Byte


X: Karakter sayisi kaç ise, X o sayiya esittir. Örnek: 5 karakterli bir yazisal ifade hafizada 5 byte yer kaplar.



q 65.400 karakterden daha uzun karakterlerde 2. tip String’i kullanmak gerekmektedir.

q Degiskenlere deger atanmazsa degiskenler varsayilan degerleri alirlar.



Bunlardan baska degisken tipleri degisken vardir. Ilerideki konularda bunlari isleyecegiz.



Eger bir degiskenin, degisken türü belirtilmezse, bu degiskenin türü “Variant” denen ve 16 Bayt yer kaplayan bir tür olur. Variant en genel degisken türüdür. Birçok formatta veriyi saklayabilir. Fakat çok degisken kullandigimizda variant ile belirttigimiz (yada türünü belirtmedigimiz) degiskenler hafizada çok yer kaplarlar.

EKSIK Yaz. Stringse 16 + len(x) kaplar



Örnek;



Bir prosedür içinde 12 tane degisken kullandigimizi düsünün, eger bunlara herhangi bir degisken tipi belirlemezsek (yani variant olurlarsa)

Bu degiskenler hafizada 16 x 12 = 192 Bayt yer kaplar.



Fakat diyelim ki, bu kullanacagimiz degiskenlerin hepsinin içerecegi degerler; 0 ile 255 arasinda tam sayilar, o zaman yukaridaki tablodan gördügünüz gibi “Byte” adli degisken bizim için uygun olacaktir. Iste bu sekilde bütün degiskenleri “Byte” türü ile tanimlarsak, hafizadan her bir degisken için 1’er bayt yer isgal olur. Böylece



16 x 1 = 16 Bayt yer kaplar



Sonuç olarak;



192 – 16 = 176 Bayt



yerden tasarruf etmis oluruz. Degiskenler bölümünde belirttigimiz gibi, bir deger tutucuyu belirli bir sinirlama içinde tanimlamaya, degiskenlerin belirtilmesi deniyordu. Iste Byte degisken türü için bu aralik;



x = { x | 0 < x < 255, x є Z }



Integer degisken türü için



x = { x | -32.768 < x < +32.767, x є Z }



Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:


YENI TANIM : MODÜL



Modüller; içlerine sadece ve sadece kod yazabilecegimiz Visual Basic kod sayfalaridirlar. Modüllerde obje çizimi veya yerlestirilmesi bulunmamaktadir. “Not Defteri” gibi bos bir yazi alanini andirir. Yani MS Word veya MS Wordpad deki gibi metin düzenleme özelligi yoktur(Kalin-Italik-Alti Çizgili). Modüllere; daha sonra görecegimiz, prosedürler ve genel tanimlamalar yazilir.





YENI TANIM : FORM


Form, Visual Basic’te yapacagimiz programlarin objelerini yerlestirdigimiz dizayn edilebilir tasarim penceresidir. Yani program içinde görünecek veya gizli kalacak bütün objeler, bu form denen objeye yada objelere yerlestirilir.





Ayrica bir form kod penceresi de içermektedir. Bu bölüme ise; forma çizdigimiz (yerlestirdigimiz) objelerin olaylarinda neler gerçeklesmesini istiyorsak bu kodlari uygun olarak bu objelerin kod kisimlarina gelerek yazariz. Formun kod penceresi aynen bir modül gibidir.





YENI TANIM : PROSEDÜR



Prosedür; Visual Basic’te hazirladigimiz uygulamanin(program) olaylarinin ve islemlerinin gerçeklesmesi için kodlarin yazildigi bölümlere verilen isimdir.



Yani programin kodunu yazarken istegimize göre istedigimiz komutlari, görevleri, islemleri; istedigimiz sekilde yazamayiz. Iste bunun için Visual Basic’in, programi çalistirinca hangi islemin; nerede, ne zaman, nasil, hangi yöntemle yapilacagini kavramasi ve buna göre islemi uygun ve zamaninda yapmasi için prosedürler kullaniriz. Yani prosedürleri paragraf gibi düsünebiliriz. Nasil bir kompozisyonda yaziyi belirli bir paragraf düzenine göre yaziyorsak, Visual Basic’te de kodlari ve islemleri belirli bir kurala göre yazmak gerekmektedir.



Visual Basic içerisinde iki tip prosedür vardir. Bunlardan biri “Sub” digeri “Function” dur. Visual Basic’te program kodlari sadece ve sadece prosedürlere yazilabilir. Paragraflarda oldugu gibi prosedürlerin bir baslangici ve bir bitisi vardir.



Örnegin;



Sub Deneme()



End Sub



Burada belirtmis oldugumuz örnek; Deneme adinda bir prosedür’dür. Görüldügü gibi kalip bir kelime kullanip (Sub) prosedür ismini yaziyoruz, daha sonra da prosedürün bittigini belirtmek için “End Sub” ifadesini kullaniyoruz.



Biz zaten Visaul Basic’te Sub yazdiktan sonra herhangibi bir prosedür ismi girip, Enter tusuna bastigimizda, Visual Basic; “End Sub” ifadesini kendi eklemektedir. Iste bu yüzden bir daha “End Sub” yazmaya gerek yoktur.





Sub Deneme()

.................

.................

End sub




“.............” diye belirttigimiz alanlara da prosedürün kodlarini yaziyoruz. Bu alana prosedür çagrildiginda Visual Basic’in yapmasini istedigimiz kodlari yaziyoruz. “.......” diye belirtilen alana istedigimiz kadar uzunlukta kod yazabiliriz.

Bir prosedür\'ü çagirmak için ismini yazmak gerekir. Örnekte gördügünüz gibi "Deneme" adli basit bir prosedür’ü çagirmak için sadece ismini yazmak yeterlidir.



Tabi bu bir programda bir prosedür bulunur demek anlamina gelmiyor. Istedigimiz kadar prosedür olusturabiliriz ve zaten en basit programlarda bile en az 20, 30 tane prosedür bulunmaktadir. Buna karsin Photoshop, Autocad gibi büyük programlarda on binlerce prosedür bulunmaktadir.



Prosedür Kurallari:



Prosedür isimleri asagidaki kurallara uydugu sürece her sey olabilir.



Birkaç örnek prosedür ismi : Deneme, A, B, c,d, isimsiz, Prg12, iyi, As5, Q3, m7m.....



1. Prosedür isimleri arasinda bosluk olamaz. Yani prosedür isimleri bosluk içeremez.
Örnek : merhaba arkadaslar , deneme görevi, Atatürk Baraji ....

2. Prosedür isimleri en fazla 255 karakterden olusabilir. Yani prosedür isimlerinin uzunlugu 255’i geçemez.
Örnek : abcdeeeeee................eeeee (255 tane) - böyle bir prosedür ismi olamaz.

3. Prosedür isimleri arasinda :;,./’#][!”£$%^&*() gibi karakterler kullanilamaz. Sadece _ (alt çizgi) isareti kullanabilir.
Örnek : word” , kelime[ , cumle* gibi prosedür isimleri olamaz,
fakat bu_donem, doviz_burosu gibi prosedürler olabilir.

4. Prosedür isimlerinin ilk karakteri mutlaka harf olmalidir, yani sayi veya “_” (alt çizgi) ile baslayan prosedür ismi olamaz.
Örnek : _hazir, _gidelim, 3otobus, 5yol gibi prosedür isimleri olamaz.
Fakat hazir_ , otobus3 gibi prosedür isimleri olabilir.

5. Bir modülde veya formda birden fazla ayni isimde prosedür belirtilemez

6. Prosedür isimleri arasinda büyük küçük harf ayrimi yoktur. Yani “DENEME” ile “DENeme” veya “denEME” vey “dEnEmE” ayni prosedüri belirtmektedir. Zaten bir prosedürü belirtirken , prosedüri nasil belirtiyorsak(büyük kücük harf bakimindan) bu prosedürü daha sonra da kullandimizda Visual Basic bu prosedürü, hemem belirtildigi sekile otomatik olarak döndürür.
Yani biz “DeNeME” adiyla bir prosedür belirttikten sonra bunu “dENEme” sekliyle de kullansak Visual Basic onu hemen ilk belirtilme sekline çevirir.





Sub ile belirtebildigimiz prosedürlerin yaninda bir de “Function” olarak belirtebildigimiz prosedürler bulunmaktadir. Temel olarak “Sub” ile “Function” arasinda büyük fark yoktur. Biz bu farki ilerleyen bölümlerde ele alacagiz. “Function” ile belirtebildigimiz prosedürün belirtme asamasinda veya islem asamasinda “Sub” dan bir farki yoktur. Yani function; sub ile ayni sekilde belirtilir.



Function Okul()



End Function



Function da da; aynen sub da oldugu gibi bir baslangiç ve bitis bulunmaktadir ve yine aynen sub daki gibi bu prosedür çagrildiginda gerçeklesmesini istedigimiz olaylari asagida gördügümüz “......” alanina yazariz.



Örnegin;



Function Okul()

.................

End function



q Tabiki function isimleri de prosedür ismi kurallarina uygun olmalidir.



Objelerin olaylari



Her objenin mutlaka bir ismi vardir. Isimsiz bir obje olamaz. Tabi ki form ve modüllerinde isimleri vardir. Hemen hemen obje bir veya birden fazla (çogunlukla) olay içermektedir. Bu olaylar, kullanici programi kullanirken, objelere yapmis oldugu çesitli olaylardir. Örnek: Bir butona tiklatilmasi olayi, bir metin kutusuna yazi girilme olayi, bir onay kutusuna isaret koyma olayi.... gibi. Iste bu olaylarda her obje bu olay gerçeklestiginde yapilmasi istenen prosedürü otomatik olarak çagirir.



Yani; form üzerine yerlestirdigimiz bir butona, tiklatildiginda yapilmasini istedigimiz olayi belirli bir prosedüre yazariz. Butona tiklatildiginda, buton objesi; bu olayi otomatik olarak çagirir.



Örnek olarak alacagimiz bir butona, tiklama (click) olayinda yani butona tiklatildiginda) “......” islemini (burada islem önemli degildir-bu yüzden “.....” seklinde ifade ettik) yapmasini istiyoruz. Objenin (yani butonun) ismi “buton1”



Butona form üzerinde; çift tiklattigimizda,



Private Sub buton1_Click()

...

End Sub



Private, daha sonra görecegimiz bir ifadedir. Bu yüzden “Private” anahtar kelimesini görmezden geliyoruz.



Sub buton1_Click()

...

End Sub



Butonun ismi “buton1” oldugundan; biz butona çift tiklattigimizda, Visual Basic; tiklatilan objenin, varsayilan özelligini yani “tiklama ( click ) “ olayininin baslangiç ve bitisini otomatik olarak ekler ( yukarda göreüldüü gib) . Burda dikkat edilmesi gereken nokta ise; “_” alt çizgi isaretidir. Objenin ismi ile olayi arasinda mutlaka “_” altçizgi vardir.



Tabiki bir butonun tiklama (click) olayindan baska birçok olayi daha vardir. Örnegin: KeyPress (Tus Basimi), MouseMove(Imleçi buton üzerinde hareket ettirme), GotFoucs (Butonun aktif hale gelmesi) .... gibi. Bu ve bunun gibi birçok olayi ileride inceleyecegiz.



Bu kisimdan sonra yapilan bütün örnekler ve islemler “Deneme” adli sub prosedürü içine yazilacaktir. Siz bu prosedürü aynen yazip çagirmak için, hangi olay sonucunda gerçeklestirilmesini istiyorsaniz, o olaydan bu prosedürü çagirmaniz gerekecektir.

Örnegin; Size gösterdigimiz örnek bir kod’u aynen Visual Basic içine kopyalayip, çalistirabilirsiniz. Fakat; bu olayi yani deneme adli prosedürü çagirma islemini gerçeklestirmek için, örnegin bir butonun tiklama(click) olayina prosedür ismini yazarak çagirabilirsiniz.



Private Sub BenimButon1_Click

Deneme

End Sub



Sub Deneme

‘Islemler

End Sub



“Form_Load” olayi



YENI TANIM : Form_Load



Bir form yüklendiginde; o formun “Form_Load” olayi çagrilir. Iste bu bölüm programinizin ilk baslangiç noktasidir. Yani ilk olarak (bazi istisnalar hariç) bu olay çagirilir. Örnegin, MS Word’ü açtiginizda, Word açilincaya kadar geçen (kisa da olsa) sürede, Word; kendi ayarlarini kullanici isimlerini, kisaltmalari, sablonlari ..... yükler. Sizde programlarinizda kayitlarinizi, ayarlarinizi ve bunun gibi olaylari yükleyebilirsiniz.



q Önemli olan nokta ise, bildiginiz gibi objelerin olaylarinin çagrilacagi prosedürler, [Obje ismi]_[Obje olayi] (buton1_Click) seklinde çagirilirlar. Ancak formun ismi ne olursa olsun, form’un load (yüklenme) olayinda Form1_Load, Fr3_Load, obj_Load seklinde olmaz, sadece ve sadece “Form_Load” seklinde olur. Çünkü bir formda tek bir form vardir ancak birçok obje olabilir.



Eger birden fazla form kullaniyorsaniz, hangi formun önce açilacagini ayarlamak için {Project} Menüsünden “[Proje Ismi] Properties” adli menü seçenegini tiklayin. Daha sonra “Startup Object” yazan yerin altindaki seçenek kutusundan, program açildiginda ilk olarak açilmasini istediginiz, formu seçiniz. En son olarak “OK” butonuna tiklayip bu pencereyi kapatiniz. Artik programi çalistirdiginizda, seçmis oldugunuz form açilacaktir.





Önemli bir nokta...



Belirttigimiz gibi “Visual Basic’te program kodlari sadece ve sadece prosdürlere yazilabilir”. Yani bir prosedür ancak ve ancak baska bir prosedur içinden çagirilir. Iste burada aklimizda bir soru olusuyor. Eger bir prosedür’ü baska bir prosedür tarafindan cagiriyorsak, o prosedür’ü hangi prosedür çagiriyor?



Bu soruyu iki bölümde yanitlamak mümkündür.

1 – Bilindigi gibi; Visual Basic obje tabanli bir programlama yazilimidir. Bu nedenle program açilista bir pencere olusturup bunu görüntüler(tabi ki istege göre bu özellik devre disi birakilabilinir). Pencere açildiginda formda düzenledigimiz objelerin olaylarindan (örnegin; bir butonun tiklanmasi (buton1_Click gibi) veya bir yazi kutusuna yazinin girilmesi olayi) bu kodlari çagirabiliriz.
Örnek: Bir butona tiklayarak bir dosya silme islemi gerçeklestirebiliriz.
Veya; program ilk açildiginda, form’un yüklenmesi (yukarida bahsettigimiz “Form_Load” ifadesi) asamasinda yapmak istedigimiz olayi gerçeklestirebiliriz. Örnek: Program kayitlarini okuyabiliriz ve ayarlari bunlara göre düzenleyebiliriz.

2- Sub Main:



Eger Visual Basic’de obje tabanli bir proje yapmiyorsaniz o zaman hiç obje kullanmak gerekmeyebilir. Iste böyle durumlarda bir olayin bütün programin islemini veya islemlerini baslatmasi gerekmektedir. Bu yüzden, “Sub Main” adli ifadeyi kullanmak gerekir.Bu ifade aynin bir form’un yüklenme (load) olayi gibi program ilk açildiginda çalistirilir. Programi “Sub Main” ifadesiyle baslatmak için {Project} Menüsünden “[Proje Ismi] Properties” adli menü seçenegini tiklayin. Daha sonra “Startup Object” yazan yerin altindaki seçenek kutusundan, program açildiginda ilk olarak açilmasini istediginiz, formu seçiniz. En son olarak “OK” butonuna tiklayip bu pencereyi kapatiniz. Artik programi çalistirdiginizda, “Sub Main” ifadesi çalisacaktir.







q Eger Windows tabanli ve obje görünümlü bir program yapiyorsaniz bu seçenegi seçmeyiniz.



YENI TANIM : DEGISKEN



Visual Basic’te yapmis oldugunuz programlar içerisinde; degisken denilen ve program içinde kullandiginiz degerleri geçici veya sürekli olarak tutan kaliplar bulunmaktadir.

Degiskenler; programlar hazirlarken kullandigimiz (anlik veya sürekli) veri degerlerini hafizada tutmaya yararlar. Nasil bir Word dosyasi; doküman içindeki yazilari, dökümanin ayarlarini .... içinde tutuyorsa, degiskenlerde belirtilen degerleri hafizada tutmaya yarar. Tabiki yine bu word dosyasini örnek alirsak; Word dosyasina yazip kaydettigimiz verileri degistirmek veya sonra onlardan bilgi almak mümkündür.

Degiskenlerde de veriyi daha sonra alma veya degerini degistirme mümkündür.



Bir degiskenin bir ismi ve bir degeri bulunmaktadir.
Matematikten bildigimiz gibi;


X = 3 + 4 / 2



... gibi bir esitlikte X bir degiskendir. Burada “X” degiskenin ismi “=” den sonraki kisimdan alinacak sonuçta; “X” degiskeninin degeri olacaktir. Yani bu ifade de “X” isimli bir degisken bulunmaktadir ve degeri 5’tir. Visual Basic’in matematikten nerdeyse hiçbir farki yoktur. Yani çogu matematik kurali Visual Basic’in de kuralidir.




Örnegin;

Bildiginiz gibi matematikte öncelik islem sirasi çarpmanin ve bölmenindir, iste bu yüzden yukarida ki ifade de “3 + 4 / 2” isleminde önce bölme islemi yapilir. Bu matematiksel bir kuraldir ve aynen Visual Basic’de de geçerlidir. Yani 3 + 4 islemini ilk önce yapip ta sonucu ikiye bölemeyiz. Öncelikle 4/2 isleminin sonucunu bulup sonra 3 degerine eklemeliyiz.



Peki degiskenlerin görevi nedir, neden degisken kullaniriz?



Degiskenler belirttigimiz gibi bir degeri belirli bir süre (geçici veya sürekli olarak - geçici veya sürekli olmasi belirlenebilir) hafizada tutmaya ve islemlerimizde bizlere yardimci olmaya yaramaktadir.



Bir örnek vermek gerekirse;



Hotmail’den hesabiniz varsa; siz hotmail’in sayfasina girip e-mail hesabiniza girince Hotmail sizin kullanici isminizi hafizaya alir (cookie dosyasina kaydeder), yani bir degiskene sizin kullanici isminizi atar. Daha sonra siz baska bir Internet Explorer (veya herhangi bir browser) açinca ve hotmail’in sayfasina girdiginizde, hotmail kullanici isminizi otomatik olarak yazmis olur (cookie dosyasindaki degiskeni okuyarak) . Size sadece sifrenizi girerek onaylama butonuna basarak e-maillerinize ulasmak kalir.








UYGULAMA:
Simdi bunu bir uygulama ile açiklayalim;

Bilgisayarinizin IP adresi 212.12.34.56 olsun, ve hotmail kullanici hesabiniz (deneme@hotmail.com) yani “deneme” olsun. Siz hotmail’de e-mail hesabiniza girince, hotmail bilgisayariniza bir cookie (çerez) dosyasi ekler ve bu dosya içine kullanici ismini yazar. Böylece bir sonraki açilista eger cookie dosyalari içinde hotmail’in cookie si varsa o zaman hotmail bu sayfayi görünür hale getirmeden otomatik olarak, kullanici ismi kismina bu dosyadan okuduüu degiskenin degerini yazar.
Iste bu örnekte de gördügünüz gibi; degiskenler programlarda ve islemlerde bize yardimci olan ve kolaylik saglayan sistemlerdir.





Baska bir örnek vermek gerekirse;

Windows’unuzu açtiginizda görmüs oldugunuz bütün ayarlar aslinda bir tür degiskendir. Örnek olarak; klavyenizin dili, ekranin çözünürlügü, bilgisayarin kullanici ismi....



Bu bütün ayarlar bir tür degiskendir ve hem isimleri, hem de degerleri vardir. Aslinda her bir dosya bir degisken toplulugundan olusan bir gruptur diyebiliriz. Çünkü bir Word dokümaninda; bu dökümanin yazisi, sayfa numaralarinin olup olmadigi, resim olup olmadigi, dipnotun olup olmadigi ... gibi birçok degisken bu dosyanin içine kaydedilir. Daha sonra bu degiskenler dosyadan çagirilir. (Nasil çagirildigi veya nasil kaydedildigi bizim için önemli degil)



Degisken kurallari:



Degiskenlerin isimleri asagidaki kurallara uydugu sürece hersey olabilir. Degiskenlerin degerleri, degisken türlerine göre belirli limitler alirlar ve belirli formatlarda kullanilirlar. Bu konuyu daha sonra görecegiz.



Birkaç örnek degisken ismi : Deneme, A, B, c,d, isimsiz, bugün, iyi, As5, Q3, m7m.....



1. Degisken isimleri arasinda bosluk olamaz. Yani degisken isimleri bosluk içeremez.
Örnek : merhaba arkadaslar , deneme görevi, Atatürk Baraji ....

2. Degisken isimleri en fazla 255 karakterden olusabilir. Yani degisken isimlerinin uzunlugu 255’i geçemez.
Örnek : abcdeeeeee................eeeee (255 tane) - böyle bir degisken ismi olamaz.

3. Degisken isimleri arasinda :;,./’#][!”£$%^&*() gibi karakterler kullanilamaz. Sadece _ (alt cizgi) isareti kullanabilir.
Örnek : word” , kelime[ , cumle* gibi degisken isimleri olamaz,
fakat bu_donem, doviz_burosu gibi degiskenler olabilir.
4. Degisken isimlerinin ilk karakteri mutlaka harf olmalidir, yani sayi veya “_” (alt cizgi) ile baslayan degisken ismi olamaz.
Örnek : _hazir, _gidelim, 3otobus, 5yol gibi degisken isimleri olamaz.
Fakat hazir_ , otobus3 gibi degisken isimleri olabilir.

5. Bir modulde veya formda veya prosedurde birden fazla ayni isimde degisken belirtilemez

6. Degisken isimleri arasinda büyük küçük harf ayrimi yoktur. Yani “DENEME” ile “DENeme” veya “denEME” vey “dEnEmE” ayni degiskeni belirtmektedir. Zaten bir degiskeni belirtirken (Degisken belirtme) degiskeni nasil belirtiyorsak(büyük kücük harf bakimindan) bu degiskeni daha sonra da kullandimizda Visual Basic bu degiskeni, hemem belirtildigi sekile otomatik olarak döndürür.
Yani biz “DeNeME” adiyla bir degisken belirttikten sonra bunu “dENEme” sekliyle de kullansak Visual Basic onu hemen ilk belirtilme sekline çevirir.



Bu mesaja 1 cevap geldi.
N
19 yıl
Onbaşı

Arkadaslar cok saolun örnekler için üni deki derslerde cok işime yarıcaklar azcık burdan kopya cekicem


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:

Orjinalden alıntı: nuranura

Arkadaslar cok saolun örnekler için üni deki derslerde cok işime yarıcaklar azcık burdan kopya cekicem



eskişehir osmangazi mi yoksa



H
19 yıl
Er

serseri hocam bi banada yardım edi ver yaa...ben lise3 programlama öğrcisiyim ama bize hiç biş iöğretmiyolar ve staj yeri bana bi program verdii şimdi adodc1 ile bağlantıyı yaptım propertisden orda soroun yok veri tabanı access onuda bağladım tmm ama bi sorun varr bu program telefon rehberi unvanı, adı-soyadı,dahili tel, cep1, cep2 diye bölümleri var bunlar textde yazılacak arama yaptırcam yani texte yazcam ordan ara dicem ada göre unvana göre diye arama yapıcamm ama bütün bilgilerimi yaptım bceremedim bi el uzatırmısınızz çok sevinirimm


Bu mesaja 1 cevap geldi.
H
19 yıl
Teğmen

gerçekten elinize sağlık.teşekkürler.


Bu mesaja 1 cevap geldi.
D
19 yıl
Binbaşı

Serseri Mükemmelsin bayağıdır vb öğrenmek istiyordum bir türlü adım atamıyordum. Bu başlığa girdikten sonra kendimi bir anda vb formunda bişeyler yaparken buldum. Diğer arkadaşlarada teşekkürler.

Örneklerin Devamını bekliyoruz
SAYGILAR


Bu mesaja 1 cevap geldi.
Ü
19 yıl
Yarbay

arkadaşlar vb de telefon yapmakauya calısıyorum elımde 5 var su anda ama okulda 6.0 kullanılıyor. bunda nasıl yaparım bı yardımcı olurmusunuz?


Bu mesaja 1 cevap geldi.
V
19 yıl
Er

serseri arkdasım bana ödevimle ilgili yardım cı olursan sevinirim visual basicle telefon rehberi stok programı bunu gibi seyler mailim :viper_boyb@hotmail.com


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

Eğer elinde hazırladıgın döküman var ve bir yerde tıkanıyorsa forum olarak yardımcı olabiliriz.


Bu mesaja 1 cevap geldi.
S
19 yıl
Yarbay
Konu Sahibi

quote:

http://rapidshare.de/files/18293319/vbuzman1.rar.html
http://rapidshare.de/files/18294469/vbuzman2.rar.html
http://rapidshare.de/files/18295520/vbuzman3.rar.html


Uzmanlar için hazırlanmıs VB notları. Alıntıdır...



B
18 yıl
Er

benim bir sorunum var ben proje aldım vb ama projemi bulamadım öğrenci kayıt programı ;:?
yardımcı olursanız sevinirim sorunum şu örneğin okuldan istenen evraklar ad soyad tc dipiloma notu bunları kayıntını yaptım ancak örneğin bu diploma notuna göre kaydeilmiş dosyadan cağırıp bölümlere atacak bu bölümlerdende herhangi bir sınıfa atıp yeni toptan kayır yapacak veri tabanlı yardımıcı olursanınz sevinrim :s



İ
18 yıl
Er

BEN DE YENİ BAŞLAYANLARDANIM.BEN VB 2005 KULLANIYORUM.AŞAĞIDAKİ PROGRAMDA TEXT1 TEXT2 VE 3 ,OPTİON1 OPTİON2 3 VE 4 TANIMLI DEĞİL DİOR HATA VERİYOR.NASIL TANIMLAMALIYIM ŞİMDİDEN TEŞEKKÜRLER( ÇOK ŞEY ÖĞRENDİM)


quote:

Orjinalden alıntı: serseri

Bu seferki programımız baslangıca hitap edecek sekilde :
basit bir hesap makinesi

Programın ekran görüntüsü resimdeki gibidir;
< Resime gitmek için tıklayın >

Programın kod kısmı işe su sekilde:

Private Sub Command1_Click()
Dim sayı1, sayı2, sonuç As Double
sayı1 = Val(Text1.Text)
sayı2 = Val(Text2.Text)
If Option1 = True Then sonuç = sayı1 + sayı2
If Option2 = True Then sonuç = sayı1 - sayı2
If Option3 = True Then sonuç = sayı1 * sayı2
If Option4 = True Then sonuç = sayı1 / sayı2
Text3.Text = Str(sonuç)
End Sub



Bu mesaja 1 cevap geldi.