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