Bilgisayara Giriş - Kocaeli Üniversitesi

Transkript

Bilgisayara Giriş - Kocaeli Üniversitesi
2010
2011
Bilgisayara Giriş
2010-2011 Güz – Bahar Öğretim Yılı
Ders Notları
Arzu Erdem
Kaynaklar:
1.
2.
3.
4.
5.
Yazılım Uzmanı 1, Selçuk Tüzel
Yazılım Profesyoneli 2, Fulya SATAR . Engin
ÖREN
Herkes için Visual Basic 2005, Jeff Kent
Microsoft Visual Basic.Net Başlangıç Rehberi,
İhsan Karagülle
Visual Basic.Net 2003, Y.İnan, N.Demirli
Arzu Erdem
Kocaeli Üniversitesi
2010 2011
Bölüm 1. KURULU
M ve GİRİŞ
Bu kısımda Microsoft Visual Studio.NET
2003 programının nasıl kurulacağını ve
kurulum sırasında nelere dikkat edileceğini
adım adım inceleyeceğiz.
Lisanslı olarak aldığınız Microsoft Visual
Studio. NET 2003 programı altı CD'den
oluşmaktadır. Bunlardan iki tanesi program
kurulumunu içeren CD'lerdir. Eğer bilgisayarınızFramework yapısına uygun değilse, bunu ayarlayacak
bir adet Windows Prerequisites CD'si vardır. Diğer üç CD ise en son istenildiği takdirde kurulacak
MSDN (yardım) CD' leridir.
Şimdi adım adım kuruluma başlayalım;
1) Bilgisayarımıza Microsoft Visual Studio.NET 2003 Dics 1'i takalım. Bunun sonucunda eğer
şekildeki ekran karşımıza gelirse, kurulum başlamadan önce bilgisayarımızda çeşitli
ayarlamalar yapılacak anlamındadır. Kuruluma devam etmek için Visual Studio.NET
Prerequisites seçeneğine tıklıyoruz.
2) Eğer
şekildeki
ekran
ile
karşılaşırsanız, bilgisayarınızda Web uygulamaları ve servisleri geliştirerek bilgisayarınızı bir
KURULUM ve GİRİŞ
2010 2011
Web Server olarak kullanacaksanız, mutlaka Front Page Server Extensions bileşenini
kurmanız gerekmektedir. Bunu IIS içinden gerçekleştirebilirsiniz. Bu işlemi nasıl yapacağınızı
Setup Instructions butonuna tıklayarak öğrenebilirsiniz. Kurulumu yapmak istemiyorsanız
Skip butonuna basmanız sterlidir.
3) Yandaki
görüntü
karşımıza
geldiğinde CD'ler içinde bulunan
Windows
Prerequisites CD'sini
takarak OK butonuna basalım.
4) Bilgisayarımız
için
gerekli
bileşenleri
yükleme
analizini
yapan şekildeki ekranı görünce bir süre bekleyelim.
5) Gelen lisans ekranını okuduktan sonra, eğer bir sorun yoksa I agree seçeneğini işaretleyerek
Continue linkine tıklayalım.
6) Gelen listede eksikler belirlenmiş durumdadır. Bunların tamamlanması için Install Now!
Linkine tıklamamız yeterlidir. Bu liste bilgisayarınızda kurulu programların versiyonuna göre
daha kısa ve uzun olabilir.
7) Gerekli bileşenlerin yüklenmesi bittikten sonra, sağ alt köşede çıkan Done linkine tıklayarak
bu ilk kademeyi sonlandırıyoruz.
8) Program kurulumu için ikinci kısım olan Visual Studio.NET seçeneğine tıklıyoruz.
3
Bilgisayara Giriş
2010 2011
9) Şekildeki ekran karşımıza çıkınca, ilk kurulum CD' sini takarak OK butonuna basıyoruz.
10) Kurulumda gerekli dosyaların kopyalanması ve yapılandırılması için kısa bir süre bekledikten
sonra, karşımıza gelen ekranda lisans maddelerini okuyarak I agree seçeneğini işaretliyoruz.
Ardından Product Key kısmına 25 haneli kurulum anahtarını doğru olarak girdikten sonra,
Continue linkine tıklıyoruz.
11) Eğer elinizdeki CD' 1er Microsoft Visual Studio.NET kurulumuna ait ise aşağıdaki ekranda aynı
anda bu yapı içinde bulunan Visual Basic.NET, Visual C++ .NET, Visual C# .NET, Visual J#
.NET programlarını kurabilirsiniz. Tüm kurulum yaklaşık 1.5 GB yer kaplamaktadır. Ancak
sadece kullanacağınız seçenekleri kurmak istiyorsanız, diğer programların başlarında
bulunan kutuları boşaltmanız gerekmektedir. Fazla program seçimi hem Disk üzerinde
gereksiz yer kaplayacaktır, hem de kurulum süresini uzatacaktır. Eğer başka bir Disk
bölümünüz varsa ve oraya kurmak istiyorsanız Local Path kısmından bu seçimi yapabilirsiniz.
4
KURULUM ve GİRİŞ
2010 2011
Ben, Visual C++.Net dışında tüm programları kurmaya karar verdim ve Disk bölümü olarak E
sürücüsünü seçtim. Ayrıca, eksik kurduğunuz programları sonradan ekleyebileceğinizi
unutmayın. Her şey tamamsa
install
Now
linkine
tıklayabilirsiniz.
12) Bilgisayarınızın
performansına göre kurulum
süresinin ilk bölümü 15 dakika
ile 45 dakika arasında sürebilir.
13) Şekildeki mesaj iletisi karşımıza geldiği zaman artık ilk CD'nin görevi sonlanmış demektir. İlk
kurulum CD'sini çıkartarak yerine ikinci kurulum CD'sini takıp, OK butonuna basarak
kuruluma devam ediyoruz.
14) Evet nihayet kurulum tamamlandı. Kurulum ekranını kapatmak için Done linkine tıklamanız
yeterli olacaktır.
5
Bilgisayara Giriş
2010 2011
15) Bundan sonra devam etmek zorunda değilsiniz. Ancak yazılım yaparken, elinizin altında
yardım kütüphanesinin yüklü olması her zaman yararlıdır. Bunun için şekildeki listeden
Product Documentation seçeneğine tıklayıp, MSDN CD'lerinin ilkini takarak gelen
ekran yardımları ile yardım dosyalarını yükleyelim. MSDN'in tamamını Disk üzerine yüklemek
için, ekstradan 2 GB alana ihtiyaç olduğunu hatırlatayım.
6
Bölüm 2. Programlamaya Giriş
Program Nedir?
Program, bilgisayarın belli bir işi yapması için tasarlanan komutların tümüdür. Kullanım amaçları
ve yerlerine göre birçok değişik program türü vardır:
Sistem programları. Her program, bir işletim sistemi üzerinde çalışır. İşletim sistemi, diğer
programların çalışması için gerekli olan kaynakları ve ortamı sağlar.
Bilgisayara
GirişBilgisayara
Giriş
2010 2011
Bilgisayara Giriş
Sürücüler (Driver). İşletim sistemi ile donanım aygıtları arasında iletişim sağlayan
programlardır. Klavye ile yazılan yazıların algılanması için, klavyenin sürücü programı kullanılır.
Uygulamalar. İşletim sistemi üzerinde çalışan, kullanıcıların ihtiyaç duyduğu işlevleri sağlayan
programlardır.
Programların Çalışma Modeli
Örnek: ATM makinesinden para çekmek.
1
Kullanıcı ATM makinesine kartını yerleştirir.
2
Şifresini girer.
3
ATM cihazında çalışan uygulama kartta yazan bilgileri okur.
4
Şifre kontrolü işlemi yapılır.
5
Şifre doğru girilmişse kullanıcı çekmek istediği miktarı girer.
6
Bankadaki hesap kontrol edilir.
7
Uygunsa kullanıcıya ödeme yapar.
8
Programlamaya Giriş
2010 2011
Programcı Kimdir?
Programcı, belirli işlevlere sahip programlar geliştirebilen bir uzmandır. Bir programcının,
üzerinde çalıştığı platformu, kullandığı teknolojileri iyi tanıması ve bilgisayarın anlayacağı
mantıksal dilde düşünebilmesi gerekir. Programcıların çoğu genellikle aynı işi gerçekleştirse de,
üstlendikleri görevlere göre programcılar üç gruba ayrılabilir:
Mimar. Programların yazılması için gerekli teknolojileri belirleyen, gerekli durumlarda
programın daha kolay yönetilmesi için küçük parçalara ayıran programcıdır.
Geliştirici. Programı yazan kişidir.
Test mühendisi. Programın geliştirilmesi aşamasında, hataların kaynaklarını bulan ve
geliştiricilere raporlayan programcıdır.
9
Bilgisayara
GirişBilgisayara
Giriş
2010 2011
Bilgisayara Giriş
Programlama Dilleri
Şu ana kadar 2500‟den fazla programlama dili yazılmıştır. Bunlardan bazıları Pascal, Basic, C,
C++, Java, JavaScript, Cobol, Perl, Python, Ada, Fortran, Visual Basic. NET, Microsoft Visual C#
programlama dilleridir.
Yüksek seviye programlama dillerine Visual Basic. NET ve Microsoft Visual C++ dillerini örnek
verebiliriz. C ile işletim sistemi yazılabildiğinden, daha alt seviye bir dil olarak değerlendirilir.
10
Programlamaya Giriş
2010 2011
Programlama Dillerinin Tarihçesi
İlk programlama dilleri, bilgisayarların üzerinde bazı araçların yerlerini değiştirerek veya yeni
bileşenler eklenerek yapılıyordu. Programın işlemesi için bir devinime ihtiyaç vardı. Eskiden
programlar fiziksel olarak yazılıyordu. Daha sonra, fiziksel programlama yerini elektrik
sinyallerine bıraktı. Artık, kurulan elektronik devrelere düşük ya da yüksek voltajda akım
gönderilerek bilgisayarın davranışı belirlenmeye başlanmıştı. Yüksek voltaj 1, düşük voltaj 0
sayılarını ifade ediyordu. Böylelikle bugün de kullanılan makine dilinin ortaya çıkması için ilk
adımlar atılmış oldu.
1957 yılında IBM, düşük seviye (makine diline yakın) bir programlama dili olan FORTRAN dilini
ortaya çıkardı. FORTRAN ile beraber basit mantıksal karşılaştırmalar, döngüler, lojik (true-false)
ve sayısal (integer, double) değişkenler kullanılmaya başlandı.
1959 yılında, bu programlama dilinin özelliklerini alıp, giriş çıkış (Input/Output – IO) gibi yeni
işlevler sağlayan COBOL dili ortaya çıktı. Daha sonra 1968 yılında, COBOL ve FORTRAN dillerinin
en iyi özelliklerini alarak Pascal ortaya çıktı. Ayrıca Pascal dili, hafızadaki adresler üzerinde
işlem yapmaya olanak veren işaretçi (pointer) kavramını da beraberinde getirdi.
1972 yılında C, Pascal dilindeki birçok hatayı gidererek ortaya çıktı. C dili ilk defa Unix işletim
sistemini yazmak için kullanılmaya başlanmıştır. C, düşük seviye bir dil olması, kuvvetli giriş
çıkış işlemleri sağlaması gibi birçok özelliği ile işletim sistemlerinin yazılmasında tercih
edilmiştir.
Bütün programlama dilleri birçok özelliğe sahip olmasına rağmen, modüler programlamanın
birçok eksiğini gidermek amacıyla, yeni bir programlama modeli olan nesne yönelimli
11
Bilgisayara
GirişBilgisayara
Giriş
2010 2011
Bilgisayara Giriş
programlama (Object Oriented Programming – OOP) ortaya çıkarıldı. C dilinin ve OOP modelinin
tüm özellikleriyle C++ dili oluşturuldu.
Programın Derlenmesi
12
Microsoft .NET Platformu
2010 2011
Bölüm 3. Microsoft .NET Platformu
Microsoft .NET, uygulama geliştiricilerin yazılım geliştirme sürecinde alt yapı işlemleri için harcadığı
eforu en aza indirgemek ve daha güvenli, güvenilir ve sağlıklı uygulamalar geliştirebilmelerini
sağlamak için geliştirilmiş bir alt yapıdır.
Bu bölümü tamamladıktan sonra;
NET Framework ve bileşenlerini
açıklayabilecek,
tanımlayabileceksiniz.
Konu 1. Yazılım Geliştirme Dünyası
Microsoft 1975 yılında Bill Gates ve Paul Allen tarafından kurulduğunda, vizyonu “Her eve, her
masaya bir PC” idi. Donanım ve yazılım alanlarındaki gelişmelerin hızı ve birbirlerini sürekli
tetiklemesinin sonucunda bilgisayar kullanıcılarının sayısı hızla arttı. Artan kullanıcı sayısı
beraberinde yeni gereksinim ve talepleri getirdi. Bu taleplerin doğal sonucu olarak da farklı
platformlar ve farklı servis sağlayıcıları ortaya çıktı. İletişim, finansal hizmetler, ticaret ve eğlence
kullanıcıların (özellikle Internet‟in yaygınlaşmasıyla birlikte) en yoğun talep gösterdiği hizmetler
halini aldı. Günümüze baktığımızda, Microsoft‟un çıkış noktasındaki hedefine büyük oranda ulaştığını
görebiliyoruz. Ancak geldiğimiz noktada hızla artan bilgisayar ve Internet kullanıcısı sayısı,
beraberinde güvenlik, iletişim ve entegrasyon gibi alanlarda çeşitli engelleri de getirdi.
Gelişmelere kendi açımızdan, yani yazılım geliştiriciler açısından baktığımızda işlerin çok daha zor
ve zahmetli durumda olduğunu görürüz. Kurumsal uygulamaların geliştirilmesinde performans,
güvenlik ve süreklilik gibi konularda belirli bir seviyeyi yakalamak için oldukça fazla efor sarf
etmemiz gerekiyor. Örneğin, elektronik cihazlarla soket iletişimi kuracak uygulamaları
geliştirebilmek için iki alternatifimiz var. Birincisi, 3. parti firmalar tarafından geliştirilmiş olan
bileşenler satın almak ve uygulamamıza entegre etmektir. Diğer alternatifimiz ise, oldukça uzun
sürecek bir kodlama ile benzer bir iletişim katmanını geliştirmektir. Her ikisi de firmaların birinci
tercihi olmayacaktır. Sorunumuz, sadece soket iletişimi noktasında değil elbette. Bölümün başında
da belirttiğimiz gibi uygulama geliştiriciler, güvenlik, performans ve yetkilendirme gibi pek çok
konuda oldukça zahmetli alt yapı kodlarını geliştirmekle uğraşmak zorunda kalıyor. İşin kötü yanı,
geliştirilen bu alt yapı kodlarının çoğu zaman istenen verimliliği sunmaktan oldukça uzak kalmasıdır.
13
Bilgisayara Giriş
2010 2011
Kabul etmemiz gereken şey, bu alt yapı kodlarını geliştirecek bilgiye sahip olmadığımız; sahip olsak
bile, alt yapı kodlarını yazacak zamana ve işgücüne sahip olmadığımız; zaman ve işgücü konusundaki
ihtiyaçlarımızı karşılayabilsek bile, bu kodların testi, güvenliği, güvenilirliği, performansı ve
uygulamalara entegrasyonu konusunda hiçbir zaman istenen düzeye ulaşamayacağımızdır. Keşke
ihtiyaç duyduğumuz tüm altyapı işlemleri için hazır, kullanımı kolay ve esnek bir platform olsaydı.
Hayalini kurduğumuz, aslında şöyle bir sistem:
“Bir sanal mağazada cep telefonlarından sorumlu departmanda satış müdürü olarak çalışıyorsunuz.
İş dışındasınız ve akıllı cihazınıza bir mesaj geliyor: „Piyasaya henüz çıkmış olan telefonumuz
inanılmaz satışlar yapıyor, telefon çok popüler ve stoklarımız da oldukça azalmış durumda.‟ Bu
mesajın hemen ardından, akıllı cihazınız üzerinden, şirketiniz için fiyat ve teslim zamanı açısından
en uygun olan tedarikçiyi bulup, ihtiyacınız kadar telefonu sipariş edebiliyorsunuz. Peki ya bu
koşullar altında çalışmıyor olsaydınız? Şirketiniz, sizi cep telefonunuzdan arayacak ve problemi
iletecekti. Sonra da siz ancak şirketinize dönebildiğiniz zaman tedarikçilerle teker teker irtibata
geçerek hangisinin şirketiniz için en yararlı olduğuna karar verecektiniz. Sipariş ve teslimat bilgileri
üzerinde anlaştıktan sonra işleminizi tamamlamış olacaktınız. Yani sadece birkaç dakikada
yapabileceğiniz basit bir işlem için, belki de bütün bir gününüzü kaybedecektiniz. Verimliliğiniz
düşerken, zamanınızı etkili şekilde kullanamayacaktınız. Oysa akıllı cihazınız üzerinden tüm bu
işlemleri kısa bir şekilde çözebildiğinizden, işe gitmenize bile gerek kalmadan çok kısa bir zamanda
şirketiniz için en iyi olan seçimi yapabilirsiniz.”
İşler kesinlikle çok daha verimli ve kolay ilerlerdi. Elbette bu, kurulabilecek hayallerin sadece mobil
platforma yönelik bölümünden bir kesit.
Sorunun Temeli
Microsoft, vizyonu doğrultusunda attığı adımların yazılım geliştiricilere yansıyan sonuçlarını sürekli
izliyordu ve yazılım geliştiricilerin sorunlarını şu başlıklar altında ele alıyordu.
farklı kurumlar arasındaki iletişim
sorunu.
, ihtiyaç duydukları anda, kesintisiz, hatasız ve güvenli bir
şekilde ve istedikleri platformdan erişebilmeleri gereksinimi.
14
Microsoft .NET Platformu
2010 2011
yapı kodları ile uğraşması ve bunun sonucunda,
uygulama geliştirme ve test süresinin uzaması.
tekrar tekrar yazılması gereksinimi.
Çözüm Platformu
Microsoft 1990 yılında, yaşanacak 10 yılı da öngörerek, bu ve benzeri sorunlara çözüm sunacak,
uygulama geliştiricilerin ve son kullanıcıların işlerini kolaylaştıracak bir platform geliştirmeye
başladı. Microsoft bu platforma öylesine inanıyordu ki, kaynaklarının %80‟inden daha fazlasını, yani
kaderini bu platforma bağlamıştı. Çok geniş bir analiz ve geliştirme ekibinin çalışmaları sonucunda
ortaya çıkan ürün 2000 yılında dünyaya sunulduğuna, insanların karşılarında gördükleri yapı
karşısında hissettiklerini tanımlamak için kullanılabilecek en uygun kelime “hayranlık” idi.
Microsoft.NET platformu, her türlü yazılım geliştirme ihtiyacına yönelik hazır bir altyapı sunarak,
uygulama geliştiricilerin Windows, Web ve mobil platformlara yönelik uygulamaları çok daha hızlı,
kolay ve güçlü bir şekilde geliştirebilmelerine olanak tanıyordu. Uygulama geliştiriciler şifreleme,
kimlik doğrulama, yetkilendirme, soket iletişimi, her türlü veri kaynağına yönelik veritabanı
işlemleri, XML ve Web servisi teknolojilerine kadar burada saymadığımız (editörler bir bölümün 100
sayfayı geçmesine pek sıcak bakmıyorlar) pek çok teknolojiyi ve hatta milyonlarca hazır sınıf ve
fonksiyonu karşılarında gördüler. Bugüne kadar günler, haftalar ve hatta aylar harcayarak
geliştirmeye çalıştıkları bu yapıların hepsini, karşılarında kullanıma hazır bir şekilde görmekten de
son derece memnunlardı.
15
Bilgisayara Giriş
2010 2011
Bölüm 4. Microsoft Visual Studio
Ara yüzü
Bu bölüm, Microsoft Visual Studio ara yüzünü tanımayı sağlar ve etkili bir biçimde kullanmayı
gösterir. Ev ve işyerindeki çalışma ortamını düzenlemek, daha verimli çalışmayı sağlar. Yazılım
geliştirirken de çalışılan ortamı tanımak ve kişiselleştirmek, rahat çalışmak açısından önemlidir.
Bu bölümü tamamladıktan sonra;
ortamını tanıyacak,
i kullanabilecek,
yardımını etkili bir şekilde kullanabileceksiniz.
16
Microsoft Visual Studio Ara yüzü
2010 2011
Konu 1. Visual Studio Çalışma Ortamı
Visual Studio, çok gelişmiş özelliklere ve yardımcı araçlara sahip bir dosya editörüdür. .NET
platformu üzerinde geliştirilen proje dosyaları dışında, metin dosyaları, *.sql ve *.rtf uzantılı
dosyalar da düzenlenebilir. Visual Studio ortamını oluşturan ve kullanımını kolaylaştıran dört ana
bileşen vardır:
I. Çalışma Sayfaları
Visual Studio ortamında dosyalar, birer çalışma sayfası (Tab Pages) olarak açılır. Bu dosyalar
sekmeler halinde sıralanır. Sayfalar arasında CTRL+TAB kısayolu ile geçiş yapılır.
Bu çalışma modelinde, sadece bir sayfa görünür ve üzerinde çalışma yapılır. Ancak Visual Studio
bize, çalışma ortamını parçalara bölme imkânı verir. Örnek:
1
Visual Studio çalışma ortamını açın. Başlangıç sayfası karşınıza çıkar. (Eğer başlangıç
sayfasını göremiyorsanız, Help menüsünden Show Start Page komutunu seçin.)
2
View menüsünden, Web Browser alt menüsünü işaretleyin ve Show Browser komutunu seçin.
Visual Studio, açmak istediğimiz Internet tarayıcısı için yeni bir sayfa oluşturur.
3
CTRL tuşunu basılı tutarak TAB tuşuna basın. Açtığınız Internet tarayıcısından başlangıç
sayfasına dönülür.
4
Başlangıç sayfasını sağ tıklayın ve açılan menüden New Vertical Tab Group komutunu seçin.
Visual Studio, sayfaları “sekme gruplarına” ayırarak birden fazla sayfa üzerinde çalışma imkânını
sağlar.
5. Başlangıç sayfasını, sayfa başlığını tıklayıp fare düğmesini basılı tutarak Internet tarayıcısının
bulunduğu sekme grubuna taşıyın.
İPUCU Visual Studio ortamını bir Web tarayıcısı olarak kullanabilirsiniz.
17
Bilgisayara Giriş
2010 2011
Araç Çubukları
Visual Studio, menü komutları için görsel kısayolları araç çubukları (Toolbars) ile sunar. Benzer
işlemler için kullanılan komutlar bir araç çubuğunda gruplanır. Örneğin Standard araç çubuğu, yeni
dosya oluşturmak, bir dosyayı açmak ve kaydetmek gibi genel dosya işlemleri için kullanılır.
Araç çubukları, varsayılan durumda menülerin altında bulunur. Ancak araç çubukları taşınarak
yerleri değiştirilebilir veya kayan duruma getirilebilir. Ayrıca istenen araç çubukları saklanabilir veya
gösterilebilir. Araç çubuklarının listesini görmek için View menüsünden Toolbars alt menüsünü
işaretleyin.
Visual Studio bize kendi araç çubuklarımızı oluşturma imkânı da verir. Farklı işlevlere sahip komutlar
gruplanıp, kişisel bir araç çubuğu oluşturulabilir. Örnek:
1
Başlangıç sayfasının üstündeki bir araç çubuğunu sağ tıklayın. Açılan menüde, varılan tüm
araç çubukları listelenir. İşaretli olan araç çubukları eklenmiş araç çubuklarıdır. Bu listeden Web
araç çubuğunu seçin.
2
Web araç çubuğunu çift tıklayın. Bu işlem, araç çubuğunu “Floating” (kayan menü)
durumuna getirir. Tekrar çift tıklandığında, araç çubuğu “Dockable” (sabit) durumuna gelir.
3
Araç çubuğunu sağ tıklayın. Açılan menünün en altındaki Customize (özelleştir) komutunu
seçin.
4
Toolbars sekmesinde New (yeni) komutunu tıklayın. Açılan pencerede araç çubuğunun ismi
için “Genel İşlemlerim” yazın. OK düğmesini tıklayın. Visual Studio, verilen isimde bir araç çubuğu
oluşturur ve kayan durumda görüntüler.
5
Commands (komutlar) sekmesinde, Categories (kategoriler) listesinden Help kategorisini
seçin. Bu listenin yan tarafında bulunan Commands listesinden Index komutunu bulun. Bu komutu
taşıyıp, oluşturduğumuz “Genel İşlemlerim” araç çubuğuna bırakın.
Bu şekilde şu komutları da ekleyin:
Categories Commands
Tools Options
18
Microsoft Visual Studio Ara yüzü
File
2010 2011
Exit
View Show Web Browser
Window Close All Documents
1
Araç çubuğunu çalışma ortamının altına taşıyarak sabitleyin.
2
Araç çubuğunu sağ tıklayın ve listeden “Genel İşlemlerim” araç çubuğunu seçerek çalışma
ortamından kaldırın.
Menüler
Birçok çalışma ortamının yaptığı gibi, Visual Studio da benzer öğeler üzerinde işlevleri olan
komutları menüler halinde gruplar. Menülerin araç çubuklarından farkı, sabit olmaları ve
özelleştirmeye açık olmamalarıdır. Menüler bu bölümde detaylı olarak ele alınacaktır.
Paneller
Paneller, Visual Studio içindeki pencerelerdir. Çalışma ortamında birçok panel bulunur. Bunlar
arasında Solution Explorer, Toolbox, Object Browser, Properties, Watch, Output, Search Result,
Task List gibi sıkça kullandığımız paneller sayılabilir.
İPUCU Görmek istenen paneller View menüsünden seçilebilir.
Paneller, Visual Studio ortamı içersinde istenen yere taşınabilir veya sabitlenebilir. Panellerin birkaç
genel özelliği vardır:
Auto Hide (Otomatik gizle). Panelin, fare imleci üzerindeyken gözükmesi ve imleç çekildikten
sonra gizlenmesidir.
Dockable (Sabitlenebilir). Panelin, Visual Studio ortamı içersinde bir yerde sabitlenebilme
özelliğidir.
Floating (Kayan). Kayan paneller herhangi bir yere sabitlenemez. Ancak her sayfanın üstünde
durur ve böylece sürekli görünür.
Panellerin bu özelliklerine Window menüsünden erişilebilir.
Örnek:
1
View menüsünden Other Windows alt menüsünü işaretleyin ve Favorites panelini seçin.
Panelin başlığında, biri Auto Hide, diğeri Close olmak üzere iki düğme görülür.
2
Auto Hide düğmesini tıklayarak paneli gizleyin.
3
Paneli tekrar seçin, Window menüsünden Auto Hide özelliğini seçin. Daha sonra aynı
menüden Floating özelliğini seçin. Panelin taşınabildiği, ancak sabitlenemediği görülür.
4
Panel seçiliyken, Window menüsünden Dockable özelliğini seçin. Bu sefer, panelin
taşındığında çalışma ortamının herhangi bir yerine sabitlenebildiği görülür.
5
Panel seçiliyken, Window menüsünden Hide komutunu seçin. Paneli tekrar açmak için bu
adımları tekrarlayın.
19
Bilgisayara Giriş
2010 2011
Start Page
Visual Studio çalışma ortamını açtığımız zaman karşımıza ilk gelen başlangıç sayfasıdır. Bu sayfa üç
bölümden oluşur (Resim 3.3).
Projects. O ana kadar çalıştığınız projeleri gösterir. Bu menüden son projelerinizi açabilirsiniz. Son
projelerde gözükmeyen bir proje (Open Project) veya yeni bir proje (New Project) de açabilirsiniz.
Online Resources. Bu bölümde örnek uygulamalar (Find Samples), ipuçları bulabilir, en yeni
teknolojileri, güncellemeleri veya en son eklenen haberleri takip edebilir, MSDN kütüphanelerinde
kod örnekleri ve makaleler araştırabilirsiniz.
My Profile. Bu bölümde çalışma şeklinize göre bir profil seçebilirsiniz. Profiller; kullanılan
kısayollara, panellerin yerlerine ve görünümlerine, Visual Studio yardımını kullanırken yapılan
filtrelemeye göre değişir.
Örneğin, profili Visual Basic Developer olarak ayarlarsak Toolbox, sayfaların sol tarafında çivili
olarak durur. Yardım panelinde bir arama yapmak istediğimizde ise, sonuçlar Visual Basic filtresine
göre çıkar. Ayrıca Solution Explorer paneli CTRL+R kısayolu ile açılır.
20
Microsoft Visual Studio Ara yüzü
2010 2011
Görünüm, kısayollar ve yardım filtresi birbirinden bağımsız olarak da ayarlanabilir. Bu durumda
seçilen profil, custom (özel) olarak gözükecektir. At Startup seçeneklerinden, Visual Studio açılırken
hangi pencerenin gözükeceğini belirleyebilirsiniz. Örneğin, başlangıçta en son çalıştığınız projenin
açılmasını istiyorsanız, “Load last loaded solution” seçeneğini tercih etmelisiniz.
İPUCU Giriş sayfasını kapattıktan sonra, Help menüsünden Show Start Page seçeneğini tıklayarak
açabilirsiniz.
Menüler
Visual Studio menüleri birçok uygulamanın menülerine benzer niteliktedir. Menü isimlerinde, belirli
bir harfinin altı çizilmiştir. Belirtilen harflere ALT tuşu ile birlikte basıldığında, o menülere kısayolla
ulaşılır. Menü komutlarının bazılarında ise, sadece o komuta özel bir kısayol tanımlıdır. Bu kısayollar
CTRL veya SHIFT gibi birkaç tuş kombinasyonu ile gerçekleşir.
File (Dosya). Tüm dosya işlemleri bu menü altındadır. Standard araç çubuğu ile bu menüdeki bazı
komutlara ulaşılır. File menüsündeki komutlar ile:
21
Bilgisayara Giriş
2010 2011
Yeni bir proje, bir dosya veya boş bir çözüm (solution) oluşturmak,
varılan bir dosyayı açmak,
ojeleri (Recent Files) açmak,
ür.
Edit (Düzenle). Tüm yazı düzenleme işlemleri için, bu menüdeki komutlar kullanılır. Text Editor
araç çubuğu da bu menünün komutlarına kısayoldur. Edit menüsündeki komutlar ile:
Copy, Cut, Paste, Delete, Select All gibi temel işlemleri
Find And Replace, Go, Bookmark gibi navigasyon işlemleri
Outlining ile metinleri gruplama işlemleri
-küçük harf çevrimi gibi ileri seviye
işlemler gerçekleştirilir.
View (Görünüm). Visual Studio çalışma ortamındaki tüm paneller bu menü komutlarıyla gösterilir.
Ayrıca Navigate Backward ve Navigate Forward komutlarıyla en son çalışılan satıra geri dönülür.
Project (Proje). Projeye dosya eklemek, çıkarmak, proje özelliklerini göstermek için bu menü
kullanılır.
Build (Derleme). Projelerin çalışmak üzere derlenmesi için gereken komutlar, bu menü altındadır.
Debug (Hata Ayıklama). Projede hata ayıklarken gereken komutlar Debug menüsü altındadır.
Projeyi Debug durumunda başlatmak, BreakPoints (hata ayıklarken durulması gereken satırları
ayarlamak) gibi işlemler yapılır.
Tools (Araçlar). Visual Studio ile beraber yüklenen yardımcı araçların listelendiği menüdür. Araç
çubuklarını özelleştirmek için kullanılan Customize seçeneği gibi Options seçeneği de en sık
kullanılan özelliklerden biridir.
Visual Studio çalışma ortamının tüm ayarları Options menüsünden yapılır. Environment ve Text
Editor en sık kullanılan seçeneklerdir.
Environment (Ortam). Sayfa düzeni ve görünüm ayarları, yazı tipi (font) ve renk ayarları, komutlar
için kısayol ayarları, Internet tarayıcısı ayarları, yardım ve dinamik yardım ayarları buradan yapılır.
Text Editor (Metin düzenleyicisi). Farklı programlama dillerine özgü yazı düzeni ayarları buradan
yapılır.
Örnek:
1
Tools menüsünden Options komutunu seçin.
2
Sol panelde bulunan Environment menüsünden Fonts and Colors (yazı düzeni ve renkler)
sekmesine gelin.
22
Microsoft Visual Studio Ara yüzü
2010 2011
3
Sağ panelde bulunan Display items (Öğeleri listele) menüsünden Text alanını seçin ve Item
background (Öğe arka planı) özelliğini Light Grey (Açık gri) olarak belirleyin. Tüm sayfaların arka
plan rengi açık gri olacaktır.
1
Sol panelde Environment menüsünden Web Browser sekmesine gelin. Home Page (ana sayfa)
özelliğinin altındaki Use Default seçeneğini kaldırın ve metin kutusuna www.bilgeadam.com yazın.
2
Sol panelde Text Editor menüsünden Basic alt menüsünü seçin. Burada Visual Basic diline
özel metin düzenleme seçenekleri bulunur. Sağ panelde, Display sekmesinin altında Line Numbers
(Satır numaraları) seçeneğini işaretleyin. Bu seçenek, Visual Basic projelerinde çalışırken satır
numaralarını gösterir.
Window (Pencere). Sayfaların ve panellerin görünümlerini ve özelliklerini değiştirmek için
kullanılan komutlar bu menü altında bulunur. Tüm açık çalışma sayfaları bu menü altında görüldüğü
gibi, istenen sayfa seçilerek ön plana getirilir. Ayrıca, Close All Documents (Tüm sayfaları kapat)
komutu ile açık olan bütün sayfalar kapatılır. Auto Hide All (Tümünü otomatik gizle) komutu ile,
sabit hale getirilmiş tüm paneller gizlenir.
Help (Yardım). Visual Studio çalışma ortamında çok sık kullanılan yardım panellerinin görünümü bu
menü ile sağlanır. Bu menü ile ayrıca, kullanılan Visual Studio çalışma ortamının sürümü hakkında
bilgi alınır, son güncellemeler kontrol edilir, teknik destek için gereken e-posta adreslerine veya
telefonlara ulaşılır.
Yardım kullanımı bu bölümde detaylı olarak ele alınacaktır.
23
Bilgisayara Giriş
2010 2011
Solution Explorer Paneli
Visual Studio çalışma ortamında projeler bir çözüm (solution) altında açılır. Bir çözüm içine farklı
dilde ve tipte projeler dahil edilebilir. Visual Studio ile bir çözüm açıldığında, Solution Explorer
panelinde (Resim 3.5) çözüm içinde bulunan tüm projelerle, ilgili dosya ve klasörler görüntülenir.
Panelde koyu yazı tipinde gözüken proje, çözüm içindeki başlangıç projesidir.
Bu panelden, öğeler üzerinde silme, kopyalama, taşıma ve ismini değiştirme işlemleri yapılabilir.
Ayrıca panelin üst kısmında, seçilen öğe üzerinde basit işlemler gerçekleştirmek için bir araç çubuğu
bulunur.
Refresh (Yenile). Proje dosyaları üzerindeki değişikliklerin gözükmesini sağlar.
Show All Files (Bütün dosyaları göster). Seçilen projenin bulunduğu klasördeki tüm dosyaları ve
alt klasörleri gösterir. Panelde gözüken beyaz öğeler proje içine dahil edilmemiş öğelerdir. Proje
kapsamında kullanılmak istenen öğeler (örneğin, arka plan resmi), sağ tıklanıp Include In Project
komutu ile projeye dahil edilmelidir.
Properties (Özellikler). Paneldeki tüm öğelerin özellikleri, Properties komutu ile görülebilir. Bu
komut seçildiğinde, öğenin özellikleri Properties paneli ile görüntülenir. (Properties paneli bu
bölümde detaylı olarak ele alınacaktır.)
24
Microsoft Visual Studio Ara yüzü
2010 2011
Solution Explorer paneli, View menüsünden görülebildiği gibi, varsayılan klavye seçeneklerinde
CTRL+ALT+L kısayolu ile de görülebilir.
Toolbox Paneli
Toolbox (Araç kutusu) paneli, projelerde kullanılan çeşitli bileşenlerin listelendiği paneldir. Buradaki
öğeler, sekmeler içinde gruplanmıştır. Her sekme, ortak platformlarda çalışan veya benzer işlevleri
olan nesnelere sahiptir. Örneğin, Data sekmesinde veritabanı işlemlerinde kullanılan bileşenler
vardır. Windows Forms bileşenleri Windows platformunda çalışan projelerde, Web Forms bileşenleri
ise Web tabanlı projelerde kullanılan nesnelerdir. ClipBoard Ring sekmesinde ise kopyalanan
metinler bulunur. Nesnenin silik gözükmesi, o anda çalışılan sayfada kullanılamayacağı anlamına
gelir.
Toolbox panelinde nesneler, en sık kullanılandan en az kullanılana göre sıralanır. Örneğin, Windows
Forms sekmesinde en üstte Label, Link Label, Button, TextBox nesneleri bulunur. Nesneler, yerleri
ve sıraları taşınarak değiştirilebilir, ayrıca başka bir sekmeye de taşınılabilir. Varsayılan sıralama
dışında, alfabetik olarak da sıralama yapılabilir.Visual Studio çalışma ortamı, Toolbox panelindeki
nesnelere yeni isim verme, nesneleri silme veya panele yeni sekmeler ve nesneler ekleme
imkânlarını da sağlar.
Örnek:
1
25
View menüsünden Toolbox panelini seçin.
Bilgisayara Giriş
2010 2011
2
Panelde herhangi bir yeri sağ tıklayın ve Show All Tabs (Bütün sekmeleri göster) komutunu
seçin.
3
Windows Forms sekmesinde TextBox nesnesini sağ tıklayın. Çıkan menüden Rename Item (Ad
Değiştir) komutunu seçin ve “Metin Kutusu” yazın.
4
“Metin Kutusu” nesnesini taşıyarak sekmenin en üstüne getirin.
5
Paneli sağ tıklayın ve Sort Items Alphabetically (Nesneleri alfabetik olarak sırala) komutunu
seçin. Metin Kutusu nesnesinin, alfabetik sırada yerini aldığı görülür.
6
Paneli sağ tıklayın ve Add Tab (Sekme ekle) komutunu seçin. Sekmeye “Medya” ismini verin.
7
Sekmeyi sağ tıklayın ve Add/Remove Items (Nesne Ekle/Kaldır) komutunu seçin. Customize
Toolbox iletişim kutusu açılır. Burada Toolbox paneline eklenebilecek tüm bileşenler listelenir. Com
Components sekmesine gelin ve listeden Windows Media Player nesnesini işaretleyin. OK düğmesini
tıklayarak iletişim kutusunu kapatın. Windows Media Player nesnesinin, oluşturulan Medya
sekmesine eklendiği görülür.
Toolbox paneline varsayılan klavye seçeneklerinde CTRL+ALT+X kısayolu ile ulaşılır.
Properties Paneli
Properties (Özellikler) paneli seçilen bir nesnenin özelliklerini görüntüler. Paneldeki görünüm,
“Özellik adı – değeri” şeklindedir. Silik olarak gözüken özellikler salt okunurdur ve değiştirilemez.
Panelin üzerindeki açılır liste, çalışma sayfasındaki nesneleri listeler. Buradan istenen nesne
seçilerek özellikleri görüntülenir.
Paneldeki özellikler kategorilere göre gruplanmıştır, ancak alfabetik olarak da dizilebilir. Panelin
üstünde bulunan araç kutusundan Categorized (Kategorileştirilmiş) veya Alphabetic (Alfabetik)
seçenekleri işaretlenerek özelliklerin görünümleri değiştirilebilir.
26
Microsoft Visual Studio Ara yüzü
2010 2011
Panelin en altında bulunan bölümde, her özelliğin açıklaması bulunur.
İPUCU Bir nesnenin üzerindeyken F4 tuşuna basınca, Properties paneli görüntülenir.
Help Kullanımı
Yazılım geliştirirken en çok kullanacağımız kaynaklar yardım dosyaları olacaktır. Bir programlama
dilinin çok çeşitli özellikleri ve kullanım farklılıkları olabilir. İyi bir programcı bütün bu özellikleri
ezbere bilen değil, bu özellikleri en kısa sürede bulan, öğrenen ve kullanan programcıdır. Yardım
dosyalarının kullanımını bilmek, programcılığın temelini oluşturan önemli unsurlardan biridir.
DİKKAT Visual Studio yardımını kullanmak için, MSDN (Microsoft Developer Network) yardım
kütüphanelerinin yüklenmiş olması gerekir.
Visual Studio yardımı programcıya, gelişmiş özelliklere sahip paneller ve yardım dosyaları ile geniş
bir kullanım kolaylığı sağlar.Visual Studio yardım dosyalarının yapısı, başlık, içerik ve ilişkili konular
(See Also) bölümlerinden oluşur. Ayrıca her yardım dosyasının altında bulunan Send Comments
bağlantısı ile konu hakkında yorum gönderilebilir.
Visual Studio yardım panelleri Dynamic Help, Search, Index ve Contents olarak dörde ayrılır. Bu
panellere, Help menüsünden ulaşılabilir.
27
Bilgisayara Giriş
2010 2011
I. Dynamic Help
Dynamic Help (Dinamik yardım) paneli, içeriği otomatik olarak değişen bir araçtır. Kod yazarken,
panellerde veya sayfalarda nesneler seçildiğinde, kullanıcının başka bir işlem yapmasına gerek
kalmadan, o nesne hakkındaki yardım konularını listeler. F1 tuşuna bastığımız zaman ise, seçilen
nesneye ait, Dynamic Help panelindeki ilk yardım konusu yeni bir sayfada görüntülenir.
Paneldeki yardım konuları Help, Samples ve Getting Started olarak üç bölüme ayrılmıştır. Help
bölümü, seçilen nesneyle ilişkili olan kavramların listelendiği bölümdür. Samples, konuyla ilgili kod
örnekleri bulunan yardım dosyalarını gösterir. Getting Started, çalışılan sayfalara göre değişen,
temel işlemleri içeren başlangıç yazılarını gösterir.
Search
Search (Arama) paneli, MSDN kütüphanelerinde arama yapılan paneldir. Look for metin kutusuna,
aranacak anahtar kelimeler girilir. Filtered by (Filtreleme) ile arama sonuçları belli konulara göre
sınırlanır ve istenmeyen seçeneklerin gösterilmesi engellenir.
Search panelinde, Search in titles only, Match related words, Search in previous results, Highlight
search hits arama seçenekleri bulunur:
Search in titles only. Sadece konu başlıklarında arama yapar; içerik kısmına bakmaz. Match
related words. Kelimeleri yazıldığı gibi arar; benzer yazımlı kelimeleri aramaz. Search in previous
results. İlk aramadan sonra aktif olan bu seçenek ile kelimeler, bir önceki aramada bulunan sonuçlar
arasında aranır. Highlight search hits. Bulunan yardım sayfalarında, aranan kelimelerin seçili
olmasını sağlar.
Bulunan sonuçlar Search Results (Arama Sonuçları) panelinde gösterilir. Bu panelde;
Title, konunun başlığınıLocation, MSDN kütüphanelerinde hangi başlık altında bulunduğunu
Rank, konunun aranan kelimeye olan yakınlık derecesini ifade eder.
Index
Index (Dizin) paneli, yardım dosyalarındaki bütün konuları alfabetik sırada dizer. Filtreleme işlevi,
arama panelinde olduğu gibidir. Bu panelin özelliği, aranacak kelime yazılırken, bu kelime ile
başlayan tüm konuların alfabetik sırada gösterilmesidir. Bu şekilde, aranan konulara çok hızlı bir
şekilde ulaşılabilir.
Eğer bir konu ile ilgili birden fazla yardım dosyası varsa, Index Results (Dizin Sonuçları) panelinde bu
seçenekler gösterilir.
Contents
Contents (İçerik) panelinde, tüm MSDN içeriği konulara göre hiyerarşik yapıda, kategorilere ayrılmış
olarak gösterilir. Bu panelde de aynı şekilde filtreleme yapılarak istenmeyen içerikler çıkartılabilir.
28
Microsoft Visual Studio Ara yüzü
2010 2011
Bir yardım dosyası açıkken, Help menüsünden Sync Contents (İçerik senkronizasyonu) komutu
seçilerek o yardım dosyasının Contents panelindeki yeri bulunabilir.
29
Algoritma ve Dump Coding
2010 2011
Bölüm 5. Algoritma ve Dump
Coding
Programlamanın temelinde, çalışma akışını ve izlenecek yolları belirleyen algoritmalar vardır. Bir iş
yapılmaya başlanmadan önce nasıl planlanıyorsa, kodlamaya geçilmeden önce de bir çalışma planı
belirlenmelidir. Programla, bu planda yazılan kodları belli bir sıra ile okur ve işler. Dolayısıyla
algoritma yapısını çok iyi kurmak gerekir. Kurulan algoritmalar akış diyagramları ile görsel zenginlik
kazanırlar.
Dump Coding yöntemi algoritmaları çözmenin uzun, fakat etkili bir yoludur. Bu yöntem, adımları tek
tek inceleyerek algoritma akışını çözer. Bu modül tamamlandıktan sonra;
ump Coding ile algoritmaları çözümleyecek,
Konu 1. Algoritma Nedir?
Algoritma, bir işin hangi etaplardan geçilerek yapılacağını gösteren çalışma planıdır. Algoritma bir
programlama dili değildir. Programlama dillerine yol gösteren bir yöntem dizisidir. Her dilde
30
Bilgisayara Giriş
2010 2011
algoritma yazılıp uygulanabilir. Örneğin bir cep telefonunun el kitapçığında yazan, rehber kaydı
girmek için izlenecek yollar, o işin algoritmasıdır.
Algoritma yazarken, programın çalışması için kullanılan kaynakların, yapılması gereken kontrollerin
veya işlemlerin açıkça ifade edilmesi gerekir. Ayrıca iyi bir algoritmanın, tüm ihtimalleri kontrol
edip istenmeyen durumlarda ne yapılması gerektiğini de belirtmesi gerekir.
işi. Çalışma zamanında çoğu kez, işleyişin tamamlanması için dışarıdan bir bilgi girilmesi
gerekir. Algoritmanın çalışması için ihtiyaç duyduğu veriler, işlemi başlatan kişiden veya belirtilen
bir kaynaktan alınabilir. Bu bilgiler sağlanmadan işlem devam etmez.
veya işlem sonucunda elde edilen veriler, işlemin amacına göre kontrol edilir ve sonuca göre
algoritma akışı istenen yere yönlendirilir.
Algoritmanın akışı boyunca veriler üzerinde değişiklikler, yeni değer atamaları gibi
işlemlere ihtiyaç duyulur. Algoritmalar kurulurken, yapılan işlemlerin yalın halde, tek tek yazılması
okunabilirliği artırır.
Algoritmalar adım sırası ile çalışır ve karar yapıları sonucunda farklı bir yere yönlendirilmediği
müddetçe, bir sonraki adım ile işlemeye devam eder.
Örnek: Telefon kulübesinden telefon açmak için örnek bir algoritma
1
Telefon kulübesine git.
2
Telefon kartı al.
3
Telefon sırasında kaç kişi olduğuna bak.
4
Kişi sayısı sıfırdan fazlaysa 3‟e dön.
5
Kapı kapalıysa kapıyı aç.
6
İçeri gir, kapıyı kapat.
7
Telefon kartını telefona yerleştir.
8
Ahizeyi kaldır.
9
Numarayı çevir.
10
Konuşmanın bitip bitmediğine bak.
11
Konuşma bittiyse kartı al, bitmediyse 10‟a dön.
12
Bir daha konuşma yapılacaksa 7‟ye dön.
13
Kapıyı aç, dışarıcık.
Bu algoritmanın işlemesi için, her ihtimal gözden geçirilerek, algoritma akışı gerekli yerlere
yönlendirilir. Örneğin, kapının kapalı olması durumunda kapıyı açmak için gerekli komutlar
verilmelidir. Bu algoritmanın ihtiyaç duyduğu veriler ya kullanıcı tarafından verilir ya da işlem
başlamadan önce belirlidir. Sıradaki kişi sayısı, telefon kartı gibi veriler kullanıcı tarafından
sağlanmış; çevrilecek numara, algoritma başlamadan önce belirlenmiştir.
31
Algoritma ve Dump Coding
2010 2011
Dump Coding Nedir?
Dump Coding yöntemi birçok karışık algoritmayı çözümlememizi sağlar.
Dump Coding yöntemi, algoritmanın her adımında, değişkenlerin tek tek değerlerini yazıp işleyişi
takip etmektir. Örnek: İki sayının OBEB‟ini (ortak bölenlerin en büyüğünü) alan algoritmalardan bir
tanesi Euclid tarafından geliştirilmiştir.
1
İki sayı gir. Büyük A, küçük B.
2
A sayısını B sayısına böl. Tam bölünüyorsa, OBEB B sayısıdır. Çıkış.
3
A sayısının değerini, kalan sayının değeri yap.
4
A ile B sayılarının yerini değiştir. İkinci etaba dön.
Bu algoritmanın çalışma mantığı, Dump Coding yöntemi ile adım adım incelenir.
1
İki sayı girilir. A = 12 ve B = 8.
2
A sayısı, B sayısına tam bölünmüyor. Algoritma diğer etaptan devam eder.
3
Kalan sayı = 4. Dolayısıyla A = 4 olur.
4
A sayısı ile B sayısının yerleri değiştirilir.A = 8 ve B = 4 olur. İkinci etaba dönülür.
5
A sayısı B sayısına tam bölünüyor. OBEB = 4.
Akış Diyagramlarında Kullanılan Semboller
32
Bilgisayara Giriş
2010 2011
Madde madde yazılan algoritmaların okunması kolaydır, ancak işleyişin bütününü görmek, çoğu
zaman mümkün değildir. Akış diyagramları, algoritmaları görsel biçimde göstermeyi, dolayısıyla
daha anlaşılır hale getirmeyi sağlar. Algoritmada yapılacak işlemlerin çeşitlerine göre çeşitli
semboller kullanılır.
Başla – Bitir. Algoritmanın hangi aşamadan başlayacağını ve ne zaman biteceğini gösteren
semboldür. Bir algoritmayı temsil eden akış diyagramında, bir tane Başla ve bir tane Bitir sembolü
olmalıdır (Resim 5.1).
Veri Girişi. Kullanıcıdan ve başka bir kaynaktan alınan verilerin isimlerini tutar (Resim 5.2).
Karar Verme. Karar yapısını belirten semboldür. Üstünde koşul ifadesi belirtilir (Resim 5.3).
Veritabanı. Veritabanında okuma veya yazma işlemi yapıldığını gösterir (Resim 5.4).
çin ayrı bir fonksiyon sembolü
kullanılması, akış diyagramını daha anlaşılır kılar (Resim 5.7).
33
Algoritma ve Dump Coding
2010 2011
belirtilir (Resim 5.8).
Algoritma Uygulamaları
I. Bilet Satma
Bir tiyatro uygulamasının sürekli gerçekleştireceği temel işlem, bilet satmaktır. Bu işlemi
gerçekleştirmek için gerekli kodlar yazılmadan önce, algoritma kurulmalıdır (Resim 5.9).
1
Kullanıcının istediği oyun, gün ve yer bilgileri alınır.
2
Veritabanı sorgulanarak, belirtilen günde oynayan oyunun boş yerleri çıkartılır.
3
Boş yer sayısı sıfırsa, o günde belirtilen oyun oynanmıyordur ya da oyundaki bütün
yerler satılmıştır.
4
Her iki durumda da bilet kesilemediği için ekranda hata mesajı gösterilir. Gün ve oyun
bilgilerini baştan almak için ilk etaba dönülür.
5
Kullanıcıdan oturmak istediği yer bilgisi alınır.
6
İstediği yerin dolu olup olmadığı kontrol edilir.
7
Yer dolu ise ekrana hata mesajı gösterilir ve yer bilgisi tekrar alınmak üzere 5. etaba
dönülür.
8
Yer boşsa, veritabanında oyunun yer kayıtları güncellenir.
34
Bilgisayara Giriş
9
2010 2011
İstenilen gün, oyun ve yer bilgilerini içeren bilet yazıcıdan çıkartılır.
Çay Demleme
Bu örnekte, bir çay demleme işleminde yapılması gereken işlemleri, kontrol edilmesi gereken
olayları içeren algoritma kurulur (Resim 5.10).
1
Kullanıcıdan su vermesi beklenir.
2
Suyu ısıtma işlemi yapılır.
3
Suyun kaynayıp kaynamadığı kontrol edilir. Kaynamamışsa 2. etaba dönülür.
4
Çay daha önceden hazır olduğu için, kullanıcıdan beklenmez. Demliğe çay koyma işlemi
yapılır.
5
Kullanıcıdan, demleme işleminin ne kadar süreceği bilgisi alınır.
6
Kullanıcıdan alınan demleme süresi ile şimdiki zaman (çayın demlenmeye başladığı
zaman) toplanır. Çıkan değer, BitisZamani isimli değişkene atılır. Bu değişken demleme
işleminin ne zaman biteceği bilgisini tutar.
7
Şimdiki zaman, bitiş zamanından küçükse çayın demlenmesi için ayrılan süre daha
dolmamış demektir. Bu süre dolana kadar 7. etap tekrarlanır.
8
Çayın demlendiğini, kullanıcıya ekran üzerinde bildiren bir mesaj çıkartılır.
Üniversite Eğitim Notunu Hesaplama
Üniversitede bir dersin başarı notu, genelde bir vize ve bir final notu ile hesaplanır. Vize
notunun katsayısı finalden daha düşüktür. Sonuçta çıkan not 50 ve üstündeyse öğrenci geçer,
50‟nin altındaysa kalır. Bu örnek, vizenin %30 ve finalin %70 ağırlıklı olduğu başarı notunun
hesaplanmasını akış diyagramıile gösterir (Resim 5.11).
35
Algoritma ve Dump Coding
1
Notu hesaplanacak öğrencinin numarasıkullanıcıdan alınır.
2
Veritabanından öğrencinin vize ve final notları çekilir.
2010 2011
3
Eğer final notu 28 veya daha düşükse öğrenci kalır ve 9. etaba gidilir. Bu durumda vize
notu 100 olsa dahi, sonuç olarak toplanan not 50‟nin altında olur. Dolayısıyla öğrencinin kalması
kesinleşir. Böyle bir kontrol yapılması, gereksiz işlemlerin yapılmasını engeller.
4
Vize değişkenine, veritabanından alınan vize notunun %30‟u atanır.
5
Final değişkenine, veritabanından alınan final notunun %70‟i atanır.
6
Sonuc değişkenine, Vizeve Finaldeğerlerinin toplamıatanır.
7
Sonuc değerinin 50‟den büyük olup olmadığı kontrol edilir.
8
Sonuc 50‟den büyükse ekrana “Geçtiniz” yazan bir mesaj çıkartılır. Algoritmadan çıkılır.
9
Sonuç 50‟den küçükse ekrana “Kaldınız” yazan bir mesaj çıkartılır.
36
Bilgisayara Giriş
2010 2011
Alıştırmalar
Kaynak: http://www.biltek.tubitak.gov.tr
Aşağıdaki sorular Yeryüzünde henüz cevabını kimsenin bilmediği sorular!
Ancak biz bunların cevabını bulmayacağız tabii
Bu sorulardan yararlanarak bazı problemler yapalım…
I. Soru
Asal sayılara ilişkin pek çok bilgi henüz gün ışığına çıkmadı. Bunun yanı sıra ortaya atılmış ama
ispatlanmamış pek çok da kestirim var. İşte bunlardan biri:
• İkiz Asallar: İkiz asallar yani aralarındaki fark 2 olan asallar sonsuz tane midir? Bende bilmiyorum
ve tabii ki bunu bulmanızı istemicem
(3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43). ..???
Veee soru.
•
keyfi verilen N sayısı için elemanları ikiz asal sayılardan oluşan (2xN) lik matrisi veren
programın algoritmasını yazınız.
Soru
Mükemmel Sayı Sorusu
Mükemmel sayı kendisi haricindeki tüm çarpanlarının toplamı kendisini veren sayıdır. Örneğin 6 bir
mükemmel sayıdır çünkü kendisi haricindeki çarpanları yani 1, 2 ve 3 toplanınca kendisini verir: 1 +
2 + 3 = 6. Diğer örneklerse 28, 496, 8128 şeklinde gidiyor. Şimdiye kadar hiç tek mükemmel bir
sayıya rastlanmamış. Merak edilen böyle bir sayının var olup olmadığı. Eğer vardır diyorsanız bu
sayıyı, saklandığı yerden bulup çıkarmalı, ya da olmadığını iddia ediyorsanız bunu ispatlamalısınız.
•
Tabii ki sizden böyle bir ispat beklemiyorum. Sizden istediğim (i,j) bileşenleri
mükemmel sayılardan oluşan verilen 2x2 lik mükemmel bir matris oluşturacak şekilde algoritma
yazmanız…. Yani bu durumda matrisinizin elemanları 6,28,496,8128 olacaktır.
Soru
Palindromik Sayılar
37
Algoritma ve Dump Coding
2010 2011
Kapak, kütük, sus, yay, kepek kelimeleri ilginç bir ortak özellik ile dikkat çekiyor: düzden ve tersten
okunduğunda aynı. Benzer bir yapıya sahip olan Palindromik sayılar da düzden ve tersten
okunduğunda aynı olan sayılardır: 1991, 10001, 12621, 79388397, 82954345928.
Bu alandaki açık soru ise şöyle:
Hem asal hem de Palindromik olan sonsuz tane asal sayı bulunabilir mi? Yine ben bu soruyu
sormayacağım. Sanırım asallarla çok işimiz var.
Soru şu:
•
Bileşenleri Palindromik sayı olan NxN matris oluşturacak şekilde programın algoritmasını
yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2003_1.pdf
Soru
Elemanları, 6 ile bölündüğünde 5 kalanını; 7 ile bölündüğünde 6 kalanını veren keyfi NxN
matrisi yazdıran programın algoritmasını yazınız.
Soru
Kendisi dışındaki tüm bölenlerinin toplamı kendisinden büyük olan her pozitif tam sayıya verimli sayı
diyelim. Örneğin, 27 sayısının, kendisi dışındaki bölenlerinin toplamı 1+3+9 = 13 < 27 olduğundan, 27
sayısı bir verimli sayı değildir. Öte yandan, kendisi dışındaki tüm bölenlerinin toplamı
1+2+3+5+6+10+15 = 42 > 30 olduğundan, 30 sayısı bir verimli sayıdır.
Buna göre elemanları verimli sayılardan oluşan keyfi NxN lik matrisi veren programın
algoritmasını yazınız.
Kaynak: http://www.math.metu.edu.tr/~aldoks/oyak/2004_1.pdf
Herkese çok kolay gelsin.
Arzu Erdem
38
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Bölüm 6. Visual Basic.NET ile
Windows Tabanlı Programlama
Windows tabanlı uygulamalar, Windows işletim sistemi üzerinde çalışan uygulamalardır. Windows
uygulamaları Windows formları ve kontrollerinden oluşur. Visual Studio bu formların ve üzerindeki
kontrollerin tasarımını ve kodların yazılmasını büyük ölçüde kolaylaştırarak, uygulama geliştirme
sürecini daha hızlı ve kolay hale getirir.
Bu bölümü tamamladıktan sonra;
tabanlı programlamada kullanılan kontrolleri tanıyacak,
t ve olay kavramlarını öğrenecek,
tanımlamayı öğrenecek,
39
Bilgisayara Giriş
2010 2011
Konu 1. İlk Uygulama (Hello World, The Time
Is...)
Visual Basic .NET ile yazacağımız Windows uygulaması ekrana, “Hello World!” yazısını ve o anki
zamanı gösteren bir bilgi mesajını çıkartır.
1
Visual Studio çalışma ortamını açın.
2
File menüsünden, New alt menüsünü ve Project komutunu seçin. “New Project” iletişim
kutusu, yazılacağı dile, çalışacağı ortama göre değişen proje tiplerini listeler.
3
edin.
Proje tiplerinden Visual Basic Project ve Windows Application tipinin seçili olduğunu kontrol
4
Name özelliğine Hello World yazın ve OK düğmesini tıklayın. Açılan Windows projesinde
başlangıç olarak bir adet Windows Form, tasarım görünümünde açılır.
5
Toolbox panelinden Button kontrolünü formun üzerine sürükleyip bırakın. Properties panelini
açarak Button kontrolünün Text özelliğine “Hello World!” yazın.
6
Eklenen Button kontrolünü çift tıklayarak kod sayfasına geçin. Button kontrolü tıklandığında
çalıştırılacak kodu yazın:
MsgBox("Hello World! The time is " & Now)
NOT Yazdığınız kodun ne anlama geldiğini belirtmek için yorum satırları kullanmak, kodları okumayı
kolaylaştırır. Yorum satırları tek tırnak 'ile başlayarak yazılmalıdır.
7.
MsgBox metodunun yazıldığı kodun üstüne, yapılmak isteneni belirten bir yorum satırı yazın.
' MsgBox metodu ile kullanıcıya Merhaba diyoruz. ' Now özelliği ile o andaki saat ve gün ' değerlerini
de kullanıcıya gösteriyoruz.
8.
F5 tuşuna basarak projeyi çalıştırın.
40
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
İPUCU Çalışma sayfaların isimlerinin yanında yıldız işaretinin gözükmesi, o sayfada değişiklik
yapıldığını, ancak henüz kaydedilmediğini belirtir. Proje dosyalarınızı CTRL+S tuşlarına basarak sıkça
kaydedin.
Özellikler, Metotlar ve Olaylar
.NET kontrolleri üç temel kavramdan oluşur.
I. Özellikler
Özellikler, kontrollerin görünümü, yerleşimi veya davranışlarına özgü niteliklerdir. Örneğin, bir
Button kontrolünün Text özelliği, üzerinde yazan yazıya erişmemizi sağlar.
Kontrollerin özellikleri, tasarım anında Properties panelinden ulaşılabileceği
gibi, kod tarafında da okunup değiştirilebilir. Kontrollerin birçok özelliği hem okunabilir, hem de
değiştirilebilir. Ancak bazı özellikler salt okunur (ReadOnly) ve salt yazılır (WriteOnly) olabilir. Bu
tip özellikler Properties panelinde gözükmezler.
Kontrollerin birçok ortak özellikleri vardır.
Text (Yazı). Kontrollerin Text özelliği, üzerinde görüntülenen yazıdır. Bu özellik, çalışma anında
sıkça okunup değiştirilerek kullanıcıyla iletişim sağlanır.
TextBox kontrolüne girilen bir değerin okunup Label kontrolüne yazılması için, kontrollerin Text
özellikleri kullanılır.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = TextBox1.Text
End Sub
41
Bilgisayara Giriş
2010 2011
Name (İsim). Name özelliği kontrollere ulaşmak için kullanılan özelliktir. Birçok kontrolün Text
özelliği aynı olabilir. Ancak her biri ayrı birer nesne olduğu için, Name özelliklerinin benzersiz olması
gerekir.
TextBox2.Text = TextBox1.Text
İki TextBox kontrolünün yazıları aynı, fakat isimleri farklıdır.
Size (Büyüklük). Kontrollerin büyüklük özelliğidir. Height (yükseklik) ve Width (genişlik)
özelliklerinden oluşur. Genellikle tasarım anında belirlenen bu özellik, çalışma anında da
değiştirilebilir.
Label1.Height = 10 Label1.Width = 20
BackColor (Arka plan rengi). Kontrollerin arka plan renginin ayarlandığı özelliktir. Bu özelliğin
değeri, Color (renk) nesnesinde tanımlı değerlerle belirlenir.
ForeColor (Önalan rengi). Kontrollerin üzerindeki yazıların rengini belirler.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Button1.ForeColor = Color.White
Handles
Button1.Click
Button1.BackColor
=
Color.Black
End Sub
Visible (Görünür). Kontrollerin ekranda görünüp görünmediklerini belirleyen özelliktir. True ve
False olmak üzere iki değer alabilir. Boolean veri tiplerinden bu modülde bahsedilecektir.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
'Label kontrolünü gizle
Label1.Visible = False
'Label kontrolünü göster
Label1.Visible = True
42
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
End Sub
End Class
Metotlar
Metotlar kontrollerin yaptığı işlemlerdir. Metotlar parametreyle veya parametresiz çağrılabilir.
Parametreyle çağırmak, metodun girilen değere göre işlem yapacağını belirtir. Örneğin
Focus (Odaklan) metodu, parametre beklemeden çalışır ve kontrolün seçilmesini sağlar.
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click ' İşlem yapıldıktan sonra ' TextBox kontrolüne
odaklan TextBox1.Focus()
End Sub
Kontrollerin bazı ortak metotları vardır.
Select (Seç). Select metodu Focus ile aynıdır, ama TextBox kontrolünün Select metodunun
diğerlerinden bir farkı vardır. TextBox içindeki yazının belli bir kısmını ya da tamamını, verilen
parametrelere göre seçer (Resim 4.3).
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs)
TextBox1.Focus()
Handles
Button1.Click
TextBox1.Text
=
"Yazılım
Uzmanı"
' Sekizinci karakterden sonra, beş karakter seç TextBox1.Select(8, 5)
End Sub
RESİM 4.3
BringToFront (Öne Getir). Kontrolü, üst üste duran kontroller arasından en öne getirir.
SendToBack (Arkaya Gönder). Kontrolü, üst üste duran kontrollerin en arkasına gönderir.
Hide(Sakla). Kontrolün gözükmesini engeller.
Show(Göster). Kontrolün gözükmesini sağlar.
Olaylar
Olaylar kontrollerin başına gelen işlemlerdir. Olayların metotlardan farkı, bu işlemlerin kontrollerin
elinde olmadan gerçekleşmesidir. Örneğin bir Button kontrolünün tıklanması, o kontrolün isteği
dışında yapılmıştır. Bu olayın tetiklenmesinde kontrolün bir rolü yoktur. Bu olaylar gerçekleştiği
zaman yapılması gereken işlemler, ilgili olayın yordamına yazılır. Button1 isimli kontrol tıklandığı
zaman gerçekleştirmek istenen eylemler Button1_Click yordamına yazılır.
43
Bilgisayara Giriş
2010 2011
Visual Studio ortamı, kontrollerin olaylarını kolay bir şekilde seçmeyi sağlar. Kod sayfalarında
kontrollerin bulunduğu listeden, istenen kontrol seçilir. Kontrolün olaylarının listelendiği diğer
listeden de istenen olay seçilir (Resim 4.4).
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
MyBase.Click MsgBox("Form üzerine tıklandı") End Sub
Visual Studio, olayların yordam isimlerini Kontrol İsmi_Olay İsmi biçiminde yazar.Kontrollerle
çalışırken benzer olaylar kullanılır.
Click (Tıklandığında). Kontrol tıklandığı zaman
programlamada en sık kullanılan olaylardan biridir.
tetiklenen
olaydır.
Windows
tabanlı
MouseDown (Fare düğmesi basıldığında). Fare, kontrolün üzerindeyken herhangi bir düğmesine
basıldığı zaman gerçekleşen olaydır. Bu olay, Click olayından önce çalışır.
MouseUp (Fare düğmesi bırakıldığında). Fare, kontrolün üzerindeyken basılan düğme bırakıldığı
zaman çalışır.
Enter (Girildiğinde). Kontrol seçildiği veya üzerine odaklanıldığı zaman gerçekleşen olaydır.
Leave (Çıkıldığında). Başka bir kontrol seçilmek üzere çıkıldığında, bu kontrolün Leave olayı
tetiklenir.
VisibleChanged(Görünürlüğü
değiştiğinde).
Visibleözelliği değiştiği zaman tetiklenir.
Kontrolün
görünüp
görünmediğini
belirten
İPUCU Olayların çalışma sıralarını test etmek için tüm olay yordamlarına, mesaj kutusu çıkaran
(MsgBox) kod yazın. Daha sonra projeyi çalıştırıp kontroller üzerinde yapılan değişikliklere göre
olayların çalışma sıralarına bakın.
44
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Visual Basic.NET‟e Kontrollerin Eklenmesi
Windows tabanlı uygulamalar geliştirirken sıkça kullanacağımız bir grup kontrol vardır. Form
kontrolü hariç diğer bütün kontroller Toolbox panelinden seçilir. Bu kontroller sürüklenip form
üzerinde istenen pozisyona bırakılır (Resim 4.5).
Şekil 4.5
Kontroller, Toolbox panelinde çift tıklanarak da eklenebilir.Kontrollerin tasarım anında büyüklükleri
ve yerleri Size ve Location özellikleri ile değiştirilebileceği gibi, fare ile de istenen şekilde
ayarlanabilir (Resim 4.6).
Şekil 4.6
Uygulamaların özellikleri ile ilgili örnekler için
45
dosyasını açınız!
Bilgisayara Giriş
2010 2011
Form
Windows uygulamaları, Windows kontrollerinin tutulduğu pencereler olan formlardan oluşur. Bir
Windows projesi açıldığı zaman Form kontrolü otomatik olarak eklenir. İkinci bir form eklemek için
Project menüsünden Add Windows Form komutunu seçilir. Proje çalıştığı zaman başlangıç formu
görüntülenir. Başlangıç formu projenin özelliklerinden değiştirilir (Resim 4.7 ve Resim 4.8)
Şekil 4.7
Şekil 4.8
Visual Studio ortamında formlar, tasarım sayfası ve kod sayfası olmak üzere iki farklı sayfada
görüntülenir. Tasarım sayfası, formun ve üzerindeki kontrollerin görünümlerini kolay bir şekilde
değiştirmeyi sağlar. Visual Studio bu sayfada yapılan değişiklikleri kod sayfasında eşzamanlı olarak
günceller. Örneğin, bir Button kontrolünün genişliğini fare ile değiştirdiğimiz zaman, kod sayfasında
46
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
bu kontrolün Width özelliği yapılan değişikliğe göre güncellenir. Aynı değişiklikler Properties
panelinde de görülebilir.
Formların, diğer kontrollerin özelliklerinden farklı bazı özellikleri vardır.
ControlBox (Denetim kutusu). Form üzerindeki simge durumuna küçültme, ekranı kaplama ve
formu kapatma (Minimize / Maximize / Close) kutularının görünümünü ve erişilebilirliğini kontrol
eder.
NOT Formun ControlBox özelliği False iken uygulama, Debug menüsünden Stop Debugging komutu
seçilerek kapatılabilir.
StartPosition (Başlangıç pozisyonu). Form açıldığı
CenterScreen seçeneği formu ekranın ortasında gösterir.
zaman
nerede
gözükeceğini
belirler.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
Label1.Text = "Proje başlatıldı. Kayıt zamanı: " &
Now
End Sub
Form Özellikleri
Özellik
Değer Tipi Açıklama
AcceptButton Button
Form üzerinde Enter tuşuna basıldığı zaman “tıklanacak” Button
kontrolü
AllowDrop
Bu özelliğin “True” olması ile resim dosyalarını formunuzun üstüne
sürükleyip bıraktığınızda şekil formunuzun üstünde kalabilecektir.
(Sadece True olması yeterli değildir. Formunuzun DragDrop olayı
ile kod ekranında istediğiniz formatı vermeniz gerekmektedir.)
AutoScroll
Panel içinde kaydırma çubuklarının eklenmesini istiyorsanız bu
özelliği “True” yapmalısınız.
AutoSize
“True” ise nesnenin boyutlarını değiştiremeyebilirsiniz. Bu
durumda nesnenin boyutlarını değiştirmek istiyorsanız “False”
yapmalısınız.
AutoValidate
(i) Disable: Onaylama işlemleri bu özellik ile kapanır.
(ii)
EnableAllowFocusChange:
Onaylama
işlemleri
ulaşılabilirdir. Fakat onaylama işlemi başarısız olursa işlem yeni bir
kontrole geçer. Validated olayı çalışmaz.
(iii) EnablePreventFocusChange: Onaylama işlemi kontrol
başarısız olsa bile gerçekleşir.
(iv) Inherit: Otomatik kontrol davranışını içerdiği bir
formdan veya başka bir kontrolden alır. Eğer içerdiği bir kontrol
47
Bilgisayara Giriş
2010 2011
davranışı yok ise otomatik olarak EnablePreventFocusChange
olarak atar.
BackColour
Nesnenizin arka plan rengini değiştirir.
BackgroundImage
Nesnenizin arka planına resim koymak istiyorsanız bu özellikten
yararlanacaksınız.
BackgroundImageLayout
Resminizin ortalı, dayalı,… vb. gibi olmasını istiyorsanız bu özelliği
kullanacaksınız.
CancelButton
AcceptButton‟un aksine formunuzda ESC düğmesini aktif hale
getirme işlemini yapar.
CauseValidation
Validating veya validated olaylarının meydana gelmesi için bu
özelliğin “True” olması gerekir.
ContextMenuStrip
ContextMenu kontrolü sağ fare tuşu ile açılan menüler oluşturmak
için kullanılır.
ControlBox
Max. Min. Ve kapatma ile ilgili kontrolleri
istemiyorsanız bu özelliği “False” yapmalısınız.
Cursor
Fare kontrol üzerine geldiğinde fare göstergesinin alacağı şekil bu
özellik ile belirlenir
DoubleBuffered
Kontrolünüzün yüzeyinin çizilebilir olmasını istiyorsanız “True”
özelliğinde olmalı.
Enabled
Kontrolünüzü erişilebilir olması için “True” özelliğinde olmalıdır.
Font
Kontrolünüzdeki yazı tipini
değişiklik yapabilirsiniz.
ForeColour
Kontrolünüzdeki yazı renklerini buradan değiştirebilirsiniz.
FormBorderStyle
Bu özellik ile formun çerçeve şeklini belirleyebilirsiniz.
belirlemek
kullanmak
istiyorsanız
(i)
Sizable: Otomatik olarak atana değerdir.
kapatılması, boyutlandırılması ve taşınması mümkündür.
buradan
Formun
(ii)
FixedSingle: Boyutları değiştirilemeyen ancak taşınabilir
bir form oluşturur. Ekran boyutu yalnızca ekranı kapla ve simge
durumuna küçült seçenekleri ile değişir.
(iii)
Fixed3D: Aynı FixedSingle da olduğu gibi boyutları
değiştirilemeyen bir form oluşturur. Tek farkı 3 boyutlu bir
görünüme sahip olmasıdır.
(iv)
FixedDialog: Boyutları değiştirilemeyen ve sistem menüsü
(ControlBox) olmayan bir form oluşturur. Genelde diyalog
pencereleri oluşturmak için kullanılır.
(v)
FixedToolWindow: Normal forma göre başlığı daha küçük
olan, kontrol menüsü olmayan ve boyutlandırmayan bir form
oluşturur. Ekranı kapla ve simge durumuna küçült düğmeleri
48
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
bulunmaz.
(vi)
SizableToolWindow: FixedToolWindow ile hemen hemen
aynı olup tek farkı boyutlandırılabilir olmasıdır.
(vii)
None: Çerçevesi, başlığı, kontrol kutusu, ekranı kapla ve
simge durumuna küçült düğmeleri olmayan bir form oluşturur.
HeplButton
Bu özelliği “True” yaparak formlarınıza düğmesini ekleyebilirsiniz.
Formun üzerinde bu düğmenin bulunabilmesi için:
(i)
ControlBox özelliği True olmalıdır.
(ii)
FormBorderStyle özelliği, FixedSingle, Fixed3D, Sizable
veya FixedDialog olmalıdır.
(iii)
MaximizeBox ve MinimizeBox özellikleri False olmalı.
(iv)
Formunuzun üstüne bir TextBox yerleştirin.
(v)
Textbox‟un HelpRequested olayına
Help.ShowPopup(TextBox1, _
"Buraya ne görüntülenmesini istiyorsanız yazın...", _
hlpevent.MousePos)
ifadesini yazın ve formunuzu çalıştırın.
Icon
Formunuzun ikonunu değiştirmek için gerekli olan bir özelliktir.
İkon dosyalarının uzantısı *.ico olduğu için buradaki dosyanızın
*.ico uzantılı olması gerekmektedir.
ImeMode
Nesneniz seçili olduğunda nesnenizin the Input Method Editor
(IME) durumunu verir.
IsMdiContainer
Tek başına çalışan formlara SDI form denir. Normalde yeni bir
projeye başlarken projede bulunan form ve daha sonra eklenen
formlar SDI formlardır. Bir formun IsMdiContainer özelliğini true
yaparsak o form MDI form haline dönüşecektir. MDI formlar içinde
kendisine bağlı formlar bulundurur Bu formlar (Child form) MDI
formuna bağlıdır. MDI forma bağlıdır. Formunuzu MDI-Child yapma
işlemini tasarım ile değil, kod ile yapabilirsiniz.
KeyPreview
Bu özelliği True yaparsanız herhangi bir tuşa basıldığında, o
kontrolün Key olayları ile birlikte Formun da Key olayları meydana
gelir.
Örnek: F10‟ basıldığında programdan çıkmak istiyorsunuz. Bu
durumda kodu hangi kontrolün Key olayına yazacaksınız?
Programınızda bir sürü kontrol olabilir. Programınızdaki tüm
kontrollerin KeyDown olayına F10 tuşunu algılayacak kodu
yazmaktansa Formun KeyPreview özelliği True yapılır. Daha sonra
49
Bilgisayara Giriş
2010 2011
formun kod kısmına
Protected
Overrides
Sub
OnKeyDown(ByVal
System.Windows.Forms.KeyEventArgs)
e
As
MyBase.OnKeyDown(e)
If Keys.F10 Then end
End Sub
Konutlarını yazıp programınızı çalıştırdıktan sonra F10 tuşuna
bastığında programınızın kısayol olarak sonlandığını göreceksiniz.
Language
Dil özelliklerini belirler.
Localizable
Dil seçenlerinizin kullanılabilir olması için bu özelliğin True olması
gerekmektedir.
Location
Kontrolünüzün x- ve y- koordinatlarını belirler. Fareyle de
belirleyebileceğiniz gibi hassas ayarlar için elle giriş yapabilirsiniz.
Locke
True olduğunda kontrolün kilitlenmesini sağlar.
MainMenuStript
Formunuza yerleştirdiğiniz MenuStript özelliği için geçerlidir.
MaximizeBox
True olduğunda ekranı kapla düğmesi kullanılabilirdir.
MinimizeBox
True olduğunda simge durumuna küçült düğmesi kullanılabilirdir.
Opacity:
Bu özelliğin değeri normalde 100% dır. Bu değeri azalttıkça
formunuzun saydamlaşmasını ve alttaki belgeyi göstermesini
sağlarsınız.
Padding
Kontrolün kenarlara olan uzaklığını verir.
RightToLeft
Kontrolün text yazısını sağdan sola doğru yazılması için Yes olarak
seçilmelidir
ShowIcon
İkonun görünebilir olması için bu özelliğin True olması gerekir.
Size
Kontrolün boyutlarını belirlemek için kullanılır. Fare ile de
belirleyebilirsiniz.
SizeGripStyle
StartPosition
Formunuzun sağ alt köşesinde
sembolünü görmek istiyorsanız
bu özelliği Show olarak ayarlayınız.
Form açılırken ekrandaki
kullanılan özellikleri:
koordinatların
belirlenmesi
için
(i)
CenterScreen: Form ekranın ortasında açılır.
(ii)
CenterParent: Form içinde bulunduğu formun ortasında
50
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
açılır. (MDI Child formlar gibi)
(iii)
Manual: Form tasarlanırken bulunduğu koordinatlarda
açılır.
(iv)
WindowsDefaultBounds: Formun koordinatları ve boyutları
Windows tarafından belirlenir.
(v)
WindowsDefaultLocation: Formun koordinatları Windows
tarafından belirlenir
Tag
Bu özelliğin Visual Basic için hiçbir anlamı yoktur. Kullanıcı bu
özelliği bir değişken gibi kullanarak istediği bilgiyi saklayabilir.
Text
Kontrolün başlığıdır.
TopMost
Formun devamlı üstte durmasını istiyorsanız bu özelliğin True
olması gerekir. Örneğin Word‟de kelime arama formunu düşünün.
TransparencyKey
Formunuzu görüntü olarak özelleştirmek istiyorsanız bu özelliği
kullanın.
Örnek:
Şeklinde Paint de bir dosya oluşturun ve kaydedin.
Formunuzun BackgroundImage‟ne bu resmi yerleştirin.
TransparencyKey özelliğindeki arka plan rengini resminizin arka
plan rengi olarak seçin. (Benim örneğimde mavi olacak!)
Formunuzu çalıştırdığınızda formunuzun saydam bir özellikte
olduğunu göreceksiniz.
UseWaitCursor
Fare göstergesinin, formun üstüne geldiğinde program çalışıyormuş
formatında görünmesini istiyorsanız bu özelliği True yapmalısınız.
WindowsState
Form
açıldığında
belirleyeceksiniz.
(i)
51
hangi
formatta
Normal: Normal olarak açılacaktır
olduğunu
buradan
Bilgisayara Giriş
2010 2011
(ii)
Minimized: Simge durumunda açılacaktır.
(iii)
Maximized: Tam ekran durumunda açılacaktır.
Form Olayları
Olay
Açıklama
Click
Form üzerine tıklandığı zaman gerçekleşir
Closing
Form kapanmadan hemen önce gerçekleşir
Closed
Form kapandıktan sonra gerçekleşir
Load
Form yüklenirken gerçekleşir
KeyDown
Form üzerindeyken bir tuşun basılması ile gerçekleşir
KeyUp
Basılan tuşun kaldırılması ile gerçekleşir
Örnek: Form açıldığında, fare yer değiştirdiğinde, form kapatıldığında, formun üstüne (çift)
tıklandığında mesaj veren program yazınız. (Program için dosyanın üzerine tıklayınız! )
Form Metotları
Metot
Açıklama
Hide
Visible özelliğini False yaparak formu gizler
Close
Formu kapatır. Eğer form başlangıç formuysa uygulama sonlanır
Show
Formu gösterir. Hide ile gizlenmişse, Visible özelliği True yapılır.
ShowDialog
Formu iletişim kutusu olarak gösterir.
52
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Button
Bir Windows düğmesini temsil eder. Button kontrolü tıklandığında Click olayı tetiklenir. Bu olay
gerçekleştiği zaman yapılacak işlemler, Button İsmi_Click yordamında yazılır.
Private Sub btnRenkDegistir_Click(ByVal sender
System.EventArgs) Handles btnRenkDegistir.Click
As
System.Object,
ByVal
e
As
btnRenkDegistir.ForeColor = Color.Gray
End Sub
Button Özellikleri
Özellik
Değer Tipi Açıklama
Anchor
Anchor kelime anlamı olarak demir atmak demektir. Bu özellik
ile formunuzun boyutları değişse de kontrolünüz belirlediğiniz
konumda sabit kalacaktır.
AutoEllipsis
Bu özelliği True yaparak okunmayan yazıları ipucu gibi
görüntüleyebilirsiniz. Bunun için AutoSize seçeneğinin False
olması gerekmektedir.
Dock
Bu özellik ile herhangi bir kontrolün, formun belirlemiş
olduğunuz bir kenarına alınmasını sağlarsınız.
ImageList
Butonun arka planında resmi kapsanmış bir şekilde değil de bir
ikon gibi görünmesini istiyorsanız bu özelliği kullanacaksınız.
Örnek:
Toolbox penceresinde Components sekmesinden formunuza bir
ImageList kontrolü yerleştirin. ImageList formda görünmeyen
53
Bilgisayara Giriş
2010 2011
kontrollerdendir.
ImageList‟in Properties
resimler belirleyin.
penceresinde
Images
seçeneğinden
Seçmiş olduğunuz butonun ImageList özelliğinde formunuza
koymuş olduğunuz ImageList‟inizi seçin. ImageIndex özelliğinden
istediğiniz resmi seçip, ImageAlign özelliği ile resminizin butonun
neresinde olmasını ayarlayın.
TabIndex
Klavyedeki Tab kontrolünü bu özellik ile belirleyebilirsiniz. Bu
özellikte vermiş olduğunuz numaralandırma sizin tab
kontrolünüzün sırasını belirler.
TabStop
True olduğunda nesneye Tab ile ulaşabilirsiniz.
TextAlign
Kontrolünüzün üstünde bulunan yazının hizalamasını buradan
belirleyebilirsiniz.
TextImageRelation
Butonunuzda yazı ile birlikte şekilde varsa bunların ilişkisini bu
özellik ile ayarlayabilirsiniz.
UseCompatibleTextRendering
Uyumlu olabilen yazıları bir araya toplar.
UseMnemonic
Bu özelliği True yaparak yazı da (kısayol tuşu olarak
kullanılabilen) & sembolünü kullanmanızı sağlayabilirsiniz.
Visible
Kontrolünüzün görünmesini istiyorsanız True olarak seçin aksi
durumda False olarak seçin.
Örnek1. Hokus – Pokus programımın adı ve bir butona tıkladığımda diğeri kaybolsun, bazı
textbox ve labelların arkafon rengi, yazı tipi değişsin.
Örnek 2. Sinir eden programımın adı: iki butonun üzerine gittiğimde görünmez oluyor (veya yer
değiştiriyor)!
Örnek 3. Rengarenk programımın adı..butonlara bastıkça arka font rengi değişiyor.
Örnek 4. Sayıları rakam ve yazı ile veren program.
Programlar için
„ye tıklayın.
54
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Değişken – Sabit Nedir? Değişkenlerin ve
Sabitlerin Tanımlanması
I. Değişken Nedir, Nasıl Tanımlanır?
Program yazarken, bazı verilerin daha sonra kullanılmak üzere bir yerde tutulması gerekebilir.
Örneğin, bir hesaplama yapılırken, önceden hesaplanmış verilerin kullanılması istenirse, bu verileri
tekrar hesaplamak yerine hafızada tutmak performansı artırır. Veya veritabanından alınan bir
kullanıcı isminin hafızada tutulması, bu değer her istendiğinde veritabanına bağlanıp alınmasına
tercih edilmelidir. Verilerin bu şekilde hafızada tutulması değişkenlerle sağlanır.
Değişkenler farklı türlerde verileri tuttukları için, farklı tiplere sahip olabilir. Bir negatif veya pozitif
sayıyı tutan değişken ile yazı tutan bir değişken farklı tiplere sahiptir.
Değişkenler Dim anahtar kelimesi ile tanımlanır.
Dim sayi
NOT Dim sözcüğü, “boyut” anlamına gelen Dimension kelimesinin kısaltmasıdır.
Bu şekilde tanımlanan değişkenler Object (nesne) tipindedir, yani her türden veriyi tutabilirler.
Nesne tipindeki değişkenler, tanımlanmalarının kolay olması ve istenen tipte değer tutabilmeleri
açısından avantajlı olsa da, performansı önemli ölçüde düşürürler. Tuttukları değerlerin tipleri
biliniyorsa, değişkenleri tanımlarken tiplerini belirlemek gerekir.
55
Bilgisayara Giriş
2010 2011
Sayısal Tipler: Byte, Short, Integer, Long, Single, Double, Decimal
String Tipler: String, Char
Mantısal Tipler: Boolen
Tarih Tipi: Date
Tanımlama Kuralları
Boşluk, nokta, soru işareti, noktalı virgül, çift tırnak, tek tırnak, aritmetik operatörler, karşılaştırma
operatörleri ve atama operatörleri ile parantezler kullanılamaz.
Dim Ad1  Doğru
Dim 1Ad  Yanlış
Dim Ad_Soyad  Doğru
Dim Ad ve Soyad  Yanlış
Dim Ad-Soyad  Yanlış
Dim Ad_Soyad  Doğru
Değişken ismi 255 karakterden fazla olmamalıdır.
Dim x,y,z as Integer, t,k as String
Değişkenlerin tanımlanma¬dan kullanılması için Option Explicit seçeneğinin kapalı olması gerekir.
Option Explicit seçeneğini projenin özelliklerindeki Build sekmesinden değiştirilebileceği gibi, kod
sayfalarının en üstünde de değiştirilebilir.
56
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Option Explicit seçeneğinin On olması, tanımlanmamış değişkenlerin kulla¬nılmasına izin vermez,
tasarım anında hata üreterek programcıya bildirir. Varsayılan durumda Ondeğeri seçilidir.
Sayısal Tipler
Byte: 1 Baytlık 0 ile 255 arasında değer alır.
Short: 2 Baytlık -32.768 ile 32.767 arasında değer alır.
Integer: 4 Baytlık -2.147.483.648 ile 2.147.483.647 arasında değer alır.
Long: 4 Baytlık -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında değer alır.
Single: 4 Baytlık
 3.402823  10 38 ile  1.401298  10 45 arasında değer alır.
Double: 8 Baytlık
 1.79769313486232  10 308 ile  4.94065645841247  10 324 arasında değer alır.
Decimal: 14 Baytlıktır ve 29 basamağı tüm dijitleri koruyarak tutabilir.
Sayısal hesaplamalarda hassasiyet için Decimal kullanmanızı öneririz.
Örnek: Sayı hassasiyeti ile ilgili örnekler ve sayıların gösterimleri ile ilgili bir uygulama…
X=1234567890123456789
Y=X+5
Z=X/(X-Y)
Single ve decimal olarak tanımlandığında farkları…
Sınır aşımlarına dikkat!
Val(String): Text kutularında sayı olup olmadığını anlamak için IsNumeric komutunu kullanmak
kodunuzu uzatabilir. Böyle bir durumda hatalı veri girişini engellemek için bu komutu kullanırız.
Val fonksiyonu ondalık ayıracı olarak nokta işaretini kabul eder. Eğer ondalık ayıracı kullanmak
istiyorsanız Val yerine Cdec fonksiyonunu tercih etmelisiniz.
57
Bilgisayara Giriş
2010 2011
Sayıların Yuvarlanması
\ Operatörü  Sonucu tamsayı gösterir. Virgülden sonrasını yuvarlama yapmaksızın atar.
Int(sayı) Kendinden düşük olan sayıya tam sayı olarak yuvarlar. Tam değer gibi düşünebilirsiniz.
Fix(sayı) Int(sayı) dan farkı sadece virgülü atar.
Math.Round Diğerlerinden farkı istediğiniz ondalığa kadar gösterme ve yuvarlama işlemini yapar.
Sayıları Biçimlendirme
Format: Format(sayı,”##,## TL”)
Örnek: Sayıların Yuvarlatılması ile ilgili uygulama
Global ve Local Değişkenler
- Dim ile tanımlanan değişken bir prosedür veya bir fonksiyonun içinde tanımlanmış ise Local,
dışında tanımlanmış ise Global olarak adlandırılır.
- Bir değişken Public Shared ile tanımlanıyorsa tüm formlarda ve tüm modüllerde kullanılabilir.
- Bir değişkeni programın her tarafında kullanacak şekilde tanımlamak için bir Modülün içinde Public
deyimi ile kullanmak gerekir.
Değişkenlere değer atamayı aşağıdaki şekillerde yapabilirsiniz:
Dim a=1, b=2
-----------Dim a,b
a=1
b=2
----------Dim a as integer=1, b as integer=2
Static Değişken Tanımı
Local olarak tanımlanan bir değişkenin , tanımladığı altprogram veya fonksiyonun çalışması bittikten
sonra değerinin korunması isteniyorsa Dim yerine Static deyimi kullanılır. Static değişkenlere değer
atama aşağıdaki şekilde yapılır.
Static a=1
-----------Static a „ Yanlis kullanim…
a=1
-----------
58
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Sabit Tanımlama
Const Sabit_Ismi=Degeri (Const pi=3.1415)
Örnek 1. Global değişken için örneğimiz: basit bir hesap makinesi yapınız. 2 textbox toplma,
çıkarma, bölme ve çarpma butonları ve 2 değişken global olarak tanımlansın.
Örnek 2. Statik değişken için örnek: Kaç kere tıkladığımızı veren program.
If
If karar yapısı, bir koşul sağlandığı zaman yapılacak işlemleri kapsar. Kontrol edilecek koşul ifades
inin sonucu True değerini alırsa, If - EndIf bloğu arasındaki kodlar çalıştırılır.
If Şart Then
Komutlar
ElseIf Şart
Komutlar
ElseIf Şart
Komutlar
…
Else
Komutlar
End If
59
Bilgisayara Giriş
2010 2011
If Şart then
Komutlar
End If
Tek şartımız varsa End If kullanmayabiliriz!
If Şart Then Komutlar Else Komutlar
If Şart Then Komutlar
1
x

Örnek 1: f ( x)  
3
4  x
göre
,x  0
,0  x  2
ile tanımlanan fonksiyonun dışarıdan girilen “x” değerine
,2  x  4
,x  4
f ( x) ‟i hesaplayan programın VBasic dilinde yazınız.
Örnek 2.
f ( x)  x 2  5x  3 fonksiyonu için sgn  f ( x)  fonksiyonunu hesaplayan programın
VBasic dilinde yazınız.
Örnek 3. Dışarıdan girilen bir sayının tek mi çift mi olduğunu veren programı VBasic dilinde
yazınız.
Örnek 4. Dışarıdan girilen 2 sayıdan büyük olanı veren programı yazınız.
Örnek 5. Dışarıdan girilen herhangi bir sayının negatifi pozitif veya 0 olduğunu veren programın
VBasic dilinde yazınız.
Örnek 6. Dışarıdan girilen herhangi bir negatif sayıyı pozitif sayıya çeviren programın VBasic
dilinde yazınız.
Örnek 7. Dışarıdan girilen herhangi bir pozitif sayıyı negatif sayıya çeviren programın VBasic
dilinde yazınız.
60
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Örnek 8. Katlı bir otoparkta arabalar girişte plaka numaraları, sahibinin adı ve giriş saati
kaydedilecektir. Garaj yöneticisi araba sahibi gelip plakasını veya ismini söylediğinde arabanın
kalma süresi ile orantılı olan ücretini bulup fişini kesebilecek programın VBasic dilinde yazınız.
0 - 2 saat
1,5 YTL
2 - 8 saat
3 YTL
8-24 saat
5 YTL
TextBox
TextBox Özellikleri
61
Özellik
Açıklama
MultiLine
Metin kutusuna birden fazla satırda değer girilebilmesini sağlar. False
durumunda ise, metin kutusunun yüksekliği değiştirilemez
ScrollBars
Metin kutusunda kaydırma çubuklarının görünmesini kontrol eder.
Varsayılan durumda kaydırma çubuğu görüntülenmez, ancak
Horizontal, Vertical kaydırma çubukları ya da ikisi birden
gösterilebilir.
PasswordChar
Metin kutusuna parola girilecekse, girilen karakterlerin hangi karakter
olarak görüneceğini belirler.
WordWrap
Metin kutusuna girilen değerlerin, satır sonlandığında bir alt satıra
geçmesini belirtir. Eğer MultiLine özelliği False ise, alt satırlar tanımlı
Bilgisayara Giriş
2010 2011
olmayacağı için bu özelliğin bir etkisi görülmez.
MaxLength
Metin kutusunun alabileceği maksimum karakter sayısını belirtir.
TextBox Olayları
TextChanged Metin kutusundaki yazı değiştiği zaman gerçekleşir.
TextBox Metotları
Metot
Açıklama
Cut
Seçilen karakterleri siler, ancak hafızada tutar.
Copy
Seçilen karakterleri kopyalar.
Paste
Hafızaya alınan karakterleri metin kutusuna yapıştırır.
Clear
Metin kutundaki yazıları temizler.
SelectAll
Metin kutusundaki tüm yazıyı seçer.
SelectedText
Seçilmiş kısmı silmek veya değiştirmek için kullanılır.
Select
Select(Baslangic,Uzunluk), Text kutusu içindeki bölgeyi seçmek için
kullanılır.
Undo
Kullanıcı Ctrl+Z tuşlarına basarak en son yaptığı işlemi geri alabilir.
CanUndo
Bu özelliği kullanarak geri alınacak bir işlemin olup olmadığını
anlayabilirsiniz.
Örnek: Kes, kopyala, yapıştır, temizle ve geri al butonları ile bir textbox uygulaması yapınız.
Örnek: Kredi kartları uygulmasındaki 5 boşluklu ve her bir boşlukta 4 basamkalı sayı girşi
bulunucak. Sayıları girdikten sonra diğerine geçiş yapan program.
Örnek: Textbox‟a yazarken girmiş olduğumuz metni büyük harfe çeviren programı yazınız.
Bunun için kullanılacak kod:
ToUpper: Büyük harfe çeirir.
Label1.Text.ToUpper
Örnek: Bir giriş form hazırlayınız. Formda Ad, soyad ve şifre olucak. Şifreyi 3 kez yanlış
girdiğinde şifreniz iptal olmuştur yazıp programı sonlandıracak.
62
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Label
Label kontrolü form üzerinde kullanıcıya bilgi vermek amacıyla kullanılan etikettir.
Label Özellikleri
Özellik
Açıklama
TextAlign
Yazının etiket üzerindeki pozisyonu belirler.
BorderStyle
Kontrolün kenar stilidir.
FixedSingle değeri, kontrolün kenar çizgilerini
Fixed3Ddeğeri, kenarların üç boyutlu olmasını sağlar.
gösterir.
ImageAlign
Etiket üzerindeki resmin nerede duracağını belirler.
RightToLeft
Etiket üzerindeki yazının yönünü belirler. Eğer Yes değerini alırsa,
yazılar sağdan sola gösterilir
Label1.BorderStyle = BorderStyle.Fixed3D
Visual Studio klasörü altındaki simgeler kullanılabilir
Label1.Image
=
Image.FromFile("C:\Program
Files\Microsoft
2003\Common7\Graphics\icons\Flags\FLGTURK.ICO")
Visual
Studio
.NET
Label1.ImageAlign = ContentAlignment.MiddleRight Label1.RightToLeft = RightToLeft.Yes
Label1.Text = "Türkçe"
63
Bilgisayara Giriş
2010 2011
NOT Resmin bulunduğu yer kontrolün sağ tarafında bulunacak şekilde ayarlanmasına rağmen, sol
tarafta gözükür. Bu durum, RightToLeft özelliğinin Yes olarak atanmasından kaynaklanır.
CheckBox
CheckBox Özellikleri
Özellik
Açıklama
Appearence
Görüntüsünü bu özellik ile değiştirebilirsiniz.
AutoCheck
Normalde True değerindedir ve kullanıcı Check kutusunu
tıklayarak işaretleyebilir. False yapılırsa bu özelliğini kaldırmış
olursunuz ve sadece kod ile erişebilirsiniz.
CheckAlign
Check kutusunun hangi tarafta olduğunu belirlemeniz için bu
özelliği kullanacaksınız.
Checked
Check kutusunun işaretli olmasını istiyorsanız True olarak
belirlemelisiniz. Normalde False olarak atanır.
CheckState
Check kutusunun işraret durumunu belirler. Checke özelliğini
True olarak belirlerseniz, CheckState özelliğiniz Checked olarak
belirlenecektir.
TextAlign
Kontrolünüzün üstünde olan yazının hizalamasını bu özellik ile
verebilirsiniz.
Örnek: Yazıyı kalın, italik ve altı çizili, hizalama ve geri al prosedürleri olacak şekilde program
yazınız.
64
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
RadioButton
RadioButton kontrolleri, kullanıcıya sunulan seçeneklerden sadece bir tanesinin seçilmesine izin
verir. Form üzerinde birden fazla RadioButton konulduğunda, bu kontrollerin sadece bir tanesi seçili
olabilir. Fakat bazı durumlarda, farklı seçenek grupları kullanılarak kullanıcının birden fazla seçim
yapması istenebilir. Bu durumda, bazı seçenekler GroupBox kontrolü ile gruplanmalıdır.
Bu kontrolün özellikleri ve olayları CheckBox kontrolü ile aynıdır. Sadece bir seçenek
işaretlenebildiği için, kontrollerin yapılması CheckBox kontrolüne göre daha kolaydır.
Örnek: Memur maaş bordrolarında kullanılan Aile yardım hesabı yapan program yapınız. Aile
yardımı için şu kriterler dikkate alınır:
1. Bekarlar için aile yardımı ödenmez,
2. Evli olup da eşi çalışanlar için maaşının %2 si kadar yardım ödenir
3. Çocuğu olanlar için çocuk başına %2 kadar yardım ödenir.
4. Evli olup da eşi çalışmayanlar için %4 kadar yardım ödenir.
Örnek: Yapılan satışa %18 KDV nin dahil edilip edilmeyeceği şekilde bir satış programı yapınız.
Örnek: Ortalama özellikleri ve yazı tiplerini değiştirecek şekilde (kalın, eğik, altı çizili) küçük
bir Word programı yapınız.
65
Bilgisayara Giriş
2010 2011
Dizi Tanımlama
Dim isimler(3) As String
Diziler tanımlanırken, ismi verildikten sonra parantez içinde kaç eleman içereceğini belirtmek
gerekir. Dizilerin indisleri sıfırdan başlar. Örnekteki isimler dizisinin String tipinde 4 tane elemanı
vardır.
Dizilerin elemanlarına ulaşmak için, istenen elemanın indisinin verilmesi gerekir.
isimler(0) = "Ali" isimler(1) = "Ahmet" isimler(2) = "Mehmet" isimler(3) = "Ayşe"
MsgBox(isimler(3))
Dizilere tek tek değer atanabildiği gibi, tanımlarken de başlangıç değerleri atanabilir.
Dim isimler() As String = {"Ali","Ahmet","Mehmet","Ayşe"}
Diziler tek boyutlu olduğu gibi, birkaç boyutlu diziler de tanımlanabilir.
Dim x(10,25)
Dinamik Dizi Tanımlama
Programda tanımlanacak dizinin boyutu her zaman belli olmayabilir. Örneğin bir üye takip programı
yapacaksınız. Üyeler ile ilgili bilgilerin hafızada tutulması gerekebilir. Bu program örneğin Türkiye
genelinde kullanılacaksa yüz binlerle ifade edilir ama küçük bir sitede uygulayacaksanız yüzlerle
ifade edebilirsiniz. Boyutu 500 gibi bir değerde tutarsak, program 500 den fazla üyenin bulunduğu
bir sitede çalışmayacaktır. 500000 gibi bir rakam yazarsak sorun çözülecektir. Ancak bu kadar boyut
ayırdığımızda bu kadar boyutun tamamını kullanamayabiliriz. Bu durumda hem programa yer
kaplatmış oluruz hem de programı yavaşlatmış oluruz. İşte böyle durumlarda diziyi static deyimi
yerine ReDim deyimi ile tanımlayabiliriz.
ReDim [Preserve] degisken_ismi (dizi_boyutu)
Burada Preserve kullanılmazsa dizi içindeki elemanlar kaybolur.
66
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Dim degisken_ismi () As tipi
Parantez içerisinde dizi boyutları verilmemiştir. Daha sonra dizinin boyutu ReDim ile yeniden
tanımlanır.
(3,0) boyutlu olan bir dizi, ' değerlerini koruyarak (3,1) boyutlu yapılır
Dim dizi(,) As Double = {{1.0},{2.0},{3.0},{4.0}}
ReDim Preserve dizi(3, 1)
Diziler Üzerinde Yapılan İşlemler
Array.Sort(Dizi) Diziyi sıralar
Array.BinarySearch (Dizi, Aranan)  Sıralı dizide arama yapar
Array.IndexOf (Dizi, Aranan)  Sıralı olmayan dizide de arama yapar
Array.Reverse(Dizi) Diziyi ters çevirir…
For Next
For Sayac=Baslangic_Degeri To Bitis_Degeri Step Artim
Komutlar
Next
DİKKAT Döngüler içinde dizi kullanılırken, sayaç sıfırdan başlamışsa döngünün biteceği nokta “dizi
uzunluğu -1” olmalıdır.
DİKKAT Değişken tanımlamaları For döngüsünün içinde de yapılabilir. Bu durumda, değişkenin
kapsam alanı bu döngüyle sınırlı kalır.
67
Bilgisayara Giriş
2010 2011
For Döngülerinin İç İçe Kullanımı:
For ….
….
For
…
Next
Next
Örnek: En sevdiğimiz arkadaşlarımızı alt alta textbox a listeleyen bir program yazınız.
For_Next_Application.exe
InputBox
InputBox, kullanıcının veri girmesi için açılan bir mesaj kutusudur. Formlarda TextBox kontrolüne
ihtiyaç duymadan veri almayı sağlar (Resim 4.15).
InputBox("Bir sayı giriniz: ", "Sayı Girişi", 1, 350, 350)
Prompt InputBox metodunun ilk parametresi, mesaj kutusunun gövdesinde gözükecek yazıdır .
Diğer tüm parametreler isteğe bağlıdır.
Title(Başlık). Mesaj kutusunun başlığıdır
DefaultResponse (Varsayılan cevap). Kullanıcı veri girmediğinde varsayılan değerdir.
XPos(X pozisyonu). Mesaj kutusunun sol kenarının, ekranın sol kenarına olan uzaklığıdır.
YPos(Y pozisyonu). Mesaj kutusunun üst kenarının, ekranın üst kenarına olan uzaklığıdır.
68
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
ListBox1.Items.Add(InputBox("İsim soyad giriniz:", "Bilgi Girişi", "Bilinmiyor"))
End Sub
Örnek: Dışarıdan girilen N boyutlu A dizisini aritmetik ortalamasını bulduran bir program
yazınız.
Örnek: Fibobocci Serisi sayıları aşağıdaki gibidir.
1
1
2
3
5
8
13
21
24
…
Buna göre dışarıdan verilen N sayısı için ilk N terimi gösteren program yazınız.
MessageBox
MessageBox, kullanıcıya bilgi göstermek için açılan mesaj kutusudur. Bu mesaj kutusu dört öğeden
oluşur (Resim 4.16).
Text(Yazı). Mesaj kutusunda verilmek istenen bilgiyi tutan yazıdır.
Caption(Başlık). Mesaj kutusunun başlığıdır.
Buttons (Düğmeler). Mesaj kutusunda hangi düğmelerin gösterileceğini belirler.
Icon (Simge). Mesaj kutusunda gösterilecek olan simgeyi ve açıldığı zaman çıkartılacak sesi
belirler.
69
Bilgisayara Giriş
MessageBox.Show("Devam
MessageBoxIcon.Warning)
etmek
istiyor
musunuz?",
"Uyarı",
2010 2011
MessageBoxButtons.YesNo,
Mesaj kutusu, kapanırken hangi düğmenin tıklandığını DialogResult nesnesi ile programcıya bildirir.
NOT MsgBoxhazır fonksiyonu MessageBox.Show metodu ile aynı işleve sahiptir.
Char ve String Tipi
Char: Sadece 1 karakter barındırır.
String: Karakter sınırı verilmezse 2 milyar karaktere kadar atama yapılabilir.
Length: String‟in uzunluğunu verir.
Dim str As String = "Ali Gel"
MsgBox(str.Length)
Chars: Chars(k) Stringin k. Harfini verir.
Büyük-Küçük Harfe Çevirme
ToLower: Küçük harfe çevirir.
Label1.Text.ToLower
ToUpper: Büyük harfe çeirir.
Label1.Text.ToUpper
String Karşılaştırma
String.Compare(String1,String2) karşılaştırma harfin öncelik sırasına göre yapılır. Eşitse 0
değerini alır, string in baş harfi diğerinden önce geliyorsa büyüktür ve pozitif bir sayı alır aksi
durumda negatif değer alır.
String.Compare(TextBox1.Text, TextBox2.Text)
String.Compare(String1,String2,Ayırım yapılmasın mı?) İki String arasında karşılaştırma
yaparken harfin büyük ve küçük ayrımı yapılmasını istemiyorsanız Ayırım yapılmasın mı?yerine True
yazınız…
String.Compare(TextBox1.Text, TextBox2.Text, True)
70
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Örnek: Basit bir ilkokul uygulaması. Rakamlar ve bir textboda yazılan yazılara göre rakamların
farklı renkte olmasını veren program.
Boşluk-Karakter Atma
TrimStart: Stringin başındaki boşlukları atar.
TextBox2.Text = TextBox1.Text.TrimStart
TrimEnd: Stringin sonundan boşlukları atar.
TextBox2.Text = TextBox1.Text. TrimEnd
Trim: Stringin her iki tarafından boşlukları atar.
TextBox2.Text = TextBox1.Text.Trim
String Parçalama
SubString(Başlangıç, Uzunluk)
MsgBox(“Erzurum”.SubString(2,4))zuru
Split
Dim S() As String
S=”Arzu ayşe Zeynep selin gamze Erdem”.Split(“”) S(0)=Arzu, S(1)=ayşe
UBound
 Stringin kaç parçaya ayrıldığını öğrenebilirsiniz.
UBound(S)  1 (Yukarıdaki örnek için)
String Arama
IndexOf, LastIndexOf
IndexOf(Aranan_String, Kaçıncı_Harften(, Kaç_Harf)) Aramayı baştan yapar
Dim str As String
str = "Arzu Erdem"
MsgBox(str.IndexOf("r", 2))
MsgBox(str.IndexOf("r", 0))
71
Bilgisayara Giriş
MsgBox(str.IndexOf("r", 2, 4))
2010 2011
-1 dir.
LastIndexOf(Aranan_String, Kaçıncı_Harften, Kaç_Harf) Aramayı sondan yapar
String Birleştirme
Concat “Concat(String1, String2, …, StringN)”
Concat(String1, String2, …, StringN) = String1 & String2 & … & StringN = String1 + String2 + … +
StringN
String.Concat(TextBox1.Text, TextBox2.Text)
TextBox1.Text&TextBox2.Text
TextBox1.Text+TextBox2.Text
Join “Join(Birleştirici_String,String Dizisi)”
Bir grub stringin arasına bir karakter koyarak birleştirmek için kullanılır.
Dim str() As String = {"A", "B", "C", "D", "E", "F", "G", "H", "I"}
MsgBox(String.Join(", ", str))
Insert “Insert (Kacinci_Harften, String)”
Bir stringin içine başka bir stringi eklemek için kullanılır.
Dim str As String = "Ali Gel"
MsgBox(str.Insert(4, "Okula "))
String Değiştirme ve Silme
Replace “Replace(Aranan_Metin, Yerine_Yazilacak_Metin)”
Bir stringin içinde geçen metni başka bir metin ile değiştirmek için bu metod kullanılır.
Dim str As String = "Ali Gel"
MsgBox(str.Replace("Gel", "Gelme"))
Remove “Remove(Kacinic_Harften, Kac_tane)”
Bir stringin içinde geçen metni silmek için bu metod kullanılır.
Dim str As String = "Ali Okula Gel"
MsgBox(str.Remove(4, 6))
String Formatlama
PadLeft, PadRight
PadRight(adet,karakter) Sağa karakter ekleme,
72
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
PadLeft(adet,karakter) Sola karakter ekleme
Dim str As String = "Ali Okula Gel"
MsgBox(str.PadRight(20, "."))
Format
String.Format(“Formatlanicak_bicim”)
Dim ad, yer As String, tarih As Date
ad = "Arzu"
yer = "İzmit"
tarih = Today
MsgBox(String.Format("{0}, {1} tarihinde, {2}'te Vbasic dersi veriyor... ", ad, tarih, yer))
RSet, LSet
RSet(String, Uzunluk) Sağa hizalama,
LSet(String, Uzunluk) Sola hizalama
Dim str As String = "Ali Okula Gel"
TextBox1.Text = LSet(str, 20)
Örnek: İş başvuru formu oluşturalım.
Adı, Soyadı, Cinsiyeti, Yaşı, Cinsiyeti, Mezuniyet, Eğer erkek ise Askerlik Yapıp Yapmadığı ve
cevabı Evet ise bilgilerini yazdıran bir program.
Örnek: Ad ve Soyadımızı aynı textbox ın içine girdiğinde adımızı ve soyadımızı ayrı ayrı ve
bunların harflerini de ayrı bir textbox ın içinde yazdıran program.
Hazır Fonksiyonlar
73
String.exe
Bilgisayara Giriş
2010 2011
Yazı işlemleri
Trim – LTrim – RTrim “Trim(Metin) –LTrim(Metin) –
RTrim (Metin)”
Trim:Yazının başındaki ve sonundaki boşlukları atmak:
Label1.Text = Trim(" BilgeAdam ") ' Sonuç: BilgeAdam
LTrim- RTrim: Verilen metnin sırasıyla sol ve sağ boşluklarını atar.
LCase “LCase(Metin)”
Tüm yazıyı küçük harfe çevirmek:
Label1.Text = LCase("BILGEAdam") ' Sonuç: bilgeadam
UCase “UCase(Metin)”
Tüm yazıyı büyük harfe çevirmek:
Label1.Text = UCase("bilgeADAM") ' Sonuç: BİLGEADAM
StrReverse “StrReverse(Metin)”
Verilen stringi ters çevirir.
StrReverse(“Arzu”) „Sonuç: uzrA
Len “Len(Metin)”
Metnin içindeki karakter sayısını verir.
Len(“Arzu Erdem”) „Sonuç: 6
Mid “Mid(Metin,Başlangıç[,Uzunluk])”
Yazının belirli bir bölümünü almak. İkinci parametrede verilen pozisyondan başlayarak, üçüncü
parametredeki değer kadar karakter alınır:
Label1.Text = Mid("BilgeAdam", 6, 4) ' Sonuç: Adam
Replace “Replace(Neyin_İçinde,Neyi,Ne_İle,
[Kaçıncı_Harften],[Kaç_Tane],[Nasıl])”
Stringin içindeki bir ifadeyi değiştirmek istediğimizde kullanırız.
Replace(“Arzu Erdem”,”Arzu”,”Melike”) „ Sonuç: Melike Erdem
74
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Space “Space(Sayı)”
Verilen sayıda boşluk oluşturur.
Msgbox(“Hoşçakal” & Space(25) & & “Bye” & Space(25) & “Tschüs”)
Örnek: Bir metinin içinde başka bir metni arayan kaç tane bulduğunu veren ve istenirse
değiştiren program.
Örnek: Şimdi bir ilkokul 1 uygulaması yapalım ve verilen bir metini kelimelerine ayıran programı
yapalım.
Örnek: Verilen bir metinde hangi harflerin büyük ve hangi harflerin küçük olduğunu bulduran
programı yazınız.
String.exe
Karakter işlemleri
Char.IsLetter
Karakterin alfabetik olup olmadığını öğrenmek için kullanılır.
GetChar
Yazının parametrede belirtilen sıradaki karakteri almak:
Label1.Text = GetChar("BilgeAdam",9) ' Sonuç: m
Char.IsDigit
Karakterin 0-9 arasında bir rakam olup olmadığını öğrenmek için kullanılır.
Char.IsNumber
Karakterin sadece bir rakam değil ½, 1/5 gibi bir sayı olup olmadığını öğrenmek için kullanılır.
Char.IsLower
Karakterin küçük harf olup olmadığını kontrol eder.
Char.IsUpper
Karakterin büyük harf olup olmadığını kontrol eder.
Char.IsSymbol
Karakterin bir sembol olup olmadığını kontrol eder.
75
Bilgisayara Giriş
2010 2011
ErrorProvider
ErrorProvider Özellikleri
Özellik
Değer Tipi
Açıklama
BlinkRate
Integer
Hata simgesinin kaç milisaniyede bir yanıp söneceğini belirler.
BlinkStyle
ErrorBlinkSytle
Hata simgesinin yanıp sönme stilini belirler.
i.
ii.
iii.
Icon
Icon
AlwaysBlink, her zaman,
BlinkIfDifferentError farklı bir hata meydana geldiğinde
yanıp söneceğini belirler.
NeverBlinkise simgenin yanıp sönmeden görüntüleneceğini
belirler.
Hata mesajlarının gösterilmesi sırasında çıkan simgeyi belirler.
ErrorProvider Metotları
SetError Kontrollerin hata mesajlarının belirlenmesi için kullanılır.
ErrorProvider kontrolü forma eklendiği zaman, Properties panelinde, kontrollerin ekstra özellikleri
görünür. Bu özellikler, forma eklenen her ErrorProvider için oluşturulur.
Özellik
Açıklama
IconAlignment On
Hata simgesinin, kontrolün üzerinde nerde bu lunacağını belirler.
IconPadding On
Hata simgesinin, kontrolden kaç piksel uzakta duracağını belirler.
76
Visual Basic.NET ile
Tabanlı Programlama
Windows
Error On
2010 2011
Varsayılan hata mesajını belirler
Örnek: Adınız, soyadınız, öğrenci numaranız ve mail adresinizi gireceğiniz şekilde bir form
oluşturulacak programı yazınız.
String.exe
Sayı işlemleri
Rnd
Rasgele sayı üretmek
' Maximimum 400 değerini alan bir sayı üretir
Rnd() * 400
üretmek için, Rnd fonksiyonundan önce Randomize fonksiyonunun çağırılması gerekir:
Randomize() Rnd() * 400
0 ile 1 arasında rasgele sayı üretir.
Rnd
20 ile 50 arasında sayı üretir.
Rnd*30+20
IsNumeric
Parametrede verilen bir değerin sayı olup olmadığını kontrol etmek. Geriye dönen değer True ya da
False mantıksal değeridir:
IsNumeric(TextBox1.Text)
Örnek: sayı tahmini bulma ve kaçıncı tahminde bulduğunuzu veren program.
77
Bilgisayara Giriş
2010 2011
Örnek: Şanslı çifti bulacak bir oyun yapınız. Oyunda 3 hane var ve 2 hanedeki sayı eşit
olduğunda puan kazanıyorsunuz aksi durumda puan kaybediyorsunuz. Puanınız sıfırladığında ise
para yüklenmesi konusunda size uyarı veriyor!
Timer
Timer Özellikleri
Özellik
Açıklama
Interval
Bu nesnenin çalışacağı zaman periyodudur.
Enabled
Normalde program çalıştığında False değerindedir. Timer ın
çalışması için True yapılmalıdır.
Timer Olayları
Özellik
Açıklama
Tick
Timer kontrolünün Interval özelliği ile belirtilen süre içerisinde
periyodik olarak bu olay meydana gelir. Interval özelliği düşük
olan Timer lar için bu olay içerisinde yazılacak kodun hızlı olması
gerekir.
Örnek: Bilinmeyen bir sayıyı tahmin etme ve kaçıncı tercihinde ne kadar sürede bulduğu ile ilgili
bir oyun yazınız!
Timer_Application.exe
78
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
ListBox
Kullanıcıya sunulan seçeneklerin bir liste halinde görünmesini sağlar. Liste kutusundan istenen
sayıda öğe seçilebilir.
ListBox Özellikleri
Özellik
Açıklama
Items
Liste kutusuna eklenen öğelerin tutulduğu koleksiyon nesnesidir.
SelectedItem
Liste kutusundan seçilen öğeyi alır.
SelectedItems
Liste kutusundan seçilen öğeleri alır. Seçilen öğeler dinamik bir
dizide tutulur.
SelectedIndex
Liste kutusundan seçilen öğenin indisini alır.
SelectedIndices
Liste kutusundan seçilen öğelerin indislerini bir
nesnesinde tutar.
DataSource
Listenin öğelerinin tutulduğu veri kaynağıdır. Veri kaynağı boş
geçilirse Itemskoleksiyonuna eklenen öğeler görüntülenir.
DisplayMember
Veri kaynağından
özelliğidir.
ValueMember
Veri kaynağından gelen öğelerin, dönüş değerini
özelliğidir.
SelectedValue
Seçilen öğenin, liste kutusunun ValueMember ile belirtilen
özelliğidir.
SelectionMode
Liste kutusundan kaç tane öğe seçilebileceğini belirtir. Nonedeğeri
0,
Onedeğeri 1,
79
gelen
öğelerin,
kullanıcıya
koleksiyon
gösterilecek
belirleyen
Bilgisayara Giriş
2010 2011
MultiSimple ve MultiExtended değerleri birden fazla öğenin
seçilebileceğini belirtir.
MultiColumn
Liste kutusundaki öğelerin biden fazla kolonda görüntülenmesini
belirler.
ListBox Olayları
Olay
Açıklama
SelectedIndexChanged
Liste kutusunda bir öğe seçildiği zaman gerçekleşir.
ListBox Metotları
Metot
Items.Add(ByVal
Object)
Açıklama
Eleman
As
Listeye eleman eklemek için bu metot kullanılır. Verilen
elemanları listenin sonuna ekler.
Items.AddRange
Bir grup elemanı tek seferde listeye eklemek için bu metot
kullanılır.
Items.Insert(No,Eleman)
Elemanı verilen yere eklemek için kullanılır.
Items.RemoveAt(No)
Numarası verilen elemanı listeden siler.
Items.Remove(Eleman)
Verilen elemanı listeden siler.
Items.Clear
Listedeki bütün elemanları siler.
Items.Count
Listedeki eleman sayısını verir.
Items(No)
Listede numarası verilen elemanın içeriğini öğrenmek veya
değiştirmek için bu metot kullanılır.
Items.IndexOf(Eleman)
Listede bir elemanı aramak için bu metot kullanılır.
Items.CopyTo(Dizi,No)
Listedeki elemanları bir diziye aktarmak için bu metot kullanılır.
SelectedIndex
Listedeki seçili elmanın sıra numarasını öğrenmek için bu özellik
kullanılır.
ClearSelected
Listedeki seçili elemanı kaldırmak için bu metot kullanılır.
FindStringExact(aranan)
Bu metot, verdiğiniz elemanı arar ve bulunduğu konumu verir.
FindString
Parametredeki String ifadesini liste kutusunda arayarak, bulduğu
ilk öğenin indisini döndürür. FindStringExact‟tan farkı elemanın
tümünde değil bir bölümünde arama yapar. Örneğin “Ali”
kelimesini aramak istiyorsanız “Ali”, “Aliş”, “Alihan” gibi
elemanları da bulur.
80
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
GetItemText
Parametre olarak verilen nesnenin liste kutusunda gösterilen
yazısını döndürür.
GetSelected
Parametre olarak verilen indisteki öğenin seçili olup olmadığını
döndürür.
FindString
Parametredeki String ifadesini liste kutusunda arayarak, bulduğu
ilk öğenin indisini döndürür
Çok Seçimli Listeler
SelectedItems
Seçili elemanların sayısı, içeriği vb. gibi bilgileri verir.
SelectedItems.Count
Seçili eleman sayısını verir.
SelectedItems.Item(No)
Seçili elemanın içeriğini verir.
Örnek: 2 listbox dan birinde: 1 den dışarıdan girilen bir sayıya kadar sayıları yazdıran, diğer
listbox da ise toplam, faktöriyel, sayıların karesinin toplamı, sayıların karesinin çarpımı
sonuçlarını üstüne tıkladığımızda listbox2 ye ekleyen programı yazınız.
listbox_appl.exe
ComboBox
Liste kutusu ile aynı özelliklere sahiptir, ancak listelenen öğeler açılan bir kutuda görüntülenir ve
listeden en fazla bir tane öğe seçilebilir. Liste kutusuna göre bir başka farklılığı ise, isteğe bağlı
olarak, kullanıcının açılan kutu üzerinde değer girebilmesidir. Dolayısıyla bir TextBox kontrolü gibi
de davranabilir.
81
Bilgisayara Giriş
2010 2011
ComboBox Özellikleri
Özellik
Açıklama
AutoCompleteCustomSource
Otomatik tamamlama ilgili kaynak belirlemek istiyorsanız buradaki
listeye elemanları giriniz.
AutoCompleteMode
Otomatik tamamlama şekillerini bu özellik ile belirleyebilirsiniz.
AutoCompleteSource
Otomatik tamamlama ilgili var olan kaynakları seçebilirsiniz.
AutoCompleteCustomSource ile farkı: AutoCompleteCustomSource
da kendi listenizi oluşturma ayrıcalığı mevcuttur.
DropDownStyle
ComboBox ın tipini belirler.
i.
ii.
iii.
DropDown: Aşağı doğru açılan v eiçeriği kullanıcı
tarafından değiştirilebilen ComboBox dır.
DropDownList: Aşağı doğru açılabilen fakat kullanıcı
tarafından değiştirilemeyen ComboBox lardır.
Simple: Aşağı doğru açılmayan fakat kullanıcı
tarafından değiştirilebilen ComboBox dır.
DropDownWith
ComboBox ile açılan kısmın genişliğini ayarlayabilirsiniz.
MaxDropDownItems
Listenizin maksimum uzunluğunu belirler.
SelectedIndex
Listede seçili olan elemanların numarası bu özellik ile belirlenir.
ComboBox Olayları
Olay
Açıklama
SelectedIndexChanged
Liste kutusunda bir öğe seçildiği zaman gerçekleşir.
TextChanged
DorpDownStyle özelliği DropDown olan listeler için kullanıcın
listedeki yazıyı değiştirirken gerçekleşen bir olaydır.
Örnek: Combobox da takımların renkleri ve listbox da takımların isimleri yazılı olmak üzere,
combobox dan seçmiş olduğumuz bir takım rengi ile takımın üzerine seçili olarak gelicek
programı yazınız.
listbox_appl.exe
82
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
While- End While ve Do while-Loop
Bir döngünün kaç defa çalışacağı biliniyorsa For-Next döngüsü tercih edilir ancak bilinmiyorsa While
döngüleri kullanılır. Bu iki döngünün de çalışma mantığı aynıdır.
While Şart
Komutlar
End While
Do While Şart
Komutlar
Loop
Döngü Kontrol İfadeleri
Exit Do
Loop ve While döngülerinden birinde bazı şartların gerçekleşmesi durumunda döngüden çıkmak için
kullanılır.
Exit For
For-Next döngüsü tamamlanmadan, bazı şartlar gerçekleştiğinde döngüden çıkmak için kullanılır.
Exit Sub-Exit Function
Prosedür sonuna ulaşmadan prosedürden çıkmak için kullanılır.
83
Bilgisayara Giriş
2010 2011
End
Programı sona erdir.
With-End With
Bir kontrole ait bir özellik değiştirmek istendiğinde veya bir metod çağrıldığında kısayol olarak
ulaşmak için kullanılır.
With kontrol_adı
.Özellik=Değer
.Özellik=Değer
…
End With
Örnek: Verilen bir sayıyı basamaklarına ayıran ve dışarıdan verilen bir rakamın sayının
basamaklarında kullanılıp kullanılmadığını veren programı yazınız.
Digit_Application.exe
84
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
MainMenu
Type Here yazılan yere menu eklemek için kullanırız. Bunun yerine DropDownItems yerine menuleri
ekleyebilirisiniz.
MainMenu Özellikleri
Olay
Açıklama
DropDownItems
Menu eklenir
ShortCut
Kısayol eklemek için kullanılır.
ShowShortCut
ShortCut özelliğinin gösterilip gösterilemeyeceğini belirler.
Checked
True özelliği ile CheckBox özelliği kazanılır.
RichTextBox
Standart TextBox kutusunda formatlı bir giriş için uygun olmadığından bu nesne kullanılır.
RichTextBox Metotları
85
Özellik
Açıklama
SelectionFont
Seçili bölgenin fontunu ayarlamak için kullanılır.
SelectionColor
Seçili bölgenin yazı rengini ayarlamak için kullanılır.
Bilgisayara Giriş
2010 2011
SelectionAlignment
Seçili paragrafın hizalamak için kullanılır.
Cut, Copy, Paste
Kesme, kopyalama ve yapıştırma işlemleri için kullanılır.
CanPaste
Pano içine yapıştırılabilir bir bilgi olup olmadığını öğrenmek için
kullanılır.
Undo
Son yapılan işlemi geri almak için kullanılır.
Redo
Son geri alınan işlemi tekrar yapmak için kullanılır.
CanUndo, CanRedo
Geri alınacak veya yinelecek bir işlem olup olmadığını öğrenmek
için kullanılır.
SaveFile(Dosya_Adı)
Dosya adı verilerek RTF formatında kayıt yapar.
LoadFile(Dosya_Adı)
RTF formatında dosyayı açmak için kullanılır.
Örnek: Yazıyı kalın, italik ve altı çizili, hizalama, kes, kopyala, yapıştır ve ileri-geri al
prosedürleri olacak şekilde program yazınız.
MainMenu_Application.exe (Komut satırı)
OpenFileDialog
OpenFileDialog Özellikleri
Özellik
Açıklama
FileName
Kullanıcının seçtiği dosyanın adını bu özellikle öğrenebilirsiniz.
Filter
Dosya türünü belirlemek için kullanılır. “Resimler|*.gif”
MultiSelect
Birden fazla dosyayı seçmek için kullanılır.
ReadOnlyCheck
“Salt okunur aç”
öğrenebilirsiniz.
Title
Diyalog penceresi açılırken
InitialDirectory
Diyalog penceresi açıldığında hangi klasörü göstereceğini belirler.
DefaultExt
Kullanıcı dosya isminde dosya uzantısını yazmaz ise bu özellik ile
belirtilen dosya uzantısı dosya adına eklenir.
CehckFileExists
True değeri atanırsa, dosya aç penceresinde yazılan dosyanın
kayıtlı olup olmadığını kontrol eder.
CheckPathExists
True değeri ile, kullanıcının yazdığı dosya yolunun doğruluğunu
kontrol edersiniz.
seçeneğinin
işaretli
olup
olmadığını
86
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
OpenFileDialog Metotları
Olay
Açıklama
ShowDialog
Dialog penceresini açmak için kullanılır.
SaveFileDialog
OpenFileDialog ile aynı özelliklere sahip olup, dosyaları kaydetmek için kullanılır.
Örnek:
Dosya
açma
ve
kaydetme
özelliklerini
olduğu
bir
uygulama
MainMenu_Application.exe (Komut satırı)
Operatörler
Aritmetiksel - Mantıksal Operatörler
Bu operatörler aritmetik işlemlerinde, sayılarla veya sayı tutan ifadelerle kullanılır.
87
Özellik
Değer Tipi Açıklama
=
Eşittir
*
Çarpma
/
Bölme
\
Tam Bölme
yapınız.
Bilgisayara Giriş
+
Toplama
-
Çıkarma
^
Üs Alma
Mod
Bölmede kalan
Not
Değil
And
Ve
Or
Veya
XOr
Verilen koşulların farklarını kıyaslar
2010 2011
TABLO: And Operatörü
Koşul 1
Koşul 2
Koşul 1 AndKoşul 2
True
True
True
True
False
False
False
True
False
False
False
False
TABLO : Or Operatörü
Koşul 1
Koşul 2
Koşul 1 Or Koşul 2
True
True
True
True
False
True
False
True
True
False
False
False
TABLO: XOr Operatörü
Koşul 1
Koşul 2
Koşul 1 XOrKoşul 2
True
True
False
True
False
True
False
True
True
88
Visual Basic.NET ile
Tabanlı Programlama
False
False
Windows
2010 2011
False
Karşılaştırma Operatörleri
Bu operatörler veri tiplerini birbirleriyle karşılaştırmak için kullanılır. Bu operatörler ile yapılan
işlemlerin sonucunda True ya da False değeri döner. Karşılaştırma operatörleri yalnızca sayı tipleri
üzerinde yapılmaz. String tipleri birbirleriyle alfabetik sıraya göre karşılaştırılabilir.
Özellik
Değer Tipi Açıklama
<>
Eşit Değil
>
Büyük
<
Küçük
>=
Büyük eşit
<=
Küçük Eşit
Matematiksel İşlemler
89
Özellik
Değer Tipi Açıklama
Math.Max(Sayı1,Sayı2)
Maksimum
Math.Min(Sayı1,Sayı2)
Minimum
Math.Abs(Sayı)
Mutlak değer
Math.Sign(Sayı)
Signum fonksiyonu
Math.Floor(Sayı)
Yukarıya yuvarlama
Math.Ceiling(Sayı)
Aşağı yuvarlama
Math.Round(Sayı)
En yakın tamsayıya çevirir.
Math.Round(Sayı,Basamak)
Virgülden sonra kaç basamağa kadar yuvarlatılacağını verir.
Math.Log10(Sayı)
10 tabanında logaritma
Math.Log(Sayı)
e tabanında logaritma
Math.Log(Sayı,Taban)
Belirtilen tabanda logaritma
Math.Pow(sayı,üs)
Sayının üssünü alır
Math.Exp(sayı)
Exponansiyel kuvvetini alır
Math.Sqrt(Sayı)
Sayının karekökünü alır
Math.Sin(sayi)
Sayının sinüsünü alır
Bilgisayara Giriş
Math.Cos(Sayı)
Sayının Cosünüsünü alır
Math.Tan(Sayı)
Sayının Tanjantını alır
Math.Acos(Sayı)
Sayının arccos unu hesaplar.
Math.Asin(Sayı)
Sayının arcsin unu hesaplar
Math.Atan(Sayı)
Sayının arctan ını hesaplar
2010 2011
Kısaltılmış Atama Operatörleri
x=x+y
ifadesi yerine
x+=y
kullanabiliriz. Buna göre kısaltabileceğimiz diğer operatörler şöyledir:
^=
*=
\=
+=
-=
&=
NumericUpDown
NumericUpDown Özellikleri
Özellik
Açıklama
DecimalPlaces
Sayının ondalık kısmını belirlemek istediğimizde bu özelliği
90
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
kullanacaksınız.
Hexadecimal
Bu özelliğin True olması durumunda sayı Hexadecimal (16
tabanında) gösterilir.
Increment
Sayıların artış miktarı için kullanılacak olan bir özelliktir.
InterceptArrowKeys
Klavyedeki üst ve alt tuşların kullanılabilir olması için bu özelliği
True olarak belirlemelisiniz.
Maximum:
Sayıların üst sınırıdır.
Minimum
Sayının alabileceği en küçük değerdir.
ReadOnly
Kontrolün içine sayı girişi yapılmamasını istiyorsanız bu özelliği
True olarak değiştirmelisiniz.
ThousandsSeparator
Binlik hanelerde “.” Ayıracını koymak istiyorsanız bu özelliği True
olarak belirlemelisiniz.
UpDownAlign
Yukarı ve aşağı azaltma düğmelerini bu özelliği kullanarak sağda
veya solda görünmesini sağlayabilirsiniz.
Value
NumericUpDown kontrolünün içindeki değerini bu özellik ile
öğrenebiliriz.
NumericUpDown Olayları
Olay
Açıklama
ValueChanged
NumericUpDown kontrolünün
seçildiğinde bu olay gerçekleşir.
içinde
değer
yukarı
aşağı
NumericUpDown Metodları
Olay
Açıklama
UpButton(),DownButton()
Kontrolün içindeki sayıyı kontrol ile azaltmak isterseniz bu metodu
kullanabilirsiniz.
Örnek: N doğal sayısı verildiğinde aşağıdaki ifadelerin değerlerini bulmak için program yazınız.
i)
1 
1 
1

a  1  2 1  2 1  2
 1  2  3
a
ii)
91
1 
 
......1  2 
  n ;
1
1
1

 .... 
sin 1 sin 1  sin 2
sin 1  sin 2  ...  sin 4 ;
Bilgisayara Giriş
a
iii)
2010 2011
cos 1 cos 1  cos 2
cos 1  cos 2  ...  cos n

 .... 
sin 1 sin 1  sin 2
sin 1  sin 2  ...  sin 4 ;
iv) a  xx  1x  2x  3......x  n ; (x - reel sayıdır)
a
1
1
1

 ..... 
x x( x  1)
x( x  1)....( x  n) ; (x - reel sayıdır)
a
1
1
1
 4  ...  2 n
2
x
x
x ; (x - reel sayıdır)
v)
vi)
2
n
vii) a  sin x  sin x  ...  sin x ; (x - reel sayıdır)
2
n
viii) a  sin x  sin x  ...  sin x ; (x - reel sayıdır)
a  sin x  sin sin x  ...  sin
sin ....
sin x


ix)
n
a  x  x  ....  x


x)
n
; (x - reel sayıdır)
; (x - reel sayıdır)
a
1!
2!
n!

 ..... 
1
1
1
1
1
1   ....
2
2
n ;
a
x x 2 x3
xn


 .... 
1! 2! 3!
n! ; (x - reel sayıdır)
xi)
xii)
a  (1 
x)(
xiii)
1

2!
x )  ...  (
1

n!
x)
; (x - reel sayıdır)
1
 2
  n

a    cos x   cos 2 x ....
 cos n x 
2
 3
  n 1
 ; (x - reel sayıdır)
xiv)
xv) y  cos(1  cos(2  cos(3  .....  cos(n  1  cos n)....)))
xvi) a  n!! ;
n
p
i, j
xvii)
1
i  j2
k
xviii)
xix)
n
 sin ik
k 1
k!
s
i 1
y  3  6  ...  n  3  n
92
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
xx) a  1!2!3!...  n!
Örnek: Yazı boyutunu ayarlayabileceğiniz bir uygulama yapınız.
Select Case
Bir değişkenin aldığı bir çok değere göre farklı komutların çalıştırılması gereken durumlar için If
yapısını kullanmak yerine Select Case yapısını kullanmak daha avantajlıdır.
Select Case Değişken
Case Durum 1:
Komutlar
Case Durum2, Durum3:
Komutlar
Case Durum4 to Durum7:
Komutlar
Case is <Durum8:
Komutlar
Case is >Durum9:
Komutlar
…
Case DurumN:
Case Else
Komutlar
Komutlar
End Select
Örnek:
93
Vize-Final
uygulamasını
Select-Case
yapısını
kullanarak
yapınız.
Bilgisayara Giriş
2010 2011
Örneğin InputBox metodu ile bir sayının alınması sırasında, kullanıcı String tipinde bir değer girerse
çalışma zamanında bir hata oluşur.
Dim dizi(10) As Integer
For i As Integer = 0 To dizi.Length Label1.Text &= dizi(i)
Next
Resim ‟deki hata mesajı, dizinin büyüklüğünün dışında bir indis verildiğini belirtir. Visual Basic .NET
dilinde uygulama geliştirirken oluşabilecek tüm hatalar .NET Framework altındaki Exception sınıfları
halinde
tanımlanır.
Örneğin
dizinin
büyüklüğünden
farklı
bir
indis
verildiğinde
IndexOutOfRangeException hatası ortaya çıkar. Tüm hatalar gibi bu hata da Exception taban
sınıfından türetilmiştir.
94
Visual Basic.NET ile
Tabanlı Programlama
Windows
2010 2011
Try Catch Finally
Try
Komutlar
Catch
Komutlar
End Try
Çalışma zamanında ortaya çıkan hatalar uygulamanın beklenmedik bir şekilde sonlanmasına neden
olur. Uygulamanın devam etmesi için bu hataların yakalanıp işlenmesi gerekir. Try Catch Finally
blokları içinde, çalışma zaman hataları meydana geldiği durumlarda çalışması istenen kodlar yazılır.
Try bloğu içine, çalışırken hata üretebilecek kodlar yazılırken, Catch bloğu içine, hata oluştuğunda
yapılması gereken işlemler yazılır.
Dim sayi As Byte Dim sonuc As Integer
Try
sayi = Rnd() * 3
95
Bilgisayara Giriş
2010 2011
sonuc = 100 / sayi
MsgBox("Bölme işlemi başarılı, sonuç: ” & sonuc)
Catch ex As Exception
MsgBox("Bölme işlemi başarısız. Hata Mesajı: " & ex.Message)
End Try
Bu örnekte üretilen rasgele bir sayı ile bölme işlemi yapılıyor. Sayı sıfır değerini aldığında, bölme
işlemi hata üretir. Dolayısıyla bu işlem Try bloğu içine yazılmalıdır. Catch bloğunda, işlemin
başarısız olduğunu belirten bir mesaj yazılır. Exception nesnesinin Message özelliği, hatanın oluştuğu
zaman üretilen mesajı tutar. Exception nesnesinin özellikleri Catch içinde kullanılmayacaksa,
tanımlanmasına
gerek
yoktur.
ProgressBar
ProgressBar Özellikleri
Özellik
Açıklama
Mininmum
ProgressBarın alacağı minimum değerdir.
Maximum
ProgressBar ın alacağı maksimum değerdir.
Value
ProgressBar ın alacağı değerdir.
Step
Değerin hangi adımlarla artacağını belirler.
ProgressBar Metotları
Özellik
Açıklama
PerformStep
Step belirttikten sonra bu metot ile değeri belirtilen aralık kadar
96
Hata! Tablo için
geçersiz
bir
sonuç.
2010 2011
değiştirebilirsinz.
Örnek: 1 den keyfi bir sayıya kadar olan asal sayıları buldurmada progressbarın ilerleyeceği bir
uygulama yapınız.
ImageList
Birden fazla resmi bir arada tutmak için kullanılır.
ImageList Özellikleri
Özellik
Değer Tipi
Açıklama
ImageSize
Resmin boyutunu ayarlarsınız.
Images(No)
Listenin içindeki resmileri almak için kullanılır.
PictureBox
Form üzerinde bir resim görüntülemek için kullanılır.
PictureBox Özellikleri
97
Özellik
Değer Tipi
Açıklama
Image
Image
Kontrolün resim kaynağını belirler.
Hata! Tablo için geçersiz bir sonuç. 2010 2011
SizeMode
PictureBoxSizeMode
Kontrolün, resmi nasıl görüntüleyeceğini belirler.
i.
ii.
iii.
iv.
AutoSizedeğeri, kontrolün büyüklüğünü resmin
büyüklüğüne göre ayarlar.
CenterImagedeğeri, resmi kontrolün ortasına gelecek
şekilde ayarlar.
Normaldeğeri, kontrolün sol üst köşesine göre
konumlandırır.
StretchImagedeğeri, resmi kontrolün büyüklüğüne
göre boyutlandırır ve resmin tam görünmesini sağlar.
TabControl
TabControl Özellikleri
Özellik
Değer Tipi
Açıklama
HotTrack
Boolean
Fare ile sekme sayfalarının üzerine gelindiğinde, isimlerinin
görsel olarak değişmesini belirler.
ItemSize
Size
Sekme sayfalarının büyüklüğünü belirler.
Multiline
True
Eklenen sekmelerin birden fazla satırda üst üste gözükmesini
belirler.
ShowToolTips
Boolean
Fare sekme sayfalarının
gösterilmesini belirler.
SelectedTab
TabPage
Seçilen sekme sayfasını belirler.
SelectedIndex
Integer
Seçilen sekme sayfasının indisini belirler.
üzerindeyken
bilgi
mesajının
98
Hata! Tablo için
geçersiz
bir
sonuç.
2010 2011
TabCount
Integer
Sekme sayısını belirler.
TabPages
TabPageCollection
Kontrolün
içinde
koleksiyonudur.
Örnek:
Alanında
uzman
tercüman
TabControl_Application.exe (Komut satırı)
99
alımları
için
bulunduğu
iş
başvuru
sekme
formu
sayfalarının
hazırlayınız.
Hata! Tablo için geçersiz bir sonuç. 2010 2011
DateTimePicker
Bir açılan kutudan zaman değeri seçmeyi sağlar. Seçilen değer Date tipinde olur.
DateTimePicker Özellikleri
Özellik
Değer Tipi
Açıklama
CalendarTrailing
ForeColor
Color
Bir önceki ve bir sonraki ayın günlerinin görüntülenme
rengidir.
CalendarTitle
ForeColor
Color
Takvim başlığının ön plan rengidir.
CalendarTitle
BackColor
Color
Takvim başlığının arka plan rengidir.
CalendarMonth
Background
Color
Takvim arka plan rengidir.
CalendarForeColor
Color
Takvimdeki yazıların ön plan rengidir.
CalendarFont
Font
Takvimin gösterileceği yazı tipi ayarlarıdır.
ShowCheckBox
Boolean
Tarih değerinin yanında seçme kutusunun gösterilmesi.
Checked
Boolean
Seçme kutusu görüntülendiği zaman, tarihin seçili olup
olmadığını gösterir
DateTime
Format
PickerFormat
CustomFormat
String
Kontrolün
görüntüleneceği
formatı
belirler.
Long,
Shortdeğerleri uzun ve kısa tarih formatını, Time sadece
zamanı gösterir. Custom değeri, CustomFormat özelliğine
girilen formatta gösterileceğini belirler.
Tarihin hangi formatta gösterileceğini belirler.
100
Hata! Tablo için
geçersiz
bir
sonuç.
2010 2011
Value
Date
Seçilen tarih değerini belirler.
MaxDate
Date
Kontrolün alabileceği maksimum tarih değeridir.
MinDate
Date
Kontrolün alabileceği minimum tarih değeridir.
Boolean
Kontrolün formunu açılan kutu ya da yukarı aşağı okları
formatında gösterir. Bu özellik True olduğunda, kontrolün
formatı, NumericUpDown kontrolünün formatında olur.
ShowUpDown
DateTimePicker Metotları
ToOADate:Tarih bilgisini Double türünden bir sayıya çevirir.
ToShortDateString: Tarihi kısa formatta stringe dönüştürür.
ToLongTimeString: Zamanı uzun formda stringe dönüştürür.
Örnek: Kitap alım ve teslim tarihlerine göre, 15 gün içerisinde teslim edilmeyen kitaplar için
ceza işlemi yapılacaktır. Alım-teslim tarihlerli ve ceza tutarına göre toplam ödenmesi gereken
miktarı veren bir program yapınız.
Örnek: Bir alarm programı yapınız.
101
Fonksiyonlar ve Altprogramlar (Yordamlar)
2010 2011
Bölüm 7. Fonksiyonlar ve
Altprogramlar (Yordamlar)
Uygulama geliştirirken, bir işlemin birçok yerde kullanıldığı zamanlar olur. Bu gibi durumlarda bir
kere yazılan kodlar, farklı yerlerde tekrar yazılır. Uygulama üzerinde bir değişiklik yapılmak
istenirse, tekrar yazılan kodların tek tek bulunup değiştirilmesi gerekir. Böylece hem uygulamanın
yazımı zorlaşır, hem de değişik yapmak giderek imkânsız hale gelir. Bu problemler, birçok yerde
yapılması istenen işlemlerin fonksiyonlar ve yordamlar içinde yazılması ile çözülür. Sadece fonksiyon
ve yordamların isimleri kullanılarak, istenen yerlerde kodlar çalıştırılır.
Yapılan işlemin sonucunda oluşan değer isteniyorsa fonksiyonlar kullanılır. Örneğin, veritabanına
yeni bir kullanıcı ekledikten sonra, kullanıcının ID numarası isteniyorsa fonksiyon kullanılmalıdır.
Eğer yapılan işlemlerin sonunda bir değer döndürülmüyorsa yordamlar kullanılır. Örneğin bir
ComboBox kontrolüne öğe ekleme işlemi yordam içine yazılabilir.
.NET çatısındaki nesnelerin birçok fonksiyon ve yordamları vardır. Tüm fonksiyon ve yordamların kaç
parametre aldığı, geriye dönüş değerinin ne olduğu, hangi nesneye ait oldukları ezberlenemez.
Dolayısıyla Visual Studio yardımının kullanılması kaçınılmazdır.
Bu modül tamamlandıktan sonra;
ve yordamların farklarını ayırt edebileceksiniz.
Sub
102
Bilgisayara Giriş
2010 2011
Sub yordamları dönüş değeri olmayan kod bloklarıdır. Bu kodlar Sub ve End Sub ifadeleri arasına
yazılır.
Sub YordamIsmi([Giriş_Parametreleri[As Tipi]])
End Sub
Uygulama içinde birçok yerde çalışacak olan kodlar Sub yordamı içinde yazılır. Bu kodlar, içine
yazıldıkları yordamın ismi ile çağırılarak, istenen yerde tekrar çalıştırılabilir. Örneğin, bir uygulama
başlarken form üzerindeki kontrollerin temizlenmesi gerekiyorsa, bu kodları bir daha yazmamak için
yordam kullanılabilir.
Parametre
Kullanımı
Yordamların bazı değerlere göre farklı işlem yapması istenebilir. İşlemin bağlıolduğu bu değerlere
parametre veya argüman denir. Yordamlar parametre alacak şekilde tanımlanıp, çağırıldıkları sırada
istedikleri parametreler verilerek kullanılır.
Sub YordamIsmi(Parametre1 As VeriTipi, Parametre2 As VeriTipi, …)
End Sub
Örneğin, uygulamanın birçok yerinde kullanıcıya bilgi vermek amaçlı mesaj kutuları kullanılır. Eğer
bu mesajlar bir yordam içine yazılırsa, daha sonra mesajlar bir Label üzerinde gösterilecek şekilde
kodu değiştirmek kolay olacaktır. Yordamın göstereceği mesajların parametre olarak verilmesi
gerekir.
Optinal Parametre kullanımı
Public Function f(x,y,Optinal t=3, Optinal k=5)
F(5,4) x=5, y=t, t=3, k=5
F(5,4,2) x=5, y=4, t=2, k=5
F(5,4,2,3) x=5, y=4, t=2, k=3
F(5,4,,2) x=5, y=4, t=3, k=2
103
Fonksiyonlar ve Altprogramlar (Yordamlar)
2010 2011
Örnek: 1.Ad, 2.Ad, Soyad, Unvan, Konuşma Başlığı, Üniversitesi, Adresi, Şehir, Ülke, Posta
kutusu numarası, Telefon gibi bilgilerinin bulunduğu bir konferans katılımcı sayfası
hazırlanacaktır. Dikkat edilmesi gereken kurallar:
1. Tüm alanlar için #,+,^,%,=,* gibi sembollerin kullanılmaması gerekmektedir.
2. Tüm alanlar için İlk harfin büyük olması özelliği olmalıdır.
3. Posta kodu ve Telefon numarası hariç tüm alanların doldurulması zorunludur.
Bu kurallara uygun katılımcılar için form oluşturunuz.
Function
Fonksiyonlar bir işlem yaptıktan sonra geriye değer döndürürler. Örneğin, bir çarpma fonksiyonunun
dönüş değeri, parametre olarak verilen iki sayının çarpımıolacaktır. Fonksiyonların tanımları
değişkenler gibidir.
Function Fonksiyon(ByVal Param1 As VeriTipi, ...) As DönüşVeriTipi
End Function
Fonksiyonların geriye dönüş değerleri Return ifadesi ile ya da fonksiyonun ismi verilerek yapılır.
Örnek: Verilen iki sayı için kombinasyon hesabı yapan programı yazınız.
Parametre sayısı belli olmayan prosedür yazmaParamArray
Yordamları ve fonksiyonları çağırırken parametrelerin mutlaka girilmesi gerekir. Ancak bazı
durumlarda yordamlara ve fonksiyonlara girilecek parametrelerin sayısı tasarım zamanında belli
olmaz. ParamArray anahtar kelimesi ile yordamlara, aynı veri tipinde bir parametre dizisi verilebilir.
ParamArray ile verilen dizi, yordamın son parametresi olarak tanımlanmalıdır.
Function(Sub) Fonksiyon(Yordam)Adı(ParamArray degisken As Tipi) As Tipi
104
Bilgisayara Giriş
Örnek: NumericUpdown
hesaplayınız.
2010 2011
konusundaki
matematiksel
hesaplamaları
function
yardımı
ile
Fonksiyonların ve Yordamların Aşırı
Yüklenmesi
Fonksiyon ve yordamları kullanırken, aynı isimde birden fazla kez tanımlanabildikleri görülür. Buna
Aşırı Yükleme (OverLoad) denir. Bir yordamın ve fonksiyonun aşırı yüklenmesi kullanımını
kolaylaştırır. Aynı isimde farklı seçenekler sunması, metotların kullanışlılığını artırır.
Overloads Function FonksiyonAdı(degisken1 As Tipi, degisken2 As Tipi,…)
…
End Function
Örnek: İki sayıyı birbirinden çıkarma veya iki string ifadesinde birini diğerinden çıkarma
işlemlerinin olduğu bir function örneği yapınız.
105
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Bölüm 8. ADO.NET
Konu 2. Veri Depolama
Günümüzde verileri saklamak için çeşitli teknikler kullanılır. Örneğin bir emlakçı emlak alımsatım
bilgilerini dosya kâğıtları üzerinde depolayabilir. Bu yöntem veri arama ve listeleme işlemlerinin
karmaşık hale gelmesine ve arama süresinin uzamasına sebep olur. Hatta daha büyük
organizasyonlarda işlemlerin yavaşlamasına ve durmasına sebep olabilir.
Artan ihtiyaçlar doğrultusunda veri depolamak ve depolanan veriye erişmek için çeşitli veri
depolama yöntemleri geliştirilmiştir. Bu yöntemler şunlardır:
Yapısal Olmayan: Bu yöntem ile depolanan veriler için belirli bir sınıflandırma ve sıralama yoktur.
Veriler düz bir şekilde kaydedilir. Örneğin basit not dosyaları.
Yapısal: Bu yöntem ile depolanan veriler çeşitli gruplara ayrılarak saklanır, fakat bu gruplar
arasında bir altüst ayrımı yapılmaz. Örneğin virgülle ayrılmış dosyalar (csv), Excel belgeleri.
Hiyerarşik: Hiyerarşik depolama yöntemini ağaç yapısına benzetebiliriz. Bu yöntemde veriler
çeşitli kategorilere bölünerek depolanır. Her bir kategorinin içinde alt kategorilerde olabilir.
Örneğin XML (eXtensible Markup Language) dosyaları.
İlişkisel Veritabanı: İlişkisel veritabanlarında veriler tablolar üzerinde depolanır. Tablo içindeki
her satır kaydı, her sütun ise veriyi ifade eder. Örneğin SQL Server, Oracle, Access.
Nesne Yönelimli Veritabanı: En gelişmiş veri depolama yöntemidir. Bu yöntemde veriler; ihtiyaca
göre gruplandırılarak nesneler içinde saklanır. Örneğin Versant, AOL.
106
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
ADO.NET bu depolama tekniklerinin tümünü destekler.
Bağlantılı (Connected) Veri Ortamları
Bağlantılı veri ortamları, uygulamaların veri kaynağına sürekli bağlı kaldığı ortamlardır. Bu
ortamlarda veri alma ve değiştirme işlemleri uygulama ile veri kaynağı arasında bağlantı kurulduktan
sonra gerçekleştirilir. Bağlantılı veri ortamlarında, veri işlemleri gerçekleştiği sürece bağlantı açık
kalır.
İlk bilgisayar üretiminden bugüne en çok tercih edilen yöntem bağlantılı veri ortamları olmuştur.
Bağlantılı ortamlar veriye erişmek için birçok avantaj sağlar.
Avantajları
En güvenli veri ortamıdır.
Veri kaynağına yapılan eş zamanlı erişimlerde, veri kaynağının kontrolünü kolaylaştırır.
Dezavantajları
Uygulama ile veri kaynağı arasında gerçekleşen bağlantıyı koruyabilmek için sabit bir ağ
bağlantısının olması gerekir.
Uygulama ile veri kaynağı arasındaki bağlantı ağ üzerinden gerçekleştiği için, ağ trafiğinin
yoğunluğunu artırır.
Örneğin araba üreten bir fabrikada yapılan üretim bilgilerinin diğer birimlere ulaştırılması ve bu
kayıtların depolanması için eş zamanlı bir bağlantı kurulması gereklidir. Ya da bir emlak firmasında
emlakçının, mülk ve menkul bilgilerini güncel tutabilmesi için sabit bir bağlantı kurması gereklidir.
107
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Bağlantısız (Disconnected) Veri Ortamları
Bağlantısız veri ortamı, uygulamanın veri kaynağına sürekli bağlı kalmadığı veri ortamıdır. Uygulama
ile veri kaynağı arasındaki bağlantı, veri alışverişi yapılırken açılır ve işlem bittikten sonra kapatılır.
Bu veri ortamları çevrim dışı çalışmak için kullanılır.
Teknolojinin ilerlemesi ve veri depolayan araçların taşınabilirliğinin sağlanması ile tüm dünyada
çevrimdışı ortamlara duyulan ihtiyaç artmıştır. Laptop, Notebook ve Pocket PC gibi araçların
yaygınlaşması ile günümüzde uygulamanın veri kaynağına bağlı olmadığı durumlarda bile veri girişi
yapılabilir.
Uygulamada sadece çevrimiçi veya çevrimdışı ortamlardan birini seçmek yeterli olmayabilir.
Gelişmiş uygulamalarda her iki ortamın avantajlarını birleştiren bir çözüm tercih edilebilir.
Avantajları
Laptop, Notebook ve Pocket PC gibi araçlarla girilen veriler, istenilen zamanda veri ortamlarına
aktarılabilir.
Çevrimdışı ortamlar sayesinde, verilerin depolandığı uygulama üzerindeki yük hafifletilir. Bu
durum performans artışını sağlar.
Dezavantajları
Bağlantısız veri ortamlarında, verilerin güncel kalmasına dikkat edilmelidir. Bu ortamlarda veri
güncelleme işlemleri farklı zamanlarda gerçekleştirilebilir. Veri üzerinde yapılan bu
değişimlerin diğer kullanıcılara gösterilebilmesi için çeşitli çözümler geliştirilmelidir.
Bağlantısız veri ortamları içinde farklı kullanıcılar eş zamanlı güncelleme işlemleri
gerçekleştirebilir. Bu durumda oluşacak veri çakışmalarının engellenmesi gerekir.
Örneğin bir toptancı firmasında, firma çalışanları farklı konumdaki bayilerinin tüm siparişlerini bir el
bilgisayarına kaydedebilir. Bu veriler el bilgisayarında geçici bir süre için depolanır. Bu süre
çalışanların sahada kaldığı süredir. Süre sonunda veriler sunucu bilgisayara aktarılır.
108
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Konu 3. ADO.NET‟e Giriş
ADO.NET Nedir?
ADO (ActiveX Data Objects), farklı veri kaynaklarına hızlı ve güvenli erişim için Microsoft tarafından
geliştirilen nesne modelidir. ADO.NET ise ADO teknolojisinin en yeni versiyonudur. ADO ile aynı
programlama modelini kullanmamakla birlikte, ADO modelinden gelen pek çok çözüm yolunu da
beraberinde getirir.
Uygulama gelişim ihtiyacı arttıkça, yeni uygulamalarda Web uygulama modeline olan bağlılık
gittikçe azalmaktadır. Şimdilerde ise ağ bağlantıları üzerinden veriyi rahatça aktarabilmek için XML
kullanımına olan yönelim artmaktadır. İşte ADO.NET, XML ve ADO.NET„in .NET Framework içinde en
uygun şekilde programlama ortamı oluşturmamızı sağlar.
ADO.NET modelinin diğer veri erişim modellerine göre üstünlüklerini şöyle sıralayabiliriz:
ADO.NET, veritabanından çekilen verilerin kopyasını XML formatını kullanarak belleğe aktarır.
Uygulamanın kullanıcı sayısı arttıkça kaynak kullanımı da artar. Nkatmanlı (Ntier) uygulama yapısı
kullanılarak, uygulamaların katmanlar üzerinden dağıtılması sağlanır. Böylece uygulamaların
ölçeklenirliği artar.
ADO.NET ile bağlantısız veri ortamları için uygulama geliştirilebilir. ADO.NET gelişmiş XML
desteği verir.
109
Hata! Tablo için geçersiz bir sonuç. 2010 2011
ADO.NET Nesne Modeli
ADO.NET nesne modeli iki ana bölümden oluşur.
DataSet sınıfları
.NET veri sağlayıcı sınıfları
DataSet sınıfları, çevrimdışı ortamlar için veri depolama ve yönetme işlemlerini sağlar. DataSet
sınıfları veri kaynağından bağımsız her tür uygulama ve veritabanı için kullanılabilir. Özellikle
İlişkisel Veritabanı, XML ve XML Web Servisleri üzerinden veri çekmek için kullanılır.
.NET veri sağlayıcı sınıfları, farklı türdeki veritabanlarına bağlanmak için kullanılır. Bu sınıflar
sayesinde istenilen türdeki veri kaynağına kolayca bağlantı kurulabilir, veri çekilebilir ve gerekli
güncelleme işlemleri yapılabilir. ADO.NET nesne modeli, aşağıdaki veri sağlayıcı sınıflarını içerir:
SQL Server .NET veri sağlayıcısı
OLE DB .NET veri sağlayıcısı
Diğer .NET veri sağlayıcıları
Hangi veri kaynağı kullanılacaksa, sadece ona uygun veri sağlayıcı sınıfı kullanılmalıdır.
ADO.NET Veri Sağlayıcıları
.NET veri sağlayıcıları, ADO.NET mimarisinin veritabanı ile uygulama (Windows, Web) veya XML Web
Servisi arasında bağlantı kurmak için her tür alt yapıyı barındıran çekirdek bileşendir. Tüm veri
sağlayıcıları, System.Data isim alanı içinde tanımlanmıştır.
110
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
.NET Framework 1.0 sürümü ile birlikte SQL Server .NET ve OLE DB .NET veri sağlayıcı sınıfları
gelmiştir.
SQL Server .NET: SQL Server 7.0 ve SQL Server 2000 veritabanlarına hızlı bağlantı sağlar. SQL
Server bağlantı nesneleri System.Data.SqlClient isim alanında bulunur.
OLE DB .NET: SQL Server 6.5 ve daha öncesi sürümlerine, Oracle, Sybase, DB2/400 ve Microsoft
Access veritabanlarına bağlantı kurmayı sağlar. OLE DB bağlantı nesneleri System.Data.OleDb
isim alanında bulunur.
.NET Framework 1.1 sürümü ile birlikte SQL Server .NET ve OLE DB .NET veri sağlayıcılarına Oracle
.NET ve ODBC .NET veri sağlayıcıları da eklenmiştir.
ORACLE .NET: Oracle veritabanlarına bağlantı için tasarlanmış veri sağlayıcısıdır. Oracle bağlantı
nesneleri System.Data.OracleClient isim alanında bulunur.
System.Data.OracleClientisim alanını kullanmak için, projeye System.Data.OracleClient.dll
referansı eklenmelidir.
ODBC .NET: Diğer veritabanlarını destekleyen genel bir veri sağlayıcıdır. ODBC bağlantı nesneleri
System.Data.ODBC isim alanında bulunur.
Veritabanı
Veri Sağlayıcısıİsim Alanı
Sql Server 7.0 ve sonraki sürümler
System.Data.SqlClient
Sql Server 6.5 ve önceki sürümler
System.Data.OleDb
Microsoft Access veritabanı
System.Data.OleDb
Oracle Server
System.Data.OracleClient
Diğer veritabanları(Oracle,
Sybase,DB2/400)
System.Data.OleDb
XxxConnection: Veri kaynağına bağlantı için kullanılan sınıftır.
XxxCommand: Veri kaynağı üzerinde sorgu çalıştırmak için kullanılır. Veri kaynağından dönen
kayıtlar
XxxDataReader veya DataSet kullanılarak veri bağlantılı kontrollere aktarılır.
XxxDataReader: Çevrimiçi bağlantılarda sadece veri okumak için kullanılan sınıftır.
XxxDataAdapter: Çevrimdışı bağlantılarda kullanılan veri işleme nesnesidir.
Xxx yerine seçilen veri sağlayıcısına göre SQL, OLEDB, Oracle ve ODBC eklerinden biri kullanılır.
111
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Konu 4. Bağlantı Oluşturmak
Öncelikle grafiksel arayüzü kullanarak daha kolay şekilde yapacağız. Daha sonra bunu kod ile
yapacağız.
Menü Yardımı ile bağlantı oluşturmak
1. Data menüsünden Add New Data Source menüsüne tıklayın:
2. Data Source Configuration Wizard da Database icon‟u tıklayıp Next‟e tıklayın.
3. New Connection butonuna tıklayın.
4. Microsoft Access Database File ı seçin ve OK deyin.
112
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
5. DataBase‟i seçmek için Browse‟yi tıklayın ve dosyanızı seçin.
6. Test Connection butonuna basın.
7. OK dedikten sonra bağlantımızı test etmiş oluyoruz.
8. (+) işaretine bastığımızda tamamlanmış bağlantının şekli aşağıdaki gibidir. Bağlantı
sağlayıcımızın ismi Microsoft.Jet.OLEDB.4.0 şeklinde ve otomatik olarak gelmiştir. Daha
sonra bunu kod ile yapacağız.
113
Hata! Tablo için geçersiz bir sonuç. 2010 2011
9. Next‟ tıklayın.
10. Geçerli bağlantı cümlesini oluşturmak için Next‟e tıklayın.
114
Hata! Tablo
sonuç.
için
geçersiz
bir
11. Tablonun içindeki listeleri görmek için (+)‟ya tıklayın.
12. Seçmek istediğiniz sütunları checkbox‟ı işaretleyerek seçiniz.
115
2010 2011
Hata! Tablo için geçersiz bir sonuç. 2010 2011
13. Data Source Configuration Wizard‟ı kapatmak için Close tıklayın.
14. Solution Explorer pencersindeki görünüt aşağıdaki gibi olacaktır.
Burada yeni bir dosya türü görüyoruz: StudentsDataSet.xsd. Bu dosya bir XML şemasıdır,
tabloları, alanları, data tiplerini ve diğer elemanları içerir
15. Solution Explorer‟dan dosyayı seçin ve görüntüsünü izleyin.
16. Instructor field alanını tıklayın ve özellikler kısmını açın.
116
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
17. Bu uygulamada yeni bir pencere açılıyor. Data Sources window.
Yeni DataSet ekleme için kullanılır.
DataSet i düzenleme için kullanılır.
DataSet e alan ekleme ve silme için kullanılır.
DataSet i yenilemek için kullanılır.
Yeni StudentsDataSet bağlantısı.
Students.mdb veri tabanından instructors tablosun
alanlar
Seçili olan alanlar
117
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Grafiksel arayüzü kullanarak bağlantı
oluşturmak
Uygulamaya veritabanınıeklemek.
Proje ismi sağ tıklayın.
Açılan menüden Add alt menüsündeki Add Existing Item komutunu verin.
Açılan pencere üzerindeki Look in açılan kutusundan CD Sürücüsü\Veritabanı klasörünü seçin.
Açılan Add Existing Item penceresinden *.mdb veritabanını seçerek Open düğmesini tıklayın.
Şimdi ise bu işlemleri kod ile gösterelim.
Parametre
Provider
Tanımı
Sadece OleDbConnection nesnelerinde kullanılır. Bağlantı
sağlayıcısının ismini tutar. Sağlayıcı isimleri diğer Tablo „da
belirtilmiştir.
ConnectionTimeout
veya
ConnectTimeout
Initial Catalog
Veritabanı bağlantı için beklenmesi gereken maksimum saniye
sayısıdır. Varsayılan değer 15 saniyedir.
Data Source
SQL Server adı, veya MS Access veritabanı için dosya
adı
SQL Server login (giriş) parolası
Password (pwd)
Veritabanı adı
User Id (uid)
Integrated Security
veya Trusted
Connection
SQL Server login (giriş) adı
SQL sunucusuna Windows hesabı ile bağlantı yapılacağını belirtir. True, Falseveya SSPI girilebilir.
SSPI, Trueile eş anlamlıdır ve bu durumda Windows
hesabı kullanılır.
Persist Security Info
Varsayılan değeri False olur. Bu durumda güvenlik
için hassas bilgileri geri döndürmez. True olduğunda
ise güvenlik risk taşımaya başlar.
Provider parametresinin Access, SQL Server ve Oracle veritabanlarına göre alacağı değerler
aşağıdaki tabloda gösterilmiştir.
118
Hata! Tablo
sonuç.
için
geçersiz
Tür
SQLOLEDB
MSDAORA
Microsoft.Jet.OLEDB.4.0
bir
2010 2011
Açıklama
SQL Server için Microsoft OLE DB Provider
ORACLE için Microsoft OLE DB Provider
Microsoft Jet için OLE DB Provider
Bağlantılı (Connected) Veri Ortamları
XXXConnection
Toolbox ı kullanarak
ToolBox üzerinden Connection nesnesi oluşturmak için belirtilen adımları takip edin.
1. ToolBox içinden Data paneli seçilir.
2 Data panelindeki OleDbConnection veya SqlConnection nesnesi form üzerine sürüklenir. Eğer bu
nesneler Data panelinde yok ise panelin üstüne sağ tuş tıklanıp “Choose Items” seçeneği seçilir.
Gelen menüde Net Framework Components‟lerin içinden OleDbConnection veya SqlConnection
nesnesi işaretlenerek OK butonuna basılır.
Bağlantı oluşturmak için Connection nesnesinin DataSource özelliğinden, veri tabanını seçiniz.
Kod kullanarak
SQL Server veritabanı için bağlantı cümlesi
Örnek: SQL Server veritabanı için bağlantı cümlesi oluşturulmuştur. London isimli sunucuda
bulunan Northwind veritabanına, sa kullanıcı ismi ve 2389 parolası ile bağlanılıyor. Eğer
veritabanı sunucusundan 60 saniye içinde cevap alınamazsa bağlantı iptal ediliyor.
Dim cnNorthwind as New System.Data.SqlClient.SqlConnection()
cnNorthwind.ConnectionString = _
"User ID=sa;" & _
"Password=2389;" & _
"Initial Catalog=Northwind;" & _
119
Hata! Tablo için geçersiz bir sonuç. 2010 2011
"Data Source=London;" & _
"Connection TimeOut=60;"
Microsoft Access veritabanı için bağlantı cümlesi
Örnek: Microsoft Access veritabanı için bağlantı cümlesi oluşturulmuştur. OleDb bağlantısı
yapıldığı için Provider özelliğinin Microsoft.Jet. OleDB.4.0 olarak belirtilmesi gerekir.
Bağlantının yapılacağı Northwind veritabanının local makinede C:\Samples dizini altında
bulunduğu belirtiliyor.
Dim cnNorthwind as New System.Data.OleDb.OleDbConnection()
cnNorthwind.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Samples\Northwind.mdb;"
Connection Özellikleri
Parametre
Tanımı
ConnectionTimeout
VeritabanI bağlantI için beklenmesi gereken maksi-mum saniye sayIsIdIr.
VarsayIlan değer 15 saniyedir.
ConnectionString
Veri kaynağına bağlanmak için oluşturulan bağlantı cümlesi
Data Source
SQL Server adI, veya MS Access veritabanI için dosya adI
Provider
Bağlantı sağlayıcısının ismini tutar.
Bağlantıyı Açmak ve Kapatmak
Bağlantı cüml esini oluşturduktan sonra, bağlantıyı açmak ve kapatmak için Connection sınıfının iki
önemli metodu kullanılır.
120
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Open
Close
Open metodu, bağlantı cümlesinde belirtilen veri kaynağını açmak için kullanılır.
Close metodu, açılan bağlantıyı kapatmak için kullanılır. Close metodu ile kullanılmayan bağlantıları
kapatmak, kaynak tüketimini azaltır. Open metodu, uygulama ile veri kaynağı arasındaki bağlantıyı,
bağlantı cümlesinin Timeout parametresinde belirtilen süre içinde kurmaya çalışır. Eğer belirtilen
süre içinde bağlantı gerçekleşmiyorsa, uygulama hata üretir. Bu süre için herhangi bir değer
belirtilmemişse, varsayılan değer 15 saniyedir.
Daha önceden açılmış bir bağlantı; kapatılmadan tekrar açılmaya çalışılırsa, uygulama yine hata
üretir. Kapatılan bağlantının yeniden kapatılması hataya yol açmaz.
cnNorthwind.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Samples\Northwind.mdb;"
‘Bağlantıyı açmak
cnNorthwind.Open()
‘Veritabanı işlemleri bu arada gerçekleştirillir.
‘Bağlantıyı kapatmak
cnNorthwind.Close()
Open metodu ile veri kaynağı açılırken, çeşitli çalışma zamanı hatalarından dolayı bağlantı
açılmayabilir ve uygulama hata üretebilir. Bu çalışma zamanı
hataları;
Sunucunun bulunamamasından,
Veritabanının bulunamamasından,
Hatalı kullanıcı adı veya parola girilmesinden,
Donanım veya yazılımdan kaynaklanabilir.
121
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Bağlantı Durumlarını Kontrol Etmek
Bağlantı sınıfının durumu hakkında bilgi almak için, bağlantı sınıfının State özelliği kullanılır.State
özelliğinin alabileceği değerler Tablo „da belirtilmiştir.
İsim
Açıklama
Değeri
Broken
Yalnızca, açık bir bağlantının kopup tekrar bağlanıldığı durum
16
Closed
Bağlantı kapalı
0
Connecting
Veri kaynağına bağlanma aşamasında
2
Executing
Bağlantı üzerinden bir komutu çalıştırılıyor
4
Fetching
Bağlantı üzerinden veri çekiliyor
8
Open
Bağlantı açık
1
XXXCommand
Command, veritabanı üzerinde Stored Procedure (SaklıYordam) ve sorgu çalıştırmak için kullanılır.
Command nesneleri ile veritabanı tablolarında; sorgu, ekleme, silme ve güncelleme işlemleri
yapılabilir.
122
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Nesne
Veri Sağlayıcıları
System.Data.SqlClient.SqlCommand
SQL Server .NET Veri Sağlayıcısı
System.Data.OleDb.OleDbCommand
OLE DB .NET Veri Sağlayıcısı
System.Data.OleDb.ODBCCommand
ODBC .NET Veri Sağlayıcısı
Veritabanı üzerinde Stored Procedure ve sorgu çalıştırmak için Command nesnelerinin belirli
özelliklerini kullanmak gerekir.
Toolbox ı kullanarak
ToolBox üzerinden Command nesnesi oluşturmak için belirtilen adımları takip edin.
1
Veri kaynağına bağlantıkurmak için Connection tanımlanır.
2
ToolBox içinden Data paneli seçilir.
3
Data panelindeki OleDbCommand veya SqlCommand nesnesi form üzerine sürüklenir.
Kod kullanarak
Dim sql As String = "SELECT StokMiktari FROM Urun " & _
"WHERE UrunID = @UrunID"
Dim cmUrun As New SqlCommand(sql, cnAlisveris)
Dim prmID As SqlParameter = cmUrun.Parameters.Add( _
New SqlParameter("@UrunID", SqlDbType.Int, 4))
cmUrun.Parameters("@UrunID").Value = 42
cnAlisveris.Open()
Command özellikleri
123
Özellik
Açıklama
Name
Command nesnesinin kod içinde kullanılan ismidir.
Connection
Commandnesnesinin hangi Connection üzerinde çalışacağını belirler.
Bu özellik ile yeni Connection oluşturabilir veya varo-lan Connection
nesnesine bağlanılabilir.
Hata! Tablo için geçersiz bir sonuç. 2010 2011
CommandType
Command nesnesinin tipini belirler. Çalıştırılacak Command„a göre
Text, StoredProcedureve TableDirect seçilir.
Text: SQL Cümlesi
StoredProcedure: Kayıtlı Yordam
TableDirect: Tablo kayıtları
TableDirectsadece OleDbCommand nesnesi tarafından kullanılır.
CommandText
Commandnesnesinin çalıştırılacak komutudur. Seçilen
CommandType„a göre CommandText belirlenir.
Text: Çalıştırılacak SQL cümlesi.
StoredProcedure: Çalıştırılacak Stored Procedure adı.
TableDirect: Veritabanındaki tablo adı
Parameters
Commandnesnesinin CommandTextkomutuna dışardan değer almak
veya komuttan geriye değer döndürmek için kullanılır. Parameters
özelliği Collection olduğu için bir veya birden çok değer alabilir veya
gönderebilir.
Command metotları
Command Metodu
Açıklama
ExecuteScalar
Çalıştırılan Command nesnesinden geriye tek değer döndür-mek için
kullanılır.
ExecuteReader
Çalıştırılan Command nesnesinden geriye kayıt kümesi dön-dürmek
için kullanılır.
124
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
ExecuteNonQuery
Command nesnesi üzerinde veri güncelleme, değiştirme ve silme
işlemleri yapmak için kullanılır. Bu işlemin sonucunda etkilenen
kayıt sayısı geriye döndürür.
ExecuteXmlReader
Çalıştırılan Command nesnesinden geriye XML döndürmek için
kullanılır. Sadece SQL Server 7.0 ve sonraki versiyonları için
kullanılır.
Dispose
Command nesnesini kapamak amacıyla kullanılır. Böyle bir durumda
tekrar Connection tanımlanmalıdır.
Parametre Kullanmak
Stored Procedure ve SQL cümleleri parametre alabilir veya gönderebilir. Ayrıca Stored Procedure
geriye tek değer bile döndürebilir. Stored Procedure ve SQL cümlelerinin parametre değerlerini
saklamak için, XXXCommand nesnesinin Parameters özelliği kullanılır. Aynı zamanda bu özellik
XXXParameters nesnesinin koleksiyonudur.
Command nesnesi çalıştırılmadan önce, komuttaki her giriş parametresi için bir değer girilmelidir.
Ayrıca Command nesnesi çalıştırıldıktan sonra, sonuç parametrelerinin değerleri geriye
döndürülebilir.
Commandnesnesine parametre eklemek için aşağıdaki yöntemler kullanılır.
Properties penceresi kullanılarak Command nesnesinin Parameters özelliğine tasarım aşamasında
parametreler eklenir.
XXXParameter nesnesini kullanarak, parametre eklemek için aşağıdaki adım-lar takip edilir.
1
Yeni bir OleDbParameterveya SqlParameternesnesi oluşturulur.
2
Eklenen Parameter nesnesinin özellikleri göre ayarlanır.
3.
XxxParameter nesnelerini Command nesnesine eklemek için, Command nesnesinin
Parameters koleksiyonunu içindeki Add metodu kullanılır. Eğer bu komut sonuç döndürecek bir
Stored Procedure çağırıyorsa, herhangi bir parametre eklemeden önce ParameterDirection.
ReturnValue parametresini eklenmelidir. Parametrelerin eklenme sırasıönemli değildir.
OleDbCommand_Name.Parameters.Add (parametername as string, oledbtype as oledbtype, size
as integer)
125
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Oledbcommand_name.Parameters. .AddWithValue(parametername as string, value as Object)
Parametrelerin özellikleri:
Özellik
Açıklama
ParameterName
Parametrenin ismi, @Adgibi
DbType,SqlDbType,
OleDbType
Parametrenin veri türü. Kullanılan veritabanına
SqlDbTypeveya OleDbType enumeratörlerinden seçilir.
Size
Parametredeki verinin byte olarak maksimum boyutu.
Direction
Parametrenin türü.
göre
ParameterDirectiondeğerlerinden biri ile belirtilir. Bu özelliğin
alabileceği değerler:
ParameterDirection.Input (varsayılan değer)
ParameterDirection.InputOutput
ParameterDirection.Output
ParameterDirection.ReturnValue
XXXDataReader
DataReader dönen kayıtlar üzerinde işlem yapmayı sağlayan metot ve özelliklere sahiptir.
DataReader nesnesinin bu özellik ve metotları aşağıda işlemleri yapar.
126
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Kayıt kümesi içindeki kayıtları tek tek okur.
Kaydın belirli bir kolonunu veya tüm kolonlarını okur.
Kolonların içinde değer olup olmadığını kontrol eder.
Kolonların şema bilgilerini okur. (ColumnName, ColumnOrdinal,ColumnSize, NumericPrecision,
NumericScale, Datatype,ProviderType, Islong, AllowDBNull)
Aşağıdaki şekilde sadece kod ile DataReader nesnesi tanımlanır
Dim DataReader_Adı As OleDbDataReader
DataReader metotları
Metot
Açıklama
Close
DataReader nesnesini kapatılır ve hafızadan kaldırır.
NextResult
Komut metninde birden fazla SELECT ifade varsa, sonuçlar bu metot
kullanılarak farklı veri kümeleri gibi alınabilir.
Read
DataReader nesnesinde okunacak kayıt olduğu sürece okuma yapar. Kayıt
varsa True, yoksa False değeri geri döndürür.
Command ile Sorgu Oluşturmak
Command ile veritabanı yapısında değişiklik yapılabilir (veri almak, eklemek, değiştirmek ve silmek.
OleDbCommand veya SqlCommandnesnesi ile bu tür işlemlerin yapılabilmesi için,
ExecuteNonQuerymetodu kullanılır.
ExecuteNonQuery metodu ile Select hariç SQL (Structured Query Language) ve TSQL (Transact
Structured Query Language) komutları kullanılır. SQL "Structured Query Language"
(YapılandırılmışSorgulama Dili) veritabanı sorgu dilidir. SQL ile veritabanına kayıt ekleme, silme,
varolan kaydı düzenleme ve kayıt sorgulama işlemleri yapılabilir. SQL standart bir veritabanı sorgu
dilidir ve Oracle, db2, Sybase, Informix, Microsoft SQL Server, MS Access gibi veritabanı yönetim
sistemlerinin temelini oluşturur. En sık kullanılan SQL komutları SELECT, INSERT, UPDATEve DELETE
komutlarıdır.
127
DML Komutu
Açıklama
SELECT
Veri seçmek
DELETE
Veri silmek
Hata! Tablo için geçersiz bir sonuç. 2010 2011
UPDATE
Veri güncellemek
INSERT
Veri girmek
SELECT ifadesi
Veritabanından bilgi seçmek için kullanılır.
Genel ifade:
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi WHERE Koşul ORDER BY
Sıralanacak_sütun [ASC/DESC]
Temel SELECT ifadesi:
SELECT * FROM Tablo_ismi
(*) ile tüm alanları seçer.
Belirli Sütunların seçilmesi:
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi
Koşullu olarak sütunların seçilmesi
SELECT Sütun_ismi1, Sütun_ismi2, Sütun_ismi3,… FROM Tablo_ismi WHERE Koşul
Satırları sıralamak için:
SELECT
Sütun_ismi1,
Sütun_ismi2,
Sıralanacak_sütun [ASC/DESC]
Sütun_ismi3,…
FROM
Tablo_ismi
ORDER
BY
INSERT ifadesi:
Veritabanına yeni kayıt eklemek için kullanılır.
INSERT INTO Tabo_ismi (Sütun_ismi1, Sütun_ismi 2,…) VALUES (Deger1, Deger2,…)
UPDATE ifadesi:
Veritabanına kayıt değiştirmek için kullanılır.
UPDATE Tabo_ismi SET (Sütun_ismi 1=Deger1, Sütun2= Deger2,…) WHERE koşul
DELETE ifadesi:
Veritabanından kayıt silmek için kullanılır.
DELETE FROM Tabo_ismi WHERE Koşul
128
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Command ile Kayıt Döndüren Sorgular
Çalıştırmak
DataReader kullanarak kayıt çekmek için aşağıdaki adımları takip edin.
1
2
3
4
5
6
7
8
Bağlanılacak veritabanına göre Connection nesnesi eklenir.
Bağlanılacak veritabanına göre OleDbCommand veya SqlCommand nesnesi eklenir ve
gerekli özellikleri ayarlanır.
Veritabanı bağlantısı açılır.
DataReader tanımlanır. Command nesnesinin ExecuteReader metodu ile çağrılan kayıtlar
DataReadernesnesine atanır.
DataReader nesnesinin Read metodu False oluncaya kadar, kayıtlar döngü ile okunur ve
form kontrollerine aktarılır.
Command nesnesi kapatılır (dispose)
DataReader kapatılır.
Veri tabanı bağlantısı kapatılır.
NOT: Eğer kayıt döndürmek istemiyorsak, Datareader nesnesini tanımlamya, Read ve Close
metodlarını çalıştırmaya gerek yoktur.
129
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Data ile Bağlantı Yapınız (Menü ile).
OleDBConnection nesnesi tanımlayınız (Toolbar
veya kod ile).
OleDBConnection nesnesinin ConnectionString
özelliği ile veritabanına bağlantı yapınız
(Properties penceresi veya kod ile).
OleDBCommand nesnesi tanımlayınız (Toolbar
veya kod ile).
OleDBCommand nesnesinin Connection
özelliğini OleDBConnection nesnesi olarak
belirleyiniz (Toolbar veya Kod ile.)
OleDBConnection nesnesinin Connection
özelliğini Open olarak belirleyiniz (Herbir
prosedür için ayrı ayrı yapılıcak ise kod ile).
OleDbCommand nesnesinin ConnectionString
Özelliğini Belirle!
130
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
SELECT-Veri seçmek
DELETE-Veri silmek
•SELECT Sütun_ismi1,
Sütun_ismi2,
Sütun_ismi3,… FROM
Tablo_ismi WHERE Koşul
ORDER BY
Sıralanacak_sütun
[ASC/DESC]
•DELETE FROM Tabo_ismi
WHERE Koşul
UPDATE-Veri
güncellemek
INSERT-Veri girmek
•UPDATE Tabo_ismi SET
(Sütun_ismi 1=Deger1,
Sütun2= Deger2,…)
WHERE koşul
•INSERT INTO Tabo_ismi
(Sütun_ismi1, Sütun_ismi
2,…) VALUES (Deger1,
Deger2,…)
Kayıt Döndürücek misin!
Evet
Hayır
OleDbDataReader nesnesi
tanımla! (Kod ile)
Command Nesnesi Dispose ile
son bulur.
Command nesnesinin ExecuteReader
metodu ile çağrılan kayıtlar DataReader
nesnesine ata
Connection kapatılır.
DataReader nesnesinin Read metodu
False oluncaya kadar, kayıtlar döngü ile
okunur ve form kontrollerine aktarılır.
DataReader kapatılır.
Command nesnesi Dispose ile son bulur.
Connection kapatılır.
131
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Örnek 1: Öğrenci not tablosu, öğrenci no bulma, öğrenci kayıt ekleme, silme, güncelleme
Örnek 2: İş başvuru formu, iş başvuru kayıt ekle, sil, güncelle, görüntüle.
Bağlantısız (Disconnected) Veri Ortamları
Bağlantısız veri ortamları, uygulamaların veritabanından bağımsız çalıştığı ortamlardır. Veritabanı
sunucusunun uzak olması, veri işlemlerinin uzun sürmesi ve mobil çalışma ihtiyacı, bağlantısız veri
ortamlarına olan ihtiyacı artırmıştır.
Bağlantısız veritabanı mimarisini öğrenecek,
DataAdapter nesnesinin yapısını tanıyacak,
DataSet nesne modelini öğrenecek,
DataTable nesne modelini öğrenecek,
Veri arama ve sıralama işlemlerini öğreneceksiniz.
Bağlantısız veri ortamı, uygulamanın veri kaynağına sürekli bağlı kalmadığı veri ortamıdır. Bu
modelde, veri kaynağının istenen bölümü çekilerek belleğe alınır. Veri üzerinde gerekli işlemler
gerçekleştirildikten sonra, veri kaynağına aktarılarak güncelleme yapılır.
132
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Sınıf
Açıklama
XXXDataAdapter
Connection, Command ve DataReader sınıflarını kullanarak, verilerin
DataSet„e doldurulmasını ve DataSet„te yapılan değişikliklerin
veritabanına kaydedilmesini sağlar.
Örneğin SqlDataAdaptersınıfı
etkileşimi sağlar.
XXXConnection
SQL
Server
ile
DataSetarasındaki
Bağlantı açmak ve kapatmak için kullanılan nesnedir.
Örneğin SqlConnectionSQL Server„a bağlantı sağlar.
XXXCommand
Veritabanı üzerinde Stored Procedure (Saklı Yordam) veya SQL
cümleleri çalıştırmak için kullanılan nesnedir.
Örneğin SqlCommandSQL Server üzerinde Stored Procedure veya SQL
cümleleri çalıştırmayı sağlar.
XXXDataReader
Veritabanından sadece okunur ve ileri hareketli kayıtlar çekmek için
kullanılır. Örneğin SqlDataReaderile SQL Server üzerinden kayıtlar
okunur. Kayıtlar SqlCommandnesnesinin ExecuteReader metodu ile
DataReader„a aktarılır.
DataAdapter Oluşturmak
DataAdapter, data kaynağı ile DataSet arasında duran bir mekanızmadır. SQLDataAdapter ve
OleDbDataAdapter olmak üzere 2 çeşittir. DataAdapter, seçme, güncelleme, silme ve kayıt ekleme
işlemlerini yapar. Bu yöntemler SelectCommand, UpdateCommand, InsertCommand ve
DeleteCommand özellikleri ile sağlanır.
133
Hata! Tablo için geçersiz bir sonuç. 2010 2011
XxxDataAdapter oluşturmak için aşağıdaki adımları takip ediniz:
Formunuzun Toolbox penceresinde, Data panelinden XxxDataAdapter bileşeninin formunuza
sürükleyin.
Karşımıza aşağıdaki gibi DataAdapter Configuration Wizard penceresi çıkıcaktır. Burada database
ile bağlantı yapılacaktır. Eğer daha önceden bir bağlantı yapılmış ise dropdownlist‟de yapılan
134
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
bağlantıyı görürsünüz aksi durumda boştur ve New Connection butonuna basarak yeni bağlantı
oluşturmak zorundasınız.
Data bağlantısını yaptıktan sonra Sorgu tipini belirleyeceğimiz ekran gelicektir. Burada SQL
komutunu veya yeni (varolan) bir prosedürü kullanabilirsiniz. İlk önce kullanmak için SQL
konutunu belirlemelisiniz. Buna göre aşağıdaki pencereyle karşılaşırsınız.
Database deki kayıtları çağırmak için SELECT komutunu kullanmamız gerekmektedir. (Bkz. SELECT
ifadesi). Ayrıca direk yazmak yerine “Query Builder” butonu bize yardımız olucaktır.
Öncelikle Advance Options butonuna basalım.
135
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Seçtiğimiz pencerede 3 seçenek vardır. Birincisi, Insert, Update ve Delete SQL ifadeleriniz SELECT
konutu ile oluşturulacağını söyler. Eğer veriler üzerinde silme, kaydetme veya güncelleme
işlemleri yapıcaksak bu seçeneğin tıklı olması gerekmektedir aksi durumda seçimi
kaldırmalısınız. 2. Seçenek olan Use optimistic concurrency seçeneği, UPDATE veDELETE
konutlarını gerçekleştir ve orijinal kayıtlara ulaşıldığında hiçbir kolonun değişmemesini sağlar
ve aynı zamanda birden fazla kullanıcının değişiklik yapmasını engeller. Son seçenek olan
Refresh Dataset ise UPDATE ve DELETE konutlarından sonra SELECT ifadesini çağırarak,
DataSet‟inizi günceller.
OK butonuna basarak bir önceki ekrana geri dönelim ve şimdi Query Builder butonuna basalım.
136
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
İstediğiniz tabloyu seçerek, burada görüntülenmesini istediğiniz kolonları belirleyin. Seçmiş
olduğumuz kolonlar SQL komutu ile aşağıdaki ekranda görünür.
137
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Finish butonu ile bağlantı işlemini yapmış oluruz.
Ve formumuza XxxDataAdapter1 nesnesi ile birlikte XxxConnection1 nesnesi de gelir.
138
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Kod Kullanarak
Dim conn As New OleDbConnection("provider = “ & _ “microsoft.jet.oledb.4.0; data
source=../stok.mdb")
Dim da As New OleDbDataAdapter("select * from “ & _
“kitaplar", conn)
DataSet ve DataTable Oluşturmak
Veri kaynağından DataAdapter ile çekilen verilerin çekirdek belleğe atılan kopyası DataSet içinde
saklanır. DataSet ile bu veriler üzerinde gerekli düzenlemeler yapıldıktan sonra, veriler aynı
DataAdapter ile veritabanına aktarılır.
DataSet„in temel özellikleri aşağıda listelenmiştir:
Veri sağlayıcı türünden bağımsız çalışır: DataSet tüm veri sağlayıcılarıile kullanılabilir. Tamamen
türden bağımsız çalışır.
Sürekli çevrimdışıdır: DataAdapter nesnesi ile veriler DataSet içine aktarılır ve bağlantı kapatılır.
Bağlantı kesildikten sonra yapılan tüm değişiklikler DataSet içine kaydedilir. Bu durum
uygulamanın çevrimdışıçalışmasınısağlar.
Değişikliklerin kaydını tutar: DataSet içinde yapılan tüm değişiklikler, DataAdapte rnesnesi ile
veri kaynağına aktarılır.
Birden fazla tablo bulundurabilir: İlişkisel veritabanlarında olduğu gibi, birden fazla tablo ve
ilişkileri hafızada tutmanın tek yolu DataSet kullanmaktır.
139
Hata! Tablo için geçersiz bir sonuç. 2010 2011
DataSet, sanal bir veritabanı yapısını temsil eder. DataTable nesnelerinden oluşur. Bu tablolar
arasında ilişkiler tanımlanabilir. DataSet„i oluşturan nesneler, DataTable, DataColumn, DataRow ve
DataRelation nesneleridir.
DataTable: Veritabanı tablolarını temsil eder. DataColumn, DataRow nesnelerinden oluşur.
Primary Key alanı tanımlanabilir.
DataColumn: DataTable nesnelerini oluşturmak için gereken kolonlarıtemsil eder.
DataRow: DataTablenesneleri için veri satırlarını temsil eder.
DataRelationship: Tablolar arasındaki ilişkileri temsil eder.
DataView: DataTable nesneleri üzerinde filtreleme, veri güncelleme leri işlemleri yapmak için
kullanılır.
Dataset oluşturmak için aşağıdaki adımları takip ediniz:
XxxDataAdapter1 kontrolünü üzerine sağ tuş tıklayıp Generate Dataset ifadesini seçin.
140
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Buradaki Configure Data Adapter seçeneği, bağlantınızı yeniden oluşturmanızı ve Preview Data
seçeneği ise verilerinizi göstermeyi sağlar. Eğer bunu seçerseniz aşağıdaki gibi bir ekran ile
karşılaşırsınız.
Generate DataSet seçeneğini seçtikten sonra yeni bir CustomerDataSet oluşturalım, adını
belirleyip, Add this dataset to designer seçeneğini işaretleyin. Bunu işaretlememiz durumunda
formun yüklenmesi ile datanız prejenize yüklenicektir.
141
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Ok butonuna bastığımızda formumuzda, CustomerDataSet.xsd XML şeması ile bağlantılı olan
CustomerDataSet1 kontrolü oluşucaktır.
Böylece formumuzda aşağıdaki gibi 3 bileşen bulunacaktır.
Kod Kullanarak
Örnekte ds isminde yeni bir DataSet, New anahtar sözcüğü tanımlanmaktadır. Tanımlamada
DataSet„e parametre olarak girilen YeniDataSet değeri, DataSet nesnesinin DataSetName
argümanıdır. Eğer hiçbir isim verilmezse varsayılan olarak NewDataSet ismi verilir.
Dim ds As New DataSet(“YeniDataSet”)
DataSet, diğer bir DataSet nesnesinden kopyalanarak oluşturulabilir. DataSet kopyalamak için iki
yöntem kullanılır. Birinci yöntem Copy metodu ile diğer bir DataSet nesnesinin, veri ve ilişkileri
(şema bilgileri) kopyalanarak yeni bir DataSet oluşturmaktır. İkinci yöntem Clone metodu ile diğer
bir DataSet nesnesinin şema bilgilerini kopyalanarak, yeni bir DataSet oluşturmaktır. Bu yöntem
şablon kopyalamak için kullanılır.
Örnekte ds ismindeki DataSet nesnesinin
DatasSetnesnesinin içine aktarılmıştır.
tüm
tablo,
ilişki
ve
verileri
dsCopyismindeki
Dim dsCopy As DataSet dsCopy = ds.Copy()
Örnekte ds ismindeki DataSet nesnesinin tüm tablo ve ilişkileri, dsClone ismindeki DataSetnesnesinin
içine aktarılmıştır.
Dim dsClone As DataSet dsClone = ds.Clone()
Örnekte Stok veritabanını içindeki tüm kitaplar, DataAdapter nesnesi ile DataSet„e aktarılmıştır.
142
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Dim conn As New OleDbConnection("provider = “ & _ “microsoft.jet.oledb.4.0; data
source=../stok.mdb")
Dim da As New OleDbDataAdapter("select * from “ & _
“kitaplar", conn)
Dim ds As New DataSet("set")
da.Fill(ds, "kitaplar") DataGrid1.DataSource = ds.Tables("kitaplar")
DataSet sınıfının Tables koleksiyonu ile DataSet içine bir veya birden çok DataTable eklenebilir.
DataSet sınıfının Relations koleksiyonu ile DataSet içine bir veya birden çok DataRelation
eklenebilir.
Örnekte dtKitaplarisminde yeni bir DataTableoluşturulmaktadır.
Dim dtKitaplar As New DataTable("kitaplar")
Oluşturulan tabloyu DataSet içine eklemek için DataSet nesnesinin Tables koleksiyonu kullanılır.
Ds.Tables.Add(dtKitaplar)
DataTable nesnesinin içine kolon eklenebilir. Örnekte dtKitaplar ismindeki DataTablenesnesinin
içine, yeniId isminde yeni bir kolon eklenmektedir. Yeni kolon eklemek için, DataTablenesnesinin
Columnskoleksiyonu kullanılır.
Dim colKitapId As DataColumn = dtKitaplar.Columns.Add("yeniId", GetType(System.Int32))
DataAdapter ile KayıtlarıDataset’e Doldurmak
DataAdapter sınıfı, DataSet ile veri kaynağı arasında köprü oluşturur. Veri kaynağına yapılan bağlantı
ile verilerin DataSet nesnesine aktarılmasını sağlar. DataAdapter ayrıca DataSet üzerinde yapılan
değişikliklerin veri kaynağına aktarılmasını sağlar.
XxxDbDataAdapter ile çekilen veriler Dataset nesnesine fill komutu ile aktarılır.
143
Hata! Tablo için geçersiz bir sonuç. 2010 2011
XxxDataAdapter_Name.fill (DatSet_Name)
Fill yöntemi bir tamsayı sonucu verir ve bu sayı DatSet‟te mevcut olan kayıtların sayısıdır.
DataSet Nesnesini Kontrollere Bağlamak
DataSet nesnesi ile veritabanının bir kopyası çekirdek belleğe atıldıktan sonra, bu veriler çeşitli
Windows kontrolleri ile gösterilebilir veya değiştirilebilir. Bu kontrollerin en önemlisi DataGrid
bileşenidir.
DataSet nesnesin içerdiği veri, Windows Form içindeki herhangi bir kontrolün herhangi bir özelliğine
bağlanabilir. Örneğin DataSet içindeki bir tablonun ilk satır ve sütunundaki veri, TextBoxkontrolünün
Textözelliğine bağlanabilir.
144
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
DataSet içindeki veriyi Windows kontrollere bağlamanın iki yöntemi vardır. Bu yöntemler basit
(simple data binding) ve karmaşık (complex data binding) veri bağlama olarak adlandırılır.
Basit veri bağlama; DataSet içindeki bir veri elemanını (DataTable kolonunu) Windows kontrollere
bağlama işlemidir. TextBox, Label, RadioButton gibi kontroller bu gruba girer. Örneğin, DataSet
tablosundaki herhangi bir kolonu TextBox, Labelgibi Windows kontrollere bağlamak.
Karmaşık veri bağlama; DataSet içindeki birden fazla veri elamanını Windows kontrollerine bağlama
işlemidir. DataGrid, ListBox, ErrorProvider gibi kontroller bu gruba girer.
Basit Bağlantı - CheckBox için: (diğerleri için de benzer şekilde herçekleşir.)
CheckBox‟ın DataBindings.Checked özelliğini, varolan DataSetteki tablonun kolonu ile bağlayın.
Textbox için ise Text kısmını bağlamanız gerekmektedir.
Karmaşık Bağlantı – Listbox için (diğerleri içinde aynıdır!)
ListBox‟ın DataSource özelliğinden DatSet i seçiniz. Ve DisplayMember özelliğini, Listbox‟ın
içerisinde görünmesi gereken kolon olarak belirleyin.
145
Hata! Tablo için geçersiz bir sonuç. 2010 2011
Kod Kullanarak
ComboBox ve ListBox gibi kontrollere veri bağlamak için DataSource ve DataMember özelliği
kullanılır. DataSouce özelliği DataSet içindeki tablo ismini, DisplayMember ise tablo kolonunu
belirtir.
Örnekte, ComboBox
kullanılmaktadır.
ve
ListBox
kontrolünün
DataSource
ve
DisplayMember
özellikleri
ComboBox1.DataSource = ds.Tables("kitaplar") „ds DataSetin adı!
ComboBox1.DisplayMember = _ ds.Tables("kitaplar").Columns("kitap_baslik").ToString
ListBox1.DataSource = ds.Tables("kitaplar")
ListBox1.DisplayMember = _ ds.Tables("kitaplar").Columns("kitap_baslik").ToString
Bir diğer özelliği de DataBinding.Add yöntemidir.
TextBox1.DataBindings.Add("Text", CustomerDataSet1, "Customers.Address")
146
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
DataSet içindeki veriyi DataGridView’e Bağlamak
DataGridView, veriyi satırlar ve sütunlar halinde görüntüler. DataGridView ile ilişkisiz DataSet
tabloları kolay bir şekilde görüntülenebilir. Bu görüntü Excel tablolarına benzer.
DataGridView ilişkili DataSet tabloları da gösterebilir. Bu durumda istenilen tabloya DataGridView
üzerindeki gezinti köprülerinden erişilebilir. DataSet tablolarını DataGridView kontrolüne bağlamak
için iki yöntem kullanılır. Bu yöntemler grafiksel ve programlama yöntemleridir.
Grafiksel yöntem ile bağlantısağlamak için aşağıdaki adımlarıtakip edin.
1
Araç kutusu üzerindeki DataGridView kontrolünü form üzerine sürükleyin.
2
DataGridView kontrolünün DataSource özelliğini, önceden oluşturulmuş DataSetnesnesine
bağlayın.
3
DataGridView kontrolünün DataMember özelliğini, DataSet tablolarının herhangi biri ile
bağlayın.
Programlama yöntemi ile bağlantı sağlamak için DataGridView nesnesinin DataSource özelliği
kullanılır. Örnekte, DataSet içindeki Kitaplar tablosu DataGridView kontrolüne bağlanır.
DataGridView1.DataSource = ds.Tables("Kitaplar")
147
Hata! Tablo için geçersiz bir sonuç. 2010 2011
DataTable Üzerine Yeni Veri Eklemek
DataTable, veritabanı tablolarını temsil eder. DataColumn, DataRow nesnelerinden oluşur. DataSet
içinde yeni bir DataTable oluşturduktan sonra, veritabanı üzerinde işlem yapıyormuş gibi veri
üzerinde düzenlemeler yapılabilir. DataTable, bu çevrimdışı düzenlemeleri kabul veya iptal etme
olanağı sunar.
DataTable nesnesine, yeni bir satır eklemek için DataRow nesnesi kullanılır. DataTable nesnesinin
NewRow metodu ile oluşturulan yeni satır, DataRow nesnesinin değişkenine atanır.
Örnekte, dtKitaplar tablosuna drNew isminde yeni bir kolon eklenmiştir.
148
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
Dim drNew As DataRow = dtKitaplar.NewRow()
DataRownesnesi tanımlandıktan sonra, index veya kolon isimleri üzerinden kolonlara değer girilir.
Örnekte birinci kolona kitabın ISBN numarası, ikinci kolona ise yazar adi bilgileri girilmiştir.
drNew(0) = “9758725149”
drNew(1) = “Tamer Şahiner”
veya
drNew(“kitap_ISBN”) = “9758725149”
drNew(“kitap_yazar”) = “Tamer Şahiner”
Kolanlara bilgi girildikten sonra, tanımlanan DataRow nesnesi DataTable nesnesinin Rows
koleksiyonuna eklenir.
Örnekte drNew nesnesi, dtKitaplar nesnesinin Rows koleksiyonuna eklenir.
dtKitaplar.Rows.Add(drNew)
DataTable nesnesine DataRow kullanmadan kayıt
DataTablenesnesine bu yöntem ile kayıt eklenmiştir.
eklenebilir.
Örnekte
dtKitaplarismindeki
dtKitaplar.Rows.Add(New Object() {“9758725149”, “Tamer Şahiner”})
DataTable Üzerindeki Veriyi Düzenlemek
DataRow ile DataTable içindeki kayıtlar değiştirilebilir. DataRow nesnesi ile satır düzenleme
işlemleri için aşağıdaki metotlar kullanılır.
BeginEdit
EndEdit
CancelEdit
149
Hata! Tablo için geçersiz bir sonuç. 2010 2011
BeginEdit, veriyi düzenlerken oluşabilecek olayları askıya alır. Veriyi düzenlemek için Items
koleksiyonu kullanılır. EndEdit metodu ile, askıya alınan olaylar yeniden aktif edilir. CancelEdit
metodu ile değişikliklerden ve askıya alınan olaylardan vazgeçilir.
Örnekte, DataTable içindeki dördüncü kayıt için güncelleme işlemi yapılmıştır.
Dim drNew As DataRow = dtKitaplar.Rows(3)
drNew.BeginEdit()
drNew("kitap_baslik") = "yeni hayat"
drNew("kitap_yazar") = "can dündar"
drNew.EndEdit()
DataRow ile DataTable içindeki belirli bir satır silinebilir. Örnekte, DataTable içindeki dördüncü
kayıt silinmiştir.
Dim drSil As DataRow = dtKitaplar.Rows(3) dtKitaplar.Rows.Remove(drSil)
DataRownesnesinin Deletemetodu kullanılarak aktif kayıt silinebilir.
DrSil.Delete()
Windows Form ile Kayıt Üzerinde Hareket Sağlamak
Verileri düzenlemeden önce, hangi veri üzerinde düzenleme yapılacağının tespit edilmesi gerekir.
Windows Form uygulamaları, veri içinde hareket sağlanan nesneler ile verilerin bağlı olduğu katmanı
yönetebilir. Bunun için gerekli olan komut:
BindingContext(DatSet_Name, “Table_Name”). Position = …
Veri Arama ve Sıralama
150
Hata! Tablo
sonuç.
için
geçersiz
bir
2010 2011
DataSet içinde veri arama ve sıralama işlemleri yapmak için, DataTable sınıfının arama ve sıralama
metotlarıkullanılır. DataTable sınıfının Find metodu, birincil anahtar değerine göre arama
yapılmasını sağlar. Select metodu ise, belirli bir arama kriterine göre arama yapılmasınısağlar.
Selectmetodu ile geriye satır koleksiyonları döndürülür.
Örnekte DataTable sınıfının Find metodu ile kitap barkod numarasına göre arama yapılır. Bu
aramanın sonucunda yazar adı geriye döndürülür.
Dim conn As New OleDbConnection("provider
source=c:\Proje\stok.mdb")
="
&
_
“microsoft.jet.oledb.4.0;data
Dim da As New OleDbDataAdapter("select * from" & _ "kitaplar",conn)
Dim tbl As New DataTable
da.Fill(tbl)
tbl.PrimaryKey = _ New DataColumn(){tbl.Columns("kitap_ISBN")}
Dim row As DataRow = tbl.Rows.Find("97512533")
If row Is Nothing Then
MessageBox.Show("Kayıt Bulunamadı!")
Else
MessageBox.Show(row("kitap_yazar"))
End If
Örnekte Tbl ismindeki DataTable nesnesine, DataAdapter nesnesinden gelen kayıtlar doldurulur. Tbl
tablosunun Kitap_ISBN kolonu birincil anahtar olarak atanır. Row isminde yeni bir DataRow
tanımlanır. DataTable nesnesinin Find metoduna kitabın barkod numarasıgirilir ve sonuç Row
değişkenine aktarılır. Son olarak Rowdeğişkeni içindeki sonuç ekrana yazılır.
Arama işlemlerinde özel karakter kullanılabilir. Örneğin yazar ismi ”E„ harfi ile başlayan
kayıtlarısorgulamak için aşağıdaki komut kullanılır.
Select * from kitaplar Where kitap_yazar Like 'E%'
DataTable sınıfının Select metodu ile DataRow nesnelerinden oluşan bir koleksiyon geri döndürür.
Select metodu aslında orijinal DataSet içindeki satırları işaret eden işaretçiler kümesi olarak da
algılanabilir. Veri kopyalama yapmaz, ancak değişimleri görüntüler.
Örnekte, DataTable sınıfının Select metodu kullanılarak kitap fiyatı sekizden farklıkayıtlar
gösterilmektedir. Bu kayıtlar kitap isimlerine göre sıralanmıştır.
Dim selRows As DataRow() = tbl.Select("kitap_fiyat
DataViewRowState.CurrentRows) Dim row As DataRow
<>
For Each row In selRows
DataRowVersion.Original)) Next
"
MessageBox.Show("kitap:
8",
&
_
_
"kitap_baslik
row("kitap_baslik",
Select metodunun dört farklı kullanımı vardır. Bu kullanımlar aşağıda listelenmiştir.
public DataRow() Select()
151
ASC",
Hata! Tablo için geçersiz bir sonuç. 2010 2011
public DataRow() Select(filterExpression as string)
public DataRow() Select(filterExpression as string, _ sort as string)
public DataRow() Select(filterExpression as string, _ sort as string, _ recordStates as
DataViewRowState)
Select metodunun filterExpression, Sortve recordStatesisminde üç parametresi bulunur.
filterExpression, filtreleme yapılacak ifadeyi içerir.
"Country = „Turkey' AND City <> 'Ankara'"
Sort, sonuçların hangi sırada görüntüleneceğini belirtir.
“City DESC”
Veriler artan ve azalan olmak üzere iki şekilde sıralanabilir. Sıralanacak kolonun sonuna; azalan
sıralama için DESC, artan sıralama için ASC anahtar sözcüğü yazılır.
recordStates
ise,
kayıtların
durumuna
göre,
(Deleted,
Modified
gibi)
seçim
yapar.
152
SETUP
2010 2011
Bölüm 9. SETUP
1) File/Add Project kısmından New Project seçeneğini işaretleyelim. Gelen ekrandan Project
Types kısmından Setup and Deploymeııt Projects klasörünü seçtikten sonra, Templates
bölümünden Setup Project seçerek ismine “pec” yazıp, OK butonuna basalım. Kaydettiğiniz
yeri unutmayınız çünkü Setup için gerekli dosyalar buraya kopyalanacaktır.
2) Ekran görüntüsü, aşağıdaki gibi olacaktır. Burada programın kurulacağı yer ile ilgili ayarlar
Application Folder kısmından yapılır.
3) ApplicationFolder'ın özelliklerinde bulunan DefauItLocation ile kurulum yapıldığında,
kurulum dosyalarının nerede olacağını belirleyebiliriz. Biz ProgramFiles klasörü içinde
olmasını istediğimiz için, şekildeki gibi değişiklik yaptık.
153
Bilgisayara Giriş
2010 2011
4) ApplicationFolder üzerine sağ tuşa basarak Add File seçeneğinden Setup‟ı oluşturacak
projenin bulunduğu yere gidelim, Bin klaösrü içindeki .exe uzantılı dosyayı seçelim. Örnekte
setuplar.exe olarak alınmıştır.
5) Yine ApplicationFoIder üzerinde sağ tuşa basarak Add/Project Outpııl seçeneğine tıklayarak,
gelen ekrandan exe ve dll'leri kapsayan Primary Output'u seçip, OK butonuna basalım.
154
SETUP
2010 2011
6) UserPrograms menü üzerine sağ tuşa basığ Add Folder‟ı seçiniz. İsmine “pec” yazınız. Sonra
“pec” klasörü seçili iken bölmenin sağ kısmına geçerek, Create New Shortcut seçeneğine
tıklayınız. Bunun sonucunda aşağıdaki ekran karşımıza gelir.
7) Yukarıdaki şekil üzerinde Application Folder üzerine iki kez tıklayarak daha önce
eklettiğimiz "setuplar.exe" dosyasını seçip, OK butonuna basalım.
155
Bilgisayara Giriş
2010 2011
8) Eklenen kısayolun ismini "prestigeturk" olarak değiştirelim. Böylelikle program kurulunca
Start/Programs seçeneği içinde "pec" isimli bir klasör ve içinde programı çalıştırmak için"
prestig"e isimli bir kısayol oluşacaktır.
9) Programı kurunca, masaüstüne de kısayolunun gelmesi için User's Desktop klasörü seçili iken
bölmenin sağ kısmına geçerek, Create New Shortcut seçeneğine tıklayınız. Yine dosyamızı
seçerek, ismini "prestige" yapalım.
10) Bu kısayollara kısayol oluşturmak için ilk önce ApplicationFolder üzerinde sağ tuşa basarak
Add/File seçeneğini kullanıp, istediğiniz yerden bir Icoıı getiriniz. Ardından "prestige"
kısayolunun özelliklerinden Icon seçeneğinden, Browse alt seçeneğine tıklayarak,
ApplicationFolder içinden ekletmiş olduğunuz Icon'u seçiniz.
156
SETUP
2010 2011
11) Setup projemize "pec" Setup projemizi seçerek, Properties penceresine geçelim. Bu kısımda
kurulan program hakkında çeşitli bilgiler verebiliriz. Programı açıklayıcı bilgiyi Description
hakkında bilgiyi Manufacturer destek bilgilerini Support kısımlarına yazabiliriz.
Programı kuran kişi bu bilgileri Control Panel içindeki Add/ Remove Programs kısmından
görebilir.
12) "pec" isimli Setup projenizin üzerinde sağ tuşa basarak View seçeneğine tıklarsanız, diğer
görünümlerin listesi ile karşılaşırsınız. Bu listeden ekranının ayarlan için Userlnterface
seçeneğine tıkladığımızda görüntü aşağıdaki gibi olacaktır:
157
Bilgisayara Giriş
2010 2011
13) Bir önceki adımda gelen ekrandan Start seçeneğinin altında bulunan Welcome alt
seçeneğinin Properties penceresini aşağıdaki gibi yapılandıralım;
14) Bir Setup'da olması gerekenleri aşağı yukarı koyduktan sonra, Build menüsünden Build pec
seçeneği ile derleyelim. Bir hata ile karşılaşmadığınızı bildiren sağ alt köşedeki Build
succeeded yazısı ile karşılaşırsanız, işlem tamamdır. Artık, projelerinizi tamamen
kapatabilirsiniz.
15) Setup projesini kaydettiğiniz "pec" klasörünü açıp, Debug klasörüne geçtiğinizde aşağıdaki
şekilde "pec.msi"dosyasını görebilirsiniz.
16) Şimdi adım adım kurulumu gerçekleştirmek için, "pecmsi" dosyası nu tıklayalım.
17) İlk olarak karşımıza gelen görüntü, aşağıdaki gibidir. Next butonıı ile devam edelim.
18) Belirlediğimiz kurulum yeri, burada görünmektedir. İstenirse Browse değiştirilebilir. Devam
için Next butonuna basalım.
158
SETUP
2010 2011
19) Tekrar Next butonuna basınca kurulum başlayacaktır ve kurulum tamamlanınca, aşağıdaki
bilgi ekranı karşımıza çıkacaktır. İşlemi sonlandırmak için Close butonuna basmamız yeterli
olacaktır.
20) Şimdi de kurulum sonuçlarını incelemek için ilk olarak ProgramFiles klasörü içindeki "Pec"
klasörünü açalım ve gerekli dosyalann burada yer aldığını, şekildeki gibi gözlemleyelim
159
Bilgisayara Giriş
2010 2011
21) Hem masaüstünde, hem de Start menüsündeki Programs grubu içinde oluşan "pec" klasörü
içinde "prestige" kısayolunu görebiliriz.
22) Bunlardan herhangi birine tıkladığımız zaman, programımız çalışacaktır .Bu programm
çalışacağı bilgisayarda sadece Framework 1.1'in kurulu olması yeterlidir.
23) Son olarak program ile ilgili bilgileri bulmak için Control Panel içinde bulunan Add or
Remove Programs seçeneğine tıkladığımızda, programın listede yerini aldığını göreceksiniz.
Buradan isterseniz Remove ile kaldırabilrsiniz.
24) Program ile ilgili bilgileri öğrenmek içinse ortadaki Click here for support information
Link'ine tıklamanız yeterlidir. Bunun sonucunda Setup yapılandınlması sırasında
kazandırdığınız özellikler, şekildeki gibi görüntülenecektir:
160

Benzer belgeler