Mega Code Archive

 
Categories / Delphi / Strings
 

Fonsiyon ve alt programları

kodlar www.programci.50megs.com dan alınmıştır Fonsiyon ve alt programları Bir fonksiyon veya bir alt program belirli bir işi yapmak için oluşturulan küçük program parçalarıdır. (fonksiyon ve alt program , bu ikisini birden belirtmek için prosedur kelimesini kullanacağız.) fonksiyon ve alt program tanımlamanın bir çok avantajı vardır. Bir çok yerde aynı kodları kullanmanız gerektiğinde bunları her sefer yeniden yazmak yerine bu kodları bir prosedürde tanımlayıp , kullanacağımız yerden bunu çağırmamız yeterlidir. Örneğin proramınızda bir çok yerde faktöriyel hesabı yapmanız gerekiyorsa , be sefer faktöryel hesaplayacak kodu yazmaktansa bu işlemi bir fonksiyonda yaptırıp gerekli yerlerden bu alt programı Çağırabilirsiniz. Prosedür tanımı Bir alt program tanımı şöyle yapılır. Sub alt program adi([giriş parametreleri{as tipi]) Komutlar [exit sub] end sub bir fonksiyon tanımı ise şöyle yapılır: function fonksiyon adi ([giriş parametreleri{as tipi])[as tipi] Komutlar [exit function] [fonksiyon adi=geri dönüş değeri ] end function fonksiyon alt programdan farklı olarak geriye bir değer gönderebilir. Bu değer gönderme işlemi fonksiyon ismine geri dönecek değerin atanmasıyla olur. Bir fonksiyon veya alt program normalde end sub veya end function satırıyla biter. Ancak bazı şartlargerçekleştiğinde , fonksiyonun çalışmasını bitirmeden çıkmak exit function (alt program ise exit sub) ile yapılır. Programda yeni bir fonksiyon tanımlamak için tools menüsündeki add procedure seçeneği kullanılabilir. Prodedür public olarak tanımlanırsa programdaki bütün form ve modüller bu prosedürü çağırabilir. Private olarak belirlenen prosedürler ise yalnızca tanımlandığı form veya modülden çağrılabilir. Örneğin form1 de public olarak tanımladığınız prosedürü form2 den veya diğer modüllerden birinden Çağırırken önce form1 in ismini vermeniz gerekir.yani form1. Prosedür adı şeklinde çağırmanız gerekir. Prosedürün tanımı buradan belirlenir. Sub seçeneğini ile bu alt program,. function seçeneği ile bir fonksiyon oluşturabiliriz. Event seçeneği ile bir olay alt programı ve property seçeneği ile de bir özelliğe değer atama ve değer öğrenme alt programı oluşturabilirsiniz. Property seçeneği işaretlendiğinde iki tane prosedür oluşturulur. Public property get ad( ) as variant End property Public property let ad(by val vnew value as variant) End property Bunlardan get ile başlayanı propertiesin değerinin öğrenilmek istenmesi durumunda , let ile başlayanı ise bu propertiese değer atanması durumunda çalışır. Penceredeki şeçeneği işaretlenirse bu prosedürdeki bütün değişkenler static deyimini kullanmaya gerek kalmaksızın static olarak işleme girer. Prosedür çağrısı Programın herhangi bir yerinden alt programı çağırmak: Alt program adi[giriş değerleri] Fonksiyonu çağırmak ise Donendeğer =fonksiyon adi ([giriş değerleri]) Şeklinde yapışlır. Şimdi 1 den text1 kutusuna kadar olan sayıların karelerini form üzerine yazacak bir prosedür yazalım. Örnek :sub Private sub command1_clinck( ) Prosedür çağrısı Sayılar text1 End sub Public sub sayılar (x as ınteger) Dim i For i= 1 to x Print i^2 ‘sayısının karesini yaz Next End sub Public function fak ( ) End function fonksiyona bir parametre olarak faktöriyeli hesaplanacak sayı gireceği için fonksiyonun başlığını aşağıdaki gibi değiştirmeniz gerekiri Public function fak( x) End function Böylece fonksiyona bir parametre girişi söz konusudur .sonucu ise fonksiyonun ismine atayarak geriye göndereceğiz. Yani fak=sonuc yazarak geri göndereceğiz. Public function fak(x) Dim i,s S=1 For i=1 to x S=s*i Next Fak=s End function Bu fonksiyonu çağırmak için ise fak(5) şeklinde kullanacağız. Örnek olarak text kutusuna girilen sayının faktöryelini label1 içinde göstermek için Private sub text1_change ( ) Label1=fak(val(text1)) End sub Şeklinde kullanabiliriz. Veya 1 den 20 ye kadar olan sayıların faktöryelini yazmak için : Private sub form_load( ) show dim i form i=1 to 100 print i & “!=” & fak(i) next end sub kodunu yazarız. Şimdi bir text kutusuna girilen bir sayının hem karesini hemde karekökünü hesaplayacak birer fonksiyon yazalım. Bunun için form üzerine text1 , indexi 0 olan option1 ve bir adet kopyasını yerleştirelim: Programızın ekran görüntüsü ve program kodu aşağıdaki gibidir: Örnek :function Public function kare(x as ınteger ) Kare=x^2 end function Public function karekök (x as ınteger) Karekök=sgr(x) End function Private sub option1_click (index as ınteger) If index =0 then ‘karekök Form1.caption=val(text1)& “sayının karekökü:”& karekök(val(text1)) Else ıf index=1 then ‘kare Form1.caption=val(text1)& “sayının karesi:”& kare(val(text1)) End ıf End sub Şimdi başka bir fonksiyon çağrısı yapalım. Aşağıdaki form tasarımı ile bir kişinin ek göstergesini Hesaplayalım. Ek gösterge için gerekli verileri bir fonksiyon ile hesapladıktan sonra sonucu İlgili text kutusuna gönderelim. Text kutusuna gerekli veriler girildikten sonra “hesapla “başlıklı command1 düğmesine bastığımızda aşağıdaki görüntüyü elde ediyoruz: Proğramımıza ait kod şu şekildedir: örnek:function Private sub command1_clinck( ) ‘ek gösterge fonksiyonu çağrılıyor. Text3=ek gösterge (text6,text5,text4) ‘veriler üçer basamak ayrıldıktan sonra tekrar text3 e aktarılıyor. Text3=format(text3,”###,###”) End sub Public function ek gösterge(puan,kidemyili,maaşkatsayısı) Dim kıdem aylık Kıdem aylık=puan*kıdemyılı*,maaşkatsayısı If kıdemaylık >=1326000 then Ekgösterge =maaşkatsayısı*36000 Else Ekgösterge=maaşkatsayısı*3200 End ıf End function Prosedür parametreleri Bir prosedüre hiçbir parametre giremiyeceği gibi belli sayıda parametre de girilebilir.vb de istenirse aynı prosedür farklı sayıda parametre ilede çalıştırılabilir. Örneğin hipotenüsü hesaplayacak bir fonksiyon üçgeninin iki kenarının parametre olarak girmesi gerekir. Public function hipotenüs(x,y) Hipotenüs =sgr(x^2+y^2) End function Private sub form1_load( ) Show Print hipotenüs(3,4) Print hipotenüs(5,12) End sub İstenirse bazı parametreler optional olarak tanımlanır. Bu durumda prosedür o parametreler kullanılmadanda çağrılabilir. Public function f(x,y,optional t, optional k) End function Yukarıdaki tanımda fonksiyon çağrılırken ilk iki parametre mutlaka kullanılmalıdır. Diğer iki parametre ise optional olarak tanımlandığı için istenirse kullanılmayabilir. Bu fonksiyon aşağıdaki şekillerde çağrılırsa parametrelerin alacağı değerler şunlar olur. F(5,4) ‘x=5,y=4,t:yok,k:yok F(5,4,2) ‘x=5,y=4,t=2,k:yok F(5,4,2,3) ’ x=5,y=4,t=2,k=2 F(5,4,2) ’ x=5,y04,t=:yok,k=2 Görüldüğü gibi optional parametreler istenirse kullanılır. Aradaki optional parametreler kullanılmayacaksa “,” konarak geçilir. Public function f(x,y,optional t, optional k) If is missing(t) then msgbox(“ t parametresi kullanılmamış”) İf ismissing(k) then msgbox(“k parametresi kullanılmamış”) End function Örneğin kareçiz isimli bir prosedürünüz olsun. Koordinatları ve genişliği verilen kareyi çizsin. Ayrıca kullanıcı isterse rengini ve içinin boyanıp boyanmayacağını belirlesin. Public sub kareçiz(x,y,g, optional renk, optional dolu) If(not ismissing(renk)) and (not ismissing(dolu)) then Line (x,y)-(x+g,y+g),renk, bf Elseıf(not ismissing(renk)) and ismissing(dolu) then Line (x,y)-(x+g,y+g),renk, bf Else Line (x,y)-(x+g,y+g),renk, ,b End ıf End sub Private sub command 1_clinck( ) Kareçiz 100,100,250,5555 ‘renkli çiz Kareçiz 400,100,250,,1 ‘içi dolu çiz Kareçiz 700,100,250,5555,1’renkli ve içi dolu çiz Kareçiz 1100,100,250’ normal çiz End sub Ayrıca bir fonksiyona girecek parametre sayısı belli değilse o parametre paramarray deyimi ile bir dizi olarak tanımlanır. Bu durumda kullanıcı o parametre yerine geçeçek istediği kadar parametre kullanılabilir. Public function h (paramarray x( )) End function Burada fonksiyona verilecek bütün parametreler x dizisine atanır. Kaç parametrenin kullanıldığı ise ubound fonksiyonundan –1 dönüyorsa hiçbir parametre kullanılmamıştır. H(3,4,2) ‘ubound(x)=3,x(0)=4,x(1)=4,x(2)=yok,x(3)=2 H(5,12) ‘‘ubound(x)=1,x(0)=5,x(1)=12 H( ) ‘ubound(x)=1,x(0)=yok Dizideki parametrelerin bazıları kullanılmamış olabileceği için yine ısmissing fonksiyonu ile bir elamanın kullanıp kullanmadığımızı öğreniriz. Örnek olarak n tane sayının karelerinin topklamını bulacak bir fonksiyonumuz olsun. Proğramcı fonksiyona istediği kadar x değerini girebilsin. Public function h(paramarray x()) Dim t,i For i=0 to uboand(x) If not ismissing(x(i)) then t=t+x(İ)^2 Next H=t End function Private sub form_load( ) Show Print h(3,4,2,4,5,6,7,8,9,0,2) Print h(5 ,12) End sub Vb de fonksiyondan giren parametrelerle de değer dönebilir. Örneğin Public function f(z) Print z Z=7 F=3 End function Fonksiyonu olsun. Bu fonksiyonda geriye değer fonksiyonun ismine atanan değerdir. Yani 5 tir. Ancak programı çağıran yere z parametresi ile 7 de döndürülmüş olur. Çağılan yerde bu parametre bir değişken olarak verilmişse z parametresine 7 atanması çağrıldığı yerdeki değişkenide etkiler. Private sub form _load Show Dim t Print t ‘sonuç 5 Print f(T)’ sonuç 3 Print t ‘sonuç 7 End sub Fonksiyonu yukarıdaki gibi çağırırsak form_load olayındaki t değişkeninin de değeri 7 olacaktır.bu özellik bir fonksiyondan birden fazla değer öğrenmek için faydali olabilir. Bazende bazı değişkenlerin çağrıldığı yerdeki değerlerini kaybetmelerine sebep olur. Bu durum fonksiyona giren parametrelerin önüne byval veya byref yazılarak belirlenir. Fonksiyondaki parametrelerin başındaki bu iki parametreden biri kullanılmazsa byref olarak kabul edilir. byref Olarak Tanımlanmış Parametrelerde Parametrenin Değeri Değil O Parametrenin Bellekteki Adresi Gönderilir. Bu Parametreye Atanan Değer Aynı Bellek Bölgesinde Değişikliğe Sebep Olacağı İçin Fonksiyonu Çağıran Yerde Bu Değişimden Etkilenir. Byval Olarak Tanımlanmış Parametrelerde İse Fonksiyona Parametrenin Adresi Değil Bir Kopya Gönderilir. Bu İki Kopya Ayrı Bellek Bölgelerini Kullanacaklarından Parametrenin Fonksiyon İçindeki Değişiminden Çağıran Yer Etkilenmez. Yukarıdaki Fonksiyondaki Parametreyi Byval Olarak Tanımlarsak Form_Load Olayı Bu Değişimden Etkilenmeyecektir. Public Function F( Byval Z) Print ‘Sonuç 5 Z=7 F=3 End Function Private Sub Form_Load Show Dim T T=5 Print T’sonuç 5 Print F(T)’Sonuç 3 Print T’ T Hala 5 End Sub Olay Alt Programları Vb De Farklı Olarak Kullanıcının Tanımlayacağı Alt Proğramlardan Başka Kontrollerin Kende Olay Alt Programları Vardır. Ve Kontrolle İlgili Bir İşlemde Bu Olay Alt Programlardan Biri Veya Birkaçı Aktif Hale Gelir. Şu Şekildedir. Private Sub Kontrol Adi_Olay([Giriş Parametreleri)] End Sub Giriş Parametrelerin Ne Olduğu İse Tamamen Kullanılan Kontrole Bağlıdır. Olay Alt Programları Diğer Alt Programlar Gibi Programcı Trafından Çağrılması Gerekmez, Alt Programların Ait Olduğu Kontrol Tarafından Çağrılır. Örneğin Bir Kontrolün Keypress Olayı O Kontrol Üzerinde İken Bir Tuşa Basılması Durumunda Veya Mousemove Olayı Kontrolün Üzerinden Mouse Geçerken Dolaylı Olarak Windows Tarafından Çağrılır. Olay Alt Programcının Hangi Sırada Çağrılacağı Veya Kaç Defa Çağrılacağı Tamamen Kullanıcının Yaptığı Hareketlere Bağlıdır. Ayrıca Windows Un Bir Kaç Proğramı Aynı Anda Çalıştırıldığını Bilirsiniz. Bu Bir Programın Alt Programları İçin De Geçerlidir. Aynı Anda Aynı Programın Birkaç Alt Programıda Çalışabilir. Her Kontrol Kendisinin Ne Zaman Çalışacağını Bilir Ve Bunun İçin Programcının Kod Yazmasına İhtiyac Duymaz. Olay Alt Programları İstenirse Diğeralt Programlar Gibi De Olay Gerçekleşmeden De Çağrılabilir. Örneğin Text1 İn Change Olayınayazdığımız Kodun Aynısını Text2 Nin Change Olayı İçinde Geçerli, İse Private Sub Text2_Change( ) Text1_Change End Sub Kodu İle Text2 Nin Change Olayından Text1 İn Change Olayındaki Kodu Çalıştırabiliriz.. Vb Bu Olay Alt Programlarıı Varsayılan Olarak Private Olarak Tanımlar. Bu O Alt Programın Sadece Bu Form Tarafından Kullanılabileceğini Gösterir.Yani Diğer Formlardan Bu Olay Alt Programı Çağrılmaz. Eğer Diğer Olay Alt Programlarda Bu Kodu Kullanılabilekcekse Private Yerine Public Yazarız. Bu Durumda Form2 Dende Form1 İn Üzerindeki Bir Kontrole Ait Olayı Çağırabiliriz. Yapmamız Gereken Formun İsmini Ve Olay Alt Programın İsmini Vermektir. Yani Form1.Text_Change Şeklinde Form2 Den Form1 Deki Text Kutusunun Change Olayını Çağırabilirsiniz. Kontrol Dizileri Eğer Kontroller Dizi Olarak Tanımlanmişsa Bu Durumda Dizideki Bütün Kontrollerin Olay Alt Programları Aynı Olacaktır. Bu Kontrollerin Olay Alt Program Yapısı Aşağıdaki Gibi Olur. Private Sub Kontroladi_Olay([İndex As Integer][Giriş Parametreleri As Tipi)] End Sub Burada Farklı Olarak Bulunan İndex, Bu Olayın Dizideki Hangi Kontrol Tarafından Çağrılacağını Belirler. Bir Grup Kontrolü Dizi Olarak Tanımlamanın İki Yolu Vardır. Bunlardan Biri O Kontrolü Seçtikten Sonra Ctrl+C Tuşları İle Panoya Almak Ve Ctrl-V Tuşları İle Yapıştırmaktır. Bu Durumda Vb Size Aynı İsiml,İ Bir Kontrolün Bulunduğunu Ve Bunun Bir Dizi Olarak Tanımlayıp Tanımlamamak İstediğimizi Sorar. Evet Diye Cevap Verirseniz Kopyaladığınız Kontroller Tamamen Aynı Özelliklere Sahip İkinci Bir Kontrol Daha Elde Etmiş Oluruz. Bunlar Arasındaki Tek Fark İndis Özeliklerinin Farklılığıdır. Dizi Olarak Tanımlamanın Diğer Bir Yolu İse Birden Fazla Kontrole Aynı İsmi Vermek Ve İndis Özelliklerine Farklı Sayılar Vermektir. Ortaközelliklere Sahip Kontrolleri Dizi Olarak Tanımlamanın Bir Çok Avantajı Vardır. Örneğin Programda On Tane Text Kutusu Bulunsun. Bunlardan Her Birinin Fontunu ‘ Times New Roman‘ Yapmak İstediğimizde Text1.Fontname=’Times New Roman’ Text2.Fontname=’Times New Roman’ Text3.Fontname=’Times New Roman’ ........... Text10.Fontname=’Times Ne3w Roman’ Şeklinde On Satırlık Kod Yazmamız Gerekir. Halbuki Bunlardan Bir Dizi Olarak Tanımlarsak Bie For –Next Döngüsüyle Aynı İşi Üç Satırda Yaptırabiliriz. Önce Bir Forma Bir Text Kutusu Yerleştirin Ve Bunu Seçip Ctrl+C İle Ponaya Alın. Daha Sonra Ctrl+V Tuşları İle Yapıştırın. Vb Size Bunu Bir Dizi Yapıp Yapmayacağınızı Soracaktır. Evet Dersek Ctrl+V Tuşları İle Aynı Kutudan 8 Tane Daha Oluşturun. Böylece Aynı Özelliklere Sahip On Tane Text1 Elde Etmiş Oluruz. Bunlar Arasındaki Tek Fark İndis Özelliklerinin Farklı Olmasıdır. Şimdi Bunların Hepsinin Font İsmini Değiştirmek İçin Dim İ For İ= 0 To 9 Text1(İ).Fontname=’Times New Roman’ Next Kodları Yazmamız Yeterlidir. Dizi Olarak Tanımladığımız Kontrollerin Propertieslerini Kullanırken Hangi Kontrolün Propertiesini Belirttiğimizi Onun İndis Numarasını Parentezler İçinde Vererek Bildiriyoruz. Yani Kontroladi(İndis).Özelik=Değer Formatını Kullanıyoruz. Kontrolleri Dizi Olarak Tanımlamanın Bir Diğer Avantajı Her Biri İçin Ayrı Kod Yazmak Yerine Ortak Bir Kod Kullanırız. Yukardaki Örnekte On Tane Text Kutusuun İçeriğini Toplayıp Label1 İçinde Yazmak İçin Her Birinin Change Olayına Private Sub Text1_Change( ) Label1=Val(Text1)+Val(Text2)+Val(Text3)+Val(Text4)...........+Val(Text10) End Sub Private Sub Text2 _Change Label1= Val(Text1)+Val(Text2)+Val(Text3)+Val(Text4)...........+Val(Text10) Ende Sub Yukarıdaki G,İbi Her Birinin Change Olayında Aynı Kodu Yazmamız Gerekir. Bunlar Bir Dizi Olarak Tanımlanmış Olsa Aşağıdaki Kodu Bir Kere Yazmak Yeterlidir. Private Sub Text1_Change (İndex As Integer) Dim İ, Top For İ=0 To 9 Top =Top+Val(Text1(İ)) Next Label1=Top End Sub Kontrol Dizilerinde Bir Olayın Hangi Kontrol Ytarafından Meydana Getirildiğinin Bilinmesi Gereken Durumlarda İndis Parametresi Kullanılır. Örneğin Bir Label İçinde Ki Yazıyı Sola, Sağa Diğerinden Sağa Ve Diğerinden De Ortaya Alınacaktır. Kontrol Dizilerinin Çok Önemli Avantajı Da Bu Kontrollerden Çalışma Zamanında Oluşturulabilmesidir. Vb 5.0 Masaüstü Elemanları Vb Nin Ana Formu İlk Olarak Vb Çalıştığında Vb Nin Kendine Ait Olan Aşağıdaki Form Görülür. Vb Diğer Formlardan Farklı Olarak Formu Sadece Menülerden Ve Başlık Çubuğunda Oluşur. Programcı Formu Vb Masa Üstünde Bulacağımız Önemli Bir Form Da Aşağıdaki Gibi Bir Form Penceresidir. Bu Form Gerçekte Vb E Ait Diğer Yapacağımız Programa Ait Bir Formdur. Bu Form Programa Ait Kullanıcı Arabiriminin Oluşturulduğu Yerdir. . Ve Burada Oluşturduğunuz Formun Görüntüsü Program Çalıştığında Aynen Görünecektir. Form Üzerinde Alınan Her Kontrol Elemanının Tasarım Zamanı Özellikleri Properties Penceresinde Gözükür. İstediğiniz Birden Fazla Form İle De Çalışabiliriz. Yine Form Üzerinde Alınan Her Bir Elamanının Kopyası Alınarak İstediği Kadar Bir Dizi Olarak Çoğaltabiliriz. Form Üzerinde İken Farenin Sağ Tuşuna Basıldığı Zaman Aşağıdaki Popup Menü Karşınıza Çıkacaktır. View Code Seçeneğiyle Kod Penceresine Ulaşılır. Menü Editör Menü Seçeneğiyle Menü Tasarım Editörüne Ulaşılır. Lock Control Menü Seçeneğiyle Form Üzerindeki Tüm Elemanlarının Yerleri Sabitleştirilir. Ve Bu Özellik Kaldırılmadığı Sürece Hareket Ettirilemez. Paste Menü Seçeneğiyle Panodaki Veri Form Üzerine Yapıştırılır. Properties Menü Seçeneğiyle Seçili Elemanın Özelliklerini Properties Penceresinde Görüntüler. Form Üzerindeki Elemanlardan Biri Yada Birkaçı Seçili İken Farenin Sağ Tuşuna Basıldığında Aşağıdaki Popup Menü Karşımıza Çıkar. Bring To Front Menü Seçeneği İle Seçili Olan Elemanlar Ön Plana Alınır. Send To Back Menü Seçeneğiyle Seçili Olan Elemanlar Arka Plana Alınır. View Code Menü Seçeneği İle Kod Penceresine Ulaşılır. Align To Grid İle Seçili Elemanların Koordinatları Form Üzerindeki Noktalara Denk Getirilir. Properties İle Seçili Elemanlara Ait Tasarım Zamanı Değiştirilebilen Özellikler Penceresine Ulaşır. Toolbox Form Üzerine Yerleştirilecek Kontrollerin Tamamı Toolbox Penceresinde Yer Alır. Bu Penceredeki Kontrol Elemanları Önceki Visual Basic Versiyonlara Göre Daha Fazla Özellik İle Karşımıza Çıkmaktadırt. Yine Bu Pencereye Ait Tab Eklemek , Silmek , Ad Değiştirmek Gibi İşlemler Uygulanabilir. Bu Pencere De İken Farenin Sağ Tuşuna Basıldığında Aşağıdaki Popup Menü Karşımıza Çıkar. Components Menü Seçeneğiyle Toolbox Penceresine Yeni Ocx Kontrolleri Eklenir. Add Tab İle Menü Seçeneğiyle Toolbox Penceresine Yeni Tablar Eklenir. Dockable İle Toolbox Penceresinin Vb Nin Ana Formunda Yer Alması(İşaretsiz) Yada İstenilen Yere Taşınması (İşaretli) Gibi İşlemler Yapılır. Hide Seçeneği İle Toolbox Penceresi Gizlenir. Yine General İsimli Tab Üzerinde İken Sağ Fare Tuşuna Basılırsa Add Tab, Delete Tab, Rename Tab, Move Up, Move Down Menü Seçenekleri Karşımıza Çıkacaktır. Bu Menü Seçenekleriyle İstenilen Tab Aşağı (Move Down),Yada Yukarı (Move Up) Kaydırılır. Components Seçeneği Tıklandığında Yukarıdaki Pencere Karşımıza Çıkar. Bu Penceredeki Bir Elemanı Toolbox Penceresine Eklemek İçin O Eleman İşaretlendikten Sonra Uygula Düğmesine Basmak Gerekir. Burada Birden Fazla Kontrol Elemanını Aynı Anda Toolbox Penceresine Eklemek Mümkün Olmaktadır.Bu Pencerede Listelenmeyen Elemanlara Browse Düğmesiyle Ulaşılır. Toolbox Penceresine Eleman Eklemenin Diğer Yolu Da Vindows 95 İn Dosya Gezgini Programı Aracılığı İle Seçilen Ocx Dosyaları Toolbox Penceresi Üzerine Sürüklenip Bırakılır. Properties(Özellikler )Penceresi Form Üzerine Yerleştirilen Elemanlarının Tümünün Tasarım Zamanı Değiştirilecek Özellikleri Properties Penceresinde Yer Almaktadır. Vb 5.0 İn Yeniliklerinden Biri Seçili Olan Elemanın Properties Penceresine Yansıyan Özellikleri Hem Alfabetik Hemde Kategorik Olarak Listelenmesidir. Kategorik Olarak Getirilen Bölümler Şunlardır.: Appearance (Elemanın Görünüşü İle İlgili Özellikler), Behavior(Elemanın Durumu İle İlgili), Dde Font(Font İle İlgili Özellikler), Misc(Bir Gruba Dahil Edilemeyen Farklı Özellikler),Position (Elemanın Boyutları , Form Ve Ekran Üzerindeki Konumları İle İlgili), Scale(Elemanın Bulunduğu Aralık İle İlgili Özellikler) Properties Penceresi Üzerinde İken Sağ Fare Tuşuna Basıldığı Zaman Aşağıdaki Popup Menü Karşımıza Çıkar. Description Menü Seçeneğiyle Seçili Olan Özellik İle İlgili Kısa Bir Açıklama Pencerenin Altınta Gösterilir(Sağdaki Resim) Hide Seçeneğiyle Properties Penceresi Gizlenir. Project Penceresi Bu Pencerede Programa Dahil Edilen Form, Module,Usercontrol Vb. Gibi Elemanların Listesi Yer Alır. Bu Pencere İle İstenilen Bir Forma Geçiş Yapmak Yada İstenilen Bir Formu Yada Modülü Forma Dahil Etmek Mümkün. Bu Pencerenin Sol Üst Kısmında Yer Alan Üç Adet Değmenin 1. Cisi Seçili Nesne İlie İlgili Kod Penceresini Açar, 2. Si Nesnenin Form Tasarımını Gösterir., 3.Sü De Aynı Cinsten Form Yada Modülleri Bir Klasör İle Gösterir. Project Penceresinde Sağ Fare Tuşu Project Penceresinde İken Farenin Sağ Tuşuna Basıldığında Aşaığıdaki Popup Menü Karşımıza Çıkar. Bu Pencerede O Anda Aktif Olan Proje Ve Form Adları Da Yer Alır. View Code Menü Seçeneğiyle Kod Penceresine Ulaşılır. Wiew Object Menü İle Form Tasarımıgörüntülenir. Project1 Properties İle O Anda Aktif Olan Projeceye Ait Özellikler Penceresine Ulaşılır. Save Form İle Seçili Haldeki Formu Kaydeder. Save Form As.. Seçeneği İle Seçili Haldeki Formu Yeni Bir Adla Kaydeder. Print.. İle Yazdırma Penceresine Ulaşılarak İstenilen Bölüm Yazdırılır Add Menü Seçeneği İle Görüldüğü Gibi Projeye Eklenecek Nesneler Eklenir. Form Seçeneği İle Projeye Yeni Bir Form Eklenir. Mıdı Form Seçeneği İle Projeye Yeni Bir Program Modülü Eklenir. Class Module İle Projeye Yenı Bir User Control Eklenir. Property Page İle Projeye Yenı Bir Property Page Eklenir. Add File Seçeneği İle Projeye Daha Önceden Oluşturulmuş Bir Dosya Eklenir. Kod Penceresi Vısual Diller Kendi Kodunu Yazacağı Bir Editör Sunarlar. Bu Editörler Windows Un Kullandığı Hemen Hemen Tüm Metotları Destekler. Bu Pencerenın Sol Alt Köşesinde Yer Alan Düğmesi Sadece Bir Alt Programı Görüntülerken Düğmesi İse Tüm Kodu Bir Arada Listeler. Bu Pencerenin Option Explicit Yazan Bölümde Herhangi Bir Kontrol Elemanına Bağlı Olmayan Kodlar(General) Yazılır. Burada Forma Ait Global Değişken Tanımları Ve Apı Tanımları Yapılır. Yukarıda Görüldüğü Gibi Her Kontrol Elemanına Ait Olay Alt Programları İki Combo Kutusu Aracılığı İle Belirtmektedir. Bunlardan Birincisi Form Ve Form Üzerindeki Elemanların Adlarını Listelerken Diğeri İse O Elemana Ait Olayları Listelemektedir. Kod Penceresindeki Önemli Yenilikler Kullanıcı Herhangi Bir Kontrol Elemanının Adını Yazıp’.’ Nokta Karakterine Basıldığı Anda Kursorün Bulunduğu Noktadan İtibaren Aşağıya Doğru Bir Liste Açılır. Burada Tüm Elemanların Ortak Olarak Kullanıldığı Özellikler Ve Metodlar Yer Almaktadır. Kullanılacak Özellik Bu Listeden Seçilmek Suretiyle Program Satırına Dahil Edilir. Bu Durum Programcıyı Bir Sürü Özelliği Kafasında Tutmaktan Kurtarır. Aşaği Doğru Açılan Listeden İstenilen Özellik Seçilip’=’ Karekterine Basıldığında Anda Bu Defa Özellikle Kullanılabilecek İfade Aynı Metotla Gösterilmektedir. Örneğin Form Üzerinde Command1 Düğmesi Yok Fakat Siz O Düğmenin Adını Yazmanız Daha Sonra ‘.’ Nokta Karekterine Bastınız. Karşınıza Özelliklerin Yer Aldığı Liste Çıkmayacaktır. Şimdi Bir Mesaj Kutusunun Adım Adım Oluşturalım. İlk Olarak Kod Penceresnde Msgbox Yazarak İşe Başlayalım. Msgbox Msgbox(Prompt.[Buttons As Vbmgsboxstyle=Vbokonly],[Title], [Helpfile],Context])As Vbmgsboxresult Msgbox İfadesi Yazılıp Boşluk Tuşuna Basıldığı Anda Yukarıda Görüldüğü Gibi Msgbox İfadesinde Kullanılması Gereken Tüm Parametreler Gösterilmekle Beraber Bu İdadenin Geri Döndürüleceği Sonuç Ta Belirtiliyor. Msgbox Msgbox(Prompt.[Buttons As Vbmgsboxstyle=Vbokonly],[Title], [Helpfile],Context])As Vbmgsboxresult Yukarıda Görüldüğü Gibi Msgbox İfadesinin Birinci Parametresi Tamamlanıp Virgül Karekterine Basıldığı An İkinci Parametre Otomatik Koyulaşarak Bunun Alacağı Değerler Aşağıya Doğru Açılan Kutudan Listelenir. Bu Durum Diğer Parametreler İçinde Aynen Devam Eder. Sonuçta Mesaj Penceresi İçin Yazdığımız Kod Ve Pencere Görüntüsü Aşağıdaki Gibi Olur. Private Sub Form_Load( ) If Msgbox(“Vb İle Çalışmaktan Memnun Musunuz?”, Vbyesno+Vbquestion+Vb Defaultbutton1+Vbsystemmodal,”Mesaj1,0,0)=Vbyes Then End Kod Penceresinde Sağ Fare Tuşu Kod Penceresinde İken Farenin Sağ Tuşuna Basıldığında Yanda Görülen Popup Menü Karşımıza Çıkmaktadır. Burada, Cut Menü Seçeneğiyle Olan Veriyi Keserek Panoya Atar. Copy İle Seçili Olan Verinin Bir Kopyasını Panoya Atar. Paste İle Kursörün Bulunduğu Yere Panodaki Veriyi Yapiştırır. List Properties /Methods İle Aşağıya Doğru Açılan Özellik Listeleme Kutusunu Görüntüler. List Constants İle Bir Özelliğin Alacağı Değerler Görüntülenir. Complete Word Menü Seçeneği İle Bir Kontrol Elemanına Ait Bir Özelliğin Tamamı Hatırlanmıyorsa Sadece Baş Harfi Yazılarak Bu Seçenek Aracılıği İle Tamamlanır. Mesela Text1.A İfadesi Yazıldıktan Sonra Bu Seçenek Kullanılırsa Karşımıza Yandaki Liste Çıkar. Burada İstenilen Özellik Kolayca Seçilir. Quick İnfo İle Bir İfadenin İçerdiği Parametreleri Görüntüler. Mesela Msgbox İfadesi Yazdıktan Sonra Quick İnfo Menü Seçeneği İlekullanılırsa Karşımıza Aşağıdaki Menü Çıkar. Parameter Info Menü Seçeneği İle Yazılan Bir Fonksiyonun İçerdiği Parametre Tipi Öğrenilebilir. Mesela Qbcolor( ) Fonksiyonu Kullanacağımızı Farzedelim. Kursör Parentezler İçerisine Konumlandırıldıktan Sonra Parameter İnfo Menü Seçeneği Kullanılırsa Karşımıza Aşağıdaki Görüntü Çıkacaktır. Buradan Anlaşılırki Qbcolor() Fonksiyonun Alacağı Değer Tamsayı, Döndüreceği Değer İse Uzun Tamsayıdır. Last Position Menü Seçeneği İle Kursör Bulunduğu Son Nokyaya Geri Döndürülür. Object Browser Object Browser Menü Seçeneği İle Aşağıdaki Pencereye Ulaşılır. Bu Pencere Aracılığı İle Gerek Vb Kütüphanesinde Kullanılan Tüm Veriler Gerekse Oluşturulan Proje Ve Bu Projenin Modüllerinin Kullanıldığı Tüm Tip Ve Değişkenler Hakkında Bilgi Sahibi Olmak Mümkündür. Bu Pencerenin Sol Üst Köşesinde Combo Kutusu Aracılığı İle Vb Kütüphanelerine Ulaşılır. Sağdaki Liste Kutusunda Bu Kütüphanenin Veri Sınıfları , Soldaki Liste Kutusunda İse İlgili Veri Sınıfının İçerdiği Fonksiyonlar, Sabitler Ve Özellikler Yer Almaktadır. Pencerenin En Altında İse Seçili Olan Verinin Tanımı,Parametreleri Ve Bulunduğu Kütüphane Adı Verilmektedir. Şimdi Object Browser Pencersinde Project1 İ Seçelim. Bu İşlem Yapıldığında Projenın İçerdiği Formlar, Modüller Ve Modüllerde Tanımlı Tip Ve Değişkenler Detaylı Olarak Karşımıza Çıkmaktadır. Per İfadesi Seçili İken Farenin Sağ Tuşuna Basıldığında Çıkan Popup Menüden View Defination Menü Seçeneği Seçildiğinde Karşımıza Personel Tipinin Tanımlı Olduğu Module Karşımıza Çıkmaktadır.