Şimdi Ara

Visual Basic Örnekler (5. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
191
Cevap
4
Favori
95.323
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
Öne Çıkar
0 oy
Sayfa: önceki 34567
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • 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
    _____________________________
  • 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?
    _____________________________




  • 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
    _____________________________
  • 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
    _____________________________
  • 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...
    _____________________________
    Beklenen Gün Gelmeyecekse Beklemeye Gerek Yok...




  • Hocam ellerinize saglık ama bunlari nasil kullanabiliriz vb programin içinemi koyacagiz ?
    Saygılar...
    _____________________________
    "yada" Doğrusu "ya da" || "herkez" doğrusu = "herkes" || "birşey" doğrusu = "bir şey" || "herşey" doğrusu = "her şey" || orjinal" doğrusu = "orijinal" || "direk ifade.." doğrusu =&gt; "direkt" -- Lütfen dil kurallarına özen gösteriniz.


    Ne kadar zengin ve müreffeh olursa olsun, istiklâlden mahrum bir millet, medenî insanlık karşısında uşak olmak mevkiinden yüksek bir muameleye lâyık sayılamaz. M.K.Atatürk

    However rich or prosperous it may be, a nation deprived of independence can deserve no better treatment than being the servant of civilized humanity. M.K.Atatürk

  • 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
    _____________________________
  • 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 }

    _____________________________




  • 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.

    _____________________________




  • Arkadaslar cok saolun örnekler için üni deki derslerde cok işime yarıcaklar azcık burdan kopya cekicem
    _____________________________
  • 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
    _____________________________
  • 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
  • gerçekten elinize sağlık.teşekkürler.
    _____________________________
    asus a6q00vc
    for i=ezel to ebed -print "ELHAMDULİLLAH" - next i
  • 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
    _____________________________
  • 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?
    _____________________________
  • 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
    _____________________________
  • Eğer elinde hazırladıgın döküman var ve bir yerde tıkanıyorsa forum olarak yardımcı olabiliriz.
    _____________________________
  • 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...
    _____________________________




  • 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
    _____________________________
    BL!ND WaRr!0R
  • 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;


    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

    _____________________________
    izo




  • 
Sayfa: önceki 34567
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.