G03

Transkript

G03
VISUAL BASIC
Visual Studio Ürünleri
Microsoft firmasının ürünü olan Visual Studio, aşağıdaki paketlerden oluşmaktadır. İlk iki
paket ücretlidir, üçüncü paket ilk iki pakete göre bazı kısıtlamalara sahiptir fakat kayıt
(register) olmak şartıyla ücretsiz olarak indirilip kullanılabilmektedir (bir MSN hesabına sahip
iseniz, msn kullanıcı ismi ve şifreniz ile Visual Studio Express Edition sürümüne kayıt
olabilirsiniz, aksi halde bu ürünü kısıtlı bir sürede kullanabilirsiniz).
Visual Studio 2005 Professional Edition
Visual Studio 2005 Standard Edition
Visual Studio 2005 Express Edition:
Not1: Ücretsiz olarak indirilip kurulabildiğinden, bundan sonraki anlatımlar Visual Basic
Express Edition esas alınarak yapılacaktır.
Not2: Express Editon ile oluşturulan programlar Professional ve Standart Edition
sürümlerinde problemsiz çalışabilmektedir.
Not3: Şu anda Visual Studio 2010 sürümü kullanımdadır. Anlatacaklarımız açısından 2005
sürümü ile 2010 sürümü arasında herhangi bir fark bulunmamaktadır. Bundan sonra
anlatılacaklar 2005 sürümü üzerinde yapılacaktır fakat anlatılanların hepsi 2010 sürümünde
de problemsiz kullanılabilir.
Visual Studio 2005 Express ürünleri, öğrencilerin, hobi olarak bu işi yapanların ve sektöre
yeni girenlerin Microsoft.NET Framework üzerinde programlamayı öğrenebilmeleri için
geliştirilmiştir. Express Edition, Windows programları ve dinamik web siteleri yapabilmek için,
diğer Visual Studio ürünlerine göre kullanımı kolay olan (kısıtlı) araçları üzerinde
bulundurmaktadır.
-1-
♦ Web ortamı
ƒ
Visual Web Developer 2005 Express Edition: Bu sürüm, yalnızca
web uygulamaları üzerine yoğunlaşmış olup Asp.NET ile birlikte
Visual Basic, C#, veya J# dillerinden birini kullanabilirsiniz.
♦ Veritabanı
ƒ
SQL Server 2005 Express Edition: Bu sürüm ile, başlangıç
düzeyinde veritabanı uygulamaları geliştirebilirsiniz.
♦ Windows ortamı: Aşağıdaki programlama dillerinden herbiri, windows form
uygulamaları (Windows ortamında çalışacak programlar) geliştirmek için
kullanılabilirler.
ƒ
Visual Basic 2005 Express Edition
ƒ
Visual C# 2005 Express Edition
ƒ
Visual C++ 2005 Express Edition
ƒ
Visual J# 2005 Express Edition (Java Programlama Dili)
.NET Framework Nedir?
Bir çok uygulama geliştirme dili ve bu dillerle
yazılmış uygulamaları çalıştırmak için ise farklı
platformlar vardır. .net Framework, windows
tabanlı uygulamalar geliştirebilmek için farklı
programlama
dillerinin
birlikte
çalışabileceği
ortak bir geliştirme ortamıdır. Bu ortam hem
yazılımları geliştirmek hem de çalıştırmak için gereklidir. .net Framework bileşen yönelimli
uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlamaktadır. Bu
sayede; farklı programlama dilleri, farklı işletim sistemleri ile çalışabilme özelliğine sahiptir.
.net Framework aşağıdaki bileşenlerden oluşur:
The
Common
Language
Runtime
(CLR), Ortak
Dil
Çalışma
Zamanı:
Uygulamaların çalışabilmesi ve yönetilmesine yardımcı olan, dilden bağımsız bir
yazılım geliştirme ve çalışma ortamıdır. Programların çalışmasını idare eden,
programların taşınabilirliğini sağlayan, aynı zamanda diğer avantajlarının dışında
karışık dilde programlamayı destekleyen ve güvenliği sağlayan parçadır.
-2-
The Framework Class Libraries (FCL), Framework sınıf kütüphaneleri:
Framework çatısı altındaki dillerin ortak kullanabilecekleri kütüphaneleri barındırır.
.net Framework Özellikleri
Standart ağ protokollerine ve standartlarına destek: TCP/IP, SOAP, XML, HTTP
gibi standart internet protokolleri ve standartlarına destek verir.
Farklı programlama dillerine destek: Programcılara istedikleri dilde geliştirme
özgürlüğü sunan .net bünyesinde bir çok programlama dilini barındırır.
Farklı dillerde geliştirilen programlama kütüphanelerine destek: .net Framework,
farklı
dillerde
oluşturulmuş
programlama
dillerinde
oluşturulmuş
program
kütüphanelerine destek verir. Kütüphaneler uygulama geliştirmeyi kolaylaştıran bir
kere yazılmış bir program parçasını tekrar tekrar yazmaktan kurtaran yapılardır.
Farklı platformlara destek: .net Framework bütün windows platformları için
mevcuttur. Farklı bilgi işlem platformlarından insanları, sistemleri ve cihazları
birbirine bağlar. Meselâ, Windows XP gibi bir masaüstü platformunu kullanan
insanlar veya Windows CE kullanan gezgin bir platformu kullanan insanlar
Windows 2003 Server gibi bir sunucu sistemine bağlanabilir.
Visual Basic (VB) 2005 Express Edition (VBEE)
Visual Basic 2005 Express Edition bir programlama arabirimidir. Kullanıcılar için arayüz
geliştirme, kod yazma, yazılan kodun hatalarını ayıklama, derleme vb. fonksiyonlarıyla
yazılımcıların çözüm geliştirmelerini sağlar ve Visual Studio 2005 üzerinde çalışır.
Profesyonel programcıların program geliştirme yöntemi olarak kullandıkları Nesne Yönelimli
Programlamayı tam olarak destekleyen Visual Basic 2005, profesyonel uygulamalar
geliştirmek için kullanılan bir dildir. VBEE de bu dilin tüm özelliklerini destekler. Diğer taraftan
sihirbazlar, sürükle-bırak, hazır programcıklar ve akıllı etiketler sayesinde çok kısa zamanda,
çok daha az kod yazarak başarımı yüksek uygulamalar geliştirmeye zemin sağlar.
VB 2008 Express Edition, Microsoft firmasının,
http://www.microsoft.com/express/vb/default.aspx
internet adresinden şimdilik ücretsiz olarak indirilebilmektedir.
-3-
İndirilen dosyanın içinde;
− VB 2008 Express Edition,
− .Net Framework 3.5,
− MSDN Express Library 2008,
− Microsoft SQL Server 2008 Express Edition bulunmaktadır.
Bu programların istenirse hepsi aynı anda bilgisayarınıza kurulabileceği gibi, sadece bir veya
birkaçı da, o anda veya daha sonra kurulabilir.
VBEE’ı çalıştırabilmek için bilgisayarınızda bulunması gereken asgari şartlar şunlardır:
İşlemci: 600 MHz veya daha hızlı (Tavsiye edilen: 1 GHz veya daha hızlı).
RAM: Minimum: 192 MB (Tavsiye edilen: 256 MB, eğer VBEE ile birlikte SQL Express
yüklendiyse, 512 MB veya daha fazlası).
Hard Disk: Sabit diskinizde en az 500 MB. Boş yeriniz olmalı.
Tam kurulum: VBEE kurulum programının tamamını (VB 2008 Express Edition, .Net
Framework 3.5, MSDN Express Library 2008, Microsoft SQL Server 2008 Express Edition)
bilgisayarınıza yüklemek isterseniz, sabit diskinizde 1.3 GB. Boş alana ihtiyacınız olacaktır.
Uyarılar :
VBEE’nin
bilgisayarınızda
çalışabilmesi
için,
.NET
Framework
3.5
bilgisayarınıza kurulu olmalıdır.
VBEE Hakkında Temel Bilgiler
Event (Olay): VB Olay Sürümlü (Event-Driven) bir programlama dilidir. VB’de Olay için
tıklama, yazı kutusuna bir harf yazma örnekleri verilebilir. Olay Sürümlü ifadesi, olay işlemi
olmadan Windows’un hiçbirşey yapmadan kullanıcıyı beklemesi anlamındadır.
Proje: VBEE programının kodları (program satırları), formları, kontrolleri, nesneleri, yardımcı
program parçaları vbg. olan bütün bileşenleridir. Yani bir VB programından bahsederken
aslında bir VB projesinden bahsetmiş oluyoruz.
-4-
Bir projede bulunabilecek dosyalar ve uzantılarının anlamları
Dosya İsmi.uzantısı
Dosyanın anlamı
Solution İsmi.sln
Solution dosyası
Solution İsmi.suo
Solution seçimlik dosyası
Proje İsmi.vbproj
Proje dosyası – Çözümdeki her bir proje için bir tane
Proje İsmi.vbproj.user Bir başka proje dosyası – Çözümdeki her bir proje
için bir tane
Form İsmi.Designer.vb Form designer dosyası – her bir form için bir tane
Form İsmi.vb
Formu
oluşturan
program
satırları-kod
satırları
dosyası – her bir form için bir tane
Form İsmi.resx
Form kaynakları dosyası – her bir form için bir tane
VBEE’nin çalıştırılması
Eğer VBEE kurulumunuzu problemsiz bir şekilde gerçekleştirdiyseniz;
Başlat-Programlar-Microsoft Visual Basic 2005 Express Edition
yolunu takip ederek VBEE’yi çalıştırabilirsiniz. Sonradan açılış ile ilgili bazı değişiklikler
yapmadıysanız (bu işlemi; VBEE editörüne girdiğinizde, Tools-Options (bu pencerede en
alttaki
“Show
all
settings”
seçili
olmalı)-Environment-Startup-At
startup
değiştirebilirsiniz) büyük bir ihtimalle aşağıdaki açılış ekranı ile karşılaşırsınız.
-5-
yolu
ile
Bu ekrandaki;
“Recent Projects” pencerindeki
“Open” ifadesinin yanındaki “Project” seçeneği; daha önce üzerinde çalıştığınız bir VBEE
projesini tekrar açmak için kullanılır.
“Create” ifadesinin yanındaki “Project” seçeneği; ilk defa oluşturacağınız (başlayacağınız)
bir VBEE projesini açmak için kullanılır.
Diğer pencerelerde, VBEE ile ilgili son haberler, yeni kullanıcılar için yardım bölümleri vbg.
Linkler bulunmaktadır.
Yeni bir projeyi başlatma
Açılış ekranından “Create Project” seçeneği tercih edilirse, aşağıdaki açılış ekranı ile
karşılaşılır.
Windows Applications: Bu derste Windows Uygulamaları üzerinde çalışılacağından,
Tempalates kısmından “Windows Applications” seçeneği tercih edilmeli ve pencerenin
altındaki “Name” kutusunda (istenirse) projeye bir isim verilmelidir (projeye isim verme
işlemini bu pencerede yapmak zorunda değilsiniz, isterseniz sonraki adımlarda da bu işlemi
gerçekleştirebilirsiniz).
-6-
VBEE Çalışma Ortamı
Çalışma ortamında üç halde bulunabilirsiniz;
1-Design modu: projenizi geliştirme, tasarlama durumunda çalıştığınız ortamdır (aşağıdaki
ekran görüntüsündeki; Form1.vb [Design] sekmesine dikkat edin, bu ifade kullanıcının şu
anda tasarım (design) durumunda olduğunu göstermektedir).
2-Run modu: tasarladığınız projeyi çalıştırdığınız durumdur.
3-Debug modu: projenizi çalıştırma sırasında, sonlandırmadan (proje sonlanmadan)
hataları ayıklamak (bulmak) için bulunulan durumdur (projenizin sonlanmadan hangi satırda
duracağını siz belirlersiniz, bu durum projenizden uygun değerleri elde edemediğiniz
durumlarda ve özellikle “programın hangi aşamasında hangi değerler elde ediliyor” sorusu
için çok kullanışlıdır).
Form Penceresi: Projemizi tasarladığımız penceredir (nesne-kontrol-obje’dir), dolayısıyla
projeyi oluşturan nesneleri üzerinde bulundurur. Aksi belirtilmediği sürece projemizi
çalıştırdığımızda karşımıza gelecek ilk ekrandır. Bundan dolayı bu pencerenin üzerine
-7-
yerleştirilenler aynı zamanda başlangıç görüntümüz olur. Form penceresine, ekranın
sağındaki “Solution Explorer” penceresindeki Form1.vb ifadesine tıklanarak da ulaşılabilir.
Toolbox Penceresi: Projemizi tasarlarken kullanabileceğimiz nesneleri üzerinde bulunduran
penceredir. Toolbox üzerinde bulunan nesneler form penceresine taşınarak projeler
oluşturulur. Yeri gelmişken şunu da belirtelim; Nesne-Obje- Kontrol ifadeleri VBEE’de
benzer
ifadelerdir
ve
VBEE
nesne
yönelimli
(object-oriented
language)
bir
programlama dilidir.
Properties Penceresi:
Form penceresine taşınan nesnelerin özelliklerini ve olaylarını
(event) üzerinde bulunduran penceredir. Bu pencere sayesinde projemizde kullanacağımız
nesnelerin; boyutları, rengi, üzerinde bulunmasını istediğimiz yazı, büyüklüğü, resmi vbg.
özelliklerini değiştirebiliriz ve sözkonusu nesnenin hangi olaylarının kullanılabilir olduğu ve
hangilerinin kullanıldığını Properties penceresi sayesinde görebiliriz.
Solution Explorer: Projeyi oluşturan bütün program parçalarını üzerinde bulunduran ve bu
programlara istediğimiz anda ulaşmamızı sağlayan penceredir. Projede kaç tane form,
module, sınıf vs. kullanılmış, bu pencere sayesinde öğrenebiliriz.
En sık kullanılan nesneler
-8-
Toollar (aletler) Visual Basic'in solunda bulunan ToolBox'in üzerindeki elemanlardır.
Pointer (İmleç): Form üzerine yerleştirilmiş kontrol nesnelerini seçmek, yerini ve
boyutunu değiştirmek için kullanılır.
Button (Komut Düğmesi): Programın belirli bir işi yerine getirmesi için onaylama
düğmesidir.
CheckBox (Onay Kutusu): Birden fazla seçeneğin olduğu ve bu birden fazla seçeneğin
de aynı anda seçilebildiği durumlarda kullanılabilir.
RadioButton (Seçenek Düğmesi): Birden fazla seçeneğin olduğu fakat sadece bir
tanesinin seçilebildiği durumlarda kullanılır.
ComboBox (Kombine Kutu): Yerden tasarruf etmek amacıyla, birden fazla seçeneğin
açılır bir metin kutusunda toplandığı durumlarda kullanılır. Birden fazla seçeneğin olduğu
bütün uygulamalarda kullanılabilir.
ListBox (Liste Kutusu): ComboBox nesnesine benzer, tek farkı seçeneklerin bu nesne
içinde bir veya birden fazla satırlık alanda listelenebilmesidir.
Label (Etiket): Diğer nesneleri tamamlayıcı (tanımlayıcı) ifadeleri form üzerinde
tanımlayabilmek (yazabilmek) için kullanılır.
PictureBox (Resim Kutusu): Form üzerinde resim gösterebilmek için kullanılır.
TextBox (Yazı Kutusu): Metin ifadelerin ekranda gösterilmesi için kullanılır. Örneğin;
programın çalışması sırasında elde edilen bir sonucun gösterilmesi, program içinde
kullanılacak bilinmeyenlerin sordurulması gibi durumlar için uygundur.
HORIZONTAL SCROLL BAR (Yatay Hareket Çubuğu): Veri girişi için kullanılır.
-9-
VERTICAL SCROLL BAR (Düşey Hareket Çubuğu): Veri girişi için kullanılır.
TIMER (Zamanlayıcı): Formun çalıştığı sırada, zamana bağlı olarak belirli aralıklarla,
eylemlerin gerçekleşmesini denetler.
DRIVE LIST BOX (Sürücü Listeleme Kutusu): Geçerli sürücülerin bir listesini
göstermeye yarar. Aynı zamanda sürücüler arası geçiş için kullanılır.
DIRECTORY LIST BOX (Dizin Listeleme Kutusu): Sürücülerin içerisindeki dizinleri
(klasörleri) görüntüler.
FILE LIST BOX (Dosya Listeleme kutusu): Bir dizin (Klasör) içindeki tüm dosyaları
listeler.
SHAPE (Sekil): Form üzerine geometrik şekiller çizmek için kullanılır.
LINE (Çizgi): Form üzerine çizgi çizmek için kullanılır.
IMAGE (Görüntü): Resim kutusu gibi bir resmi gösterir.
DATA ACCESS (Veriye Erişim): Sistemdeki mevcut veri tabanına erişerek, bilgi
güncelleme ya da görüntüleme işlemlerinin yapılabilmesine olanak sağlar.
OLE CLIENT (Ole Istemcisi): Bu araç ile form içine bir Windows programından (Access,
Excel gibi) nesneler aktarmak mümkündür.
- 10 -
VISUAL BASIC’TE FORMLAR
Visual Basic' te iki çeşit form vardır. Bunlardan bir tanesi tek başına çalışan form türü olan
Visual Basic ilk çalıştığı zaman ekrana gelen form ve projeye her eklenen yeni formun türü
olan SDI (Single Document Interface) formlarıdır. Bu tür formların içinde başka formlar
çalışamazlar. İkinci tür form çeşidi ise içerisinde başka formların çalışmasına izin veren ve
MDI (Multi Document Interface) olarak bilinen form türüdür. Bu tür formların içinde Child form
olarak adlandırılan ve normal SDI formların Child özelliğinin true yapılmasıyla oluşan formlar
çalıştırılabilir.
Formların özellikleri:
Caption: Formun başlığına yazılacak yazıyı belirtir. Bu özelliğe formun özellikler
penceresinden ulaşılabileceği gibi program içerisinde de formun başlığı değiştirilebilir.
İkon : Formda kullanılacak simgeyi belirtir. Bu simge aynı zamanda programınıza ait bir
kısayol oluşturduğunuzda gözükecek simgedir.
BorderStyle : Formun sınırlarının belirlendiği bu özellik aşağıda belirten değerleri alabilir.
0-None: Bu değer verildiğinde form boyutlandırılamaz, taşınamaz ve kapatılamaz. Ayrıca
formun çerçevesi, başlığı, kontrol kutusu, min ve max düğmeleri de formda yer almayacaktır.
- 11 -
1-FixedSingle: Bu değer verildiğinde kullanıcı formu büyültüp küçültemez ama formu
taşıyabilir ve kapatabilir. Ayrıca formun boyutlarında herhangi bir değişiklik yapılamaz.
2-Sizable: Varsayılan değer budur ve formun tüm özellikleri kullanılabilir.
3-FixedDouble: Kullanıcı formu boyutlandıramaz ama formu taşıyabilir ve formu kapatabilir.
4-FixedToolWindow: Normal forma göre başlığı daha küçük olan ve kontrol menüsü
içermeyen bir form oluşturur. Bu formun boyutları kullanıcı tarafından değiştirilemez.
5-SizableToolWindow: Yukarıdaki forma benzer terk farkı boyutları kullanıcı tarafından
değiştirilebilir.
MaxButton, MinButton: Formun sağ üst köşesinde bulunan ve formun büyültülüp
küçültülmesi işlemleri için kullanılan düğmelerin formda bulunup bulunmamasını belirler.
ControlBox: Formun sol üst köşesinde bulunan kontrol menüsünün görünüp görünmemesini
sağlar. Bu değer true veya false değerlerini alabilir. Eğer bu değer true ise kontrol menüsü
görünür ve bu form Alt+F4 tuş kombinasyonu kullanılarak kapatılabilir.
Moveable: Bu özellik ile kullanıcının formu taşıyıp taşıyamayacağı belirlenir. Bu özellik true
veya false değerini alabilir. Eğer bu değer true ise kullanıcı formu taşıyabilir.
ShowInTaskbar: Bu özellik formun çalışma esnasında görev çubuğunda görünüp
görünmeyeceğini belirler. True ya da false değerlerini alabilir. Eğer bu özellik true ise
program çalıştığında form görev çubuğunda görünür.
AutoRedraw: Bu özellik ile formun üzerine başka bir form geldiğinde veya formun
boyutlarıyla oynandığında formun üzerindeki yazı veya çizimlerin yenilenip yenilenmeyeceği
belirlenir. Bu özellik true veya false olmak üzere iki değer alabilir. Eğer bu değer true ise
formda yenileme yapılır ve formun üzerindeki yazı ve çizimler kaybolmaz.
FontTransparent: Formun üzerine Print metodu ile yazılan yazıların zemin renginin olup
olmamasını belirler. Bu özellik true yada false olabilir. Eğer true ise yazıların zemin rengi
olmayacaktır. False ise yazı kandı zemin rengi üzerine yazılır ve altındaki nesneyi göstermez.
WindowState: Formun ilk çalışmaya başlayacağı zaman alacağı durumu belirler. Bu özellik
üç değer alabilir.
- 12 -
0-Normal: Normal durumda açılır.
1-Minimized: Simge durumunda açılır.
2-Maximized: Ekranın tamamını kaplayacak şekilde açılır.
StartupPosition: Formun yüklenmeye başlandığı zaman ekran koordinatlarının neye göre
belirleneceğini belirler. Bu özellik dört farklı değer alabilir.
0-Manuel: Form tasarlandığı zamanki konumda açılır.
1-CenterOwner: Child özelliği true yapılmış formların MDI formun ortasında açılmasını
sağlar.
2-CenterScreen: Formun ekranın ortasında açılmasını sağlar.
3-WindowsDefault: Formun konumunu Windows belirler.
KeyPreview: Form aktifken basılan tuşlardan formun etkilenip etkilenmeyeceği bu özellik
kullanılarak ayarlanılır. Bu özellik iki değer alabilir. Eğer değer true ise formda bulunan
herhangi bir kontrolün üzerinde basılan tuşlar ilk önce formun KeyPress, Keydown, KeyUp
olaylarını meydana getirir. Bu değer false ise kontrolün üzerinde basılan tuşlar o kontrolün
KeyPress, Keydown, KeyUp olaylarını meydana getirir.
Count: Formdaki menüler dahil kontrol sayısını belirtir.
Picture: Formun üzerinde gösterilecek resmi belirtir.
MDIChild: Yukarıda bahsettiğimiz MDI formların içinde çalışabilen bir form istiyorsak bu
özelliği true yapmamız gerekiyor.
CurrentX, CurrentY: Formun üzerindeki aktif pixelin yerini belirtir. Formun üzerine
yazdırılacak yazılar bu noktadan başlayarak yazdırılır.
Width: Formun genişliğinin belirlendiği özellik.
Heigth: Formun yüksekliğinin belirlendiği özellik.
Left: Formun ekranın ne kadar solunda olacağının belirlendiği özellik.
- 13 -
Top: Formun ekranın ne kadar üstünde yer olacağının belirlendiği özellik.
Font: Formlara yazılacak yazıların fontlarının belirlendiği özellik.
BackColor: Formun zemin renginin belirlendiği özellik.
ScaleMode: Formda kullanılan ölçü birimini belirtir. Varsayılan ölçü birimi Twip'dir.
Kullanılabilecek ölçü birimleri ise;
1-Twip
2- Point
3- Pixel
4- Character
5- Inch
6- Millimeter
7- Centimeter
(1 inch = 1440 twip = 72 point = 2.54 cm)
MousePointer: Form üzerindeki fare işaretçisinin şeklini belirler.
Enabled: Formların kullanılabilir olup olmamasının belirlendiği özellik. Eğer bu özellik bir
form için false ise o form proje içerisinde kullanılamaz.
VISUAL BASIC’TE FORMLARA UYGULANABİLECEK OLAYLAR
Visual Basic “olay temelli” bir programlama aracı olup, kullanılan kontroller için önceden
tanımlanmış olaylara ilişkin kodlar yazılarak programın çalışması sağlanır. Örneğin siz,
formun üzerine çift tıklanması durumunda bir olayın meydana gelmesini istiyorsunuz. Bunun
için formda tanımlanmış DblClick olayına ilgili kodu yazarak bu olayın meydana gelmesini
sağlayabilirsiniz. Şimdi sırasıyla formlara uygulanabilecek olayları inceleyelim.
Load() : Formun ilk defa hafızaya yüklendiği zaman meydana gelen olaydır. Bu olay
kullanılarak, kullanıcıya formu göstermeden önce yapılması gereken işler yapılabilir. Örneğin,
kullanıcı programı başlattığında ilk önce kullanıcıdan, kullanıcı adı ve şifresini alarak daha
sonra yüklenecek ana formda bu bilgileri kullanarak bir veritabanına bağlantı sağlayabiliriz.
Activate() : Formun, programda aktif olması sırasında meydana gelir. Eğer programımızda
bir tane form varsa bu form her zaman aktiftir. Bu olaya, formun aktif olması sırasında
yapılmasını istediğimiz olayları yazabiliriz.
Deactivate() : Formun, programda aktivitesini kaybetmesi sırasında meydana gelen olaydır.
Bu olaya, formun aktivitesini kaybetmesi sırasında yapılmasını istediğimiz olayları yazabiliriz.
- 14 -
Unload(Cancel As Integer) : Formun kapatılması sırasında meydana gelen olaydır. Ayrıca
bu olayda tanımlanmış Cancel değişkenini kullanarak sadece bizim istediğimiz durumda
formun kapanmasını sağlayabiliriz. Bunu gerçekleştirmek için, yani formun kullanıcı
tarafından hiçbir şekilde kapatılmaması için Cancel değişkenine True değerini atamalıyız.
Aşağıdaki örnekte kullanıcı formu kapatmak istediği zaman bir pencereyle (inputbox)
karşılaşıyor ve bir değer girmesi isteniyor. Eğer girdiği değer 2 ve 2'den büyükse form
kapanmıyor.
Private Sub Form_Unload(Cancel As Integer)
Dim c
c = InputBox("Formu kapatmak için bir sayi giriniz", "Çikis")
If c > 2 Then
Cancel = True
Else
Cancel = False
End If
End Sub
Not : Bu olay formun End komutuyla sonlandırılması sırasında meydana gelmez. Yani bu
olayın meydana gelebilmesi için formun program tarafından End komutu kullanılarak
sonlandırılmaması gerekir.
Yukarıdaki programı çalıştırdığınızda aşağıdakine benzer bir ekranla karşılaşmalısınız.
- 15 -
Resize() : Formun boyutlarının değiştirilmesi sırasında meydana gelir. Örneğin formun
genişliğinin veya yüksekliğinin değiştirilmesi bu olayın meydana gelmesini sağlar.
KeyPress(KeyAscii As Integer) : Formun çalışması sırasında yön ve kontrol(Ctrl, Alt, Shift)
tuşları dışında herhangi bir tuşa basılması sırasında meydana gelen olaydır. Bu olayda
basılan tuşun Ascii değeri KeyAscii değişkenine atanır. Bu değişkeni kullanarak hangi tuşa
basıldığını öğrenebilirsiniz. Aşağıdaki program, formun çalışması sırasında hangi tuşa
basıldığını ekrana yazar.
Private Sub Form_KeyPress(KeyAscii As Integer)
Show
Print Chr(KeyAscii) & " tusuna bastiniz."
End Sub
KeyDown(KeyCode As Integer, Shift As Integer) : Bu olay herhangi bir tuşa basıldığı anda
meydana gelir. Bu olayda iki parametre kullanılır. Bu parametrelerin biri basılan tuşun Ascii
değerini, diğeri ise bu tuşla birlikte Shift, Ctrl ve Alt tuşlarından herhangi birine basılıp
basılmadığı konusunda bilgi tutar. Aşağıdaki tabloda Shift parametresinin alabileceği değerler
ve açıklamalarını bulabilirsiniz.
- 16 -
Shift Parametresinin Değeri Açıklama
0
Shift, Ctrl, Alt tuşlarından herhangi birisi basılı durumda değil.
1
Shift tuşu basılı durumda.
2
Ctrl tuşu basılı durumda.
3
Shift ve Ctrl tuşları basılı durumda.
4
Alt tuşu basılı durumda.
5
Shift ve Alt tuşları basılı durumda.
6
Ctrl ve Alt tuşları basılı durumda.
7
Shift, Ctrl ve Alt tuşları basılı durumda.
Aşağıdaki örnekte kullanıcı Ctrl tuşu ile birlikte A tuşuna basarsa kullanıcıya mesaj verecektir.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 65 And Shift = 2 Then
MsgBox "Ctrl+A tus kombinasyonunu kullandiniz."
End If
End Sub
- 17 -
KeyUp(KeyCode As Integer, Shift As Integer) : Bu olay ise kullanıcının bastığı tuşu
bırakması sırasında meydana gelir. Yukarıdaki tabloda Shift parametresi için gösterilen
değerler bu olayda da geçerlidir.
MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay
formun üzerinde mouse'un herhangi bir tuşuna basılması sırasında meydana gelir. Bu olayda
kullanılan parametrelerden Button parametresi, kullanıcını mouse'un hangi tuşuna bastığı
bilgisine tutar ve kullanıcı mouse'un sol tuşuna basmışsa 1, sağ tuşuna basmışsa 2, her iki
tuşa birlikte basmışsa 3 değerini alır. İkinci parametre olan Shift ise mouse'un tuşlarına
basıldığı sırada herhangi bir kontrol karakterine basılıp basılmadığı bilgisini tutar ve
yukarıdaki tabloda açıklanan değerler bu olaydaki Shift parametresi için de geçerlidir. X ve Y
parametreleri ise bu olayının meydana geldiği andaki mouse işaretçisinin yerinin Twip
cinsinden değerlerini tutarlar. Aşağıdaki örnekte mouse'un sol tuşuna tıklandığı yerin Twip
olarak değeri kullanıcıya mesaj olarak gösteriliyor.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
MsgBox ("Mouse'un yeri :" & Str(X) & "," & Str(Y))
End If
End Sub
- 18 -
MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay
kullanıcını mouse'un bastığı tuşunu serbest bırakması sırasında meydana gelir ve kullanılan
parametreler MouseDown olayındakilerle aynıdır.
MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) : Bu olay
mouse işaretçisinin form üzerindeki yerinin değişmesi sırasında meydana gelir ve kullanılan
parametreler MouseDown olayındakilerle aynıdır.
Click() : Bu olay mouse ile formun herhangi bir yerine tek tıklama yapıldığında meydana
gelir.
DblClick() : Bu olay mouse ile formun herhangi bir yerine üst üste iki tıklama yapıldığında
meydana gelir. Aşağıdaki programda kullanıcıya, formun herhangi bir yerine çift tıklaması
durumunda bir mesaj gösterilecektir.
Private Sub Form_DblClick()
MsgBox "Mouse ile Çift Tıklama Yaptiniz.", , "Çift Tiklama"
End Sub
VISUAL BASIC’TE VERİ YAPILARI
1-)Sabitler (Constants)
Programın içinde değeri değişmeyen sabitlerdir. VB'de hazır bu tip değişkenler olduğu gibi
programı yazarken kendi ellerimizle de tanımlayabiliriz.
String türü ifadeler sayısal işlemlere sokulmazlar. Sabit tanımlamak için mutlaka ihtiyacımız
olan şeyler "const" ve sabitin ismidir. Private ve public, değişkenlerin etkili olacağı alanları
- 19 -
belirlememizde işe yarar. Çoğu zaman private'yi kullanın çünkü standart.exe olarak açtığınız
formlarda public işe yaramaz, hata verir.
2-)Değişkenler
Program içerisinde değerleri sürekli olarak değişebilen veri yapısıdır. x=23 iken x=x+3
dersek x'in değerini 26 yaparak değiştirmiş oluruz. Yani bir değişkene yeni bir değer atanırsa
eski değeri silinecektir.
a-)Değişkenlere isim verme
•
Değişken isminin ilk karakteri rakam olmamalıdır.
•
Diğer karakterler harf, rakam, alt çizgi_ olabilir.
•
Harflerin küçük ya da büyük olmasının bir önemi yoktur.
•
Değişken isimlerinin uzunlukları 40 karaktere kadar olabilir.
•
Değişken isimleri içerisinde diğer semboller (+,-,/ vb) bulunmamalıdır.
b-)Değişken türleri
Bu bölümde, VB'de program yazarken, programınızda kullanabileceğimiz veri türleri
tanıtılacaktır.
variant:
Bu tipte tanımlanmış bir değişkene herhangi bir tip’te veri yüklenebilir. Yani ne tür bir veri
gireceğimizi bilmediğimiz değişkenlerde Variant kullanabiliriz. Bu tür değişkenler hafızada
sayısal değerler için 16 byte ve her bir karakter için 1 byte yer kaplarlar.
Örnek:
Private Sub Form_Load()
Dim Ad As Variant , No As Variant
Dim Dogum As Variant
Ad="Ali ÇELİK"
Tel="5551234567"
Dogum=#Oct,25,1983#
End Sub
- 20 -
string:
Matematiksel işlemlere sokulamayan karakter veri tipidir. Her karakter için 1 byte yer kaplar.
Uzunluğu 65000 karaktere kadar olabilir. İki karakter ifade arasındaki + işareti bu karakterleri
birleştir anlamına gelir.
Integer:
Tamsayılar için kullanılır. 2 byte yer kaplar, -32768 ile 32767 arasında değer alabilir.
long:
Daha büyük bir aralıkta integer yani tamsayı tanımlamak için kullanabileceğimiz bir veri
tipidir. Hafızada 4 byte yer kaplar. Sınır değerler -2,147,483,648 ile +2,147,483,647 dir.
currency:
Para hesaplarında kullanılmak üzere tanımlanmış bir veri tipidir. Hafızada 8 byte yer
kaplarlar. 4 hane ondalık kısmı olmak üzere toplam 19 haneden oluşur. (nokta hariç)
Alabileceği sınır değerler -922,337,203,685,477.5808 ile 922,337,203,685,477.5807 dir.
date:
Tarih türündeki bilgileri kullanmak için oluşturulmuş bir değişken tipidir. Hafızada 8 byte yer
kaplarlar. 1 Ocak 100 ile 31 Aralık 9999 arasındaki tarihleri kullanabilirsiniz
Örnek:
Private Sub Form_Load()
Dim Dogum_tarihi As Date , Olum_Tarihi As Date
Dogum_tarihi =#Oct,25,1955#
Olum _Tarihi=#Oct,6,2002#
End Sub
boolean:
Mantıksal veri tipleri için kullanılır. İki seçenekten birisini (True, False) alabilir. Bellekte 2 byte
yer işgal ederler.
- 21 -
byte:
O ile 255 arasındaki tamsayıları ifade etmek için kullanılabilecek veri tipidir. Bellekte 1 byte
yer kaplar.
Örnek
Private Sub Form_Load()
Dim A As Byte , B As Byte
A =23
B= 143
End Sub
single:
Tam sayı olmayan sayılar için kullanabileceğimiz bir veri tipidir. Single tipindeki veriler
bellekte 4 byte yer kaplarlar. Negatif sayılar için alabileceği aralık -3.402823E38 ile
-1.401298E-45, pozitif sayılar için alabileceği aralık 1.401298E-45 ile 3.402823E38
arasındadır.
double:
Visual Basic’te kullanılabilecek en büyük sayısal değerlerin veri tipidir. Hafızada 8 byte yer
kaplarlar.
16
basamağa
4.94065645841247E-324
kadar
ile
duyarlıdır.
Sınır
değerler
1.797693134862232E308,
negatif
pozitif
sayılar
sayılar
için
için
de
-1.797693134862232E308 ile -4.94065645841247E-324 arasındadır.
b-)Tip bildirimi için DIM deyimi
İyi bir program oluşturmak için, değişkenlerin tiplerini önceden bildirmek faydalı bir
alışkanlıktır. Tip bildiriminde bulunulmazsa, değişkenlerin tipi variant olarak atanır. Bu
da hafızada gereksiz yer kaplamaya neden olur.
Dim x as integer
Dim a, b, c, d as double şeklindeki ifade, sedece d'yi double olarak atayacak, a, b, c
değişkenleri ise variant olarak kalacaktır.
- 22 -
Doğru kullanım ise: Dim A As Double, B As Double, C As Double, D As Double şeklinde
olmalıdır.
c-)Zorunlu tip bildirimi
VB'de tip bildirimi zorunlu değildir. Fakat yazılımcı isterse bunu zorunlu hale getirebilir. Bunun
için şu adımlar izlenmelidir.
•
Kod penceresi açılır.
•
General, declarations kısmı; seçilir.
•
Bu bölüme option explicit yazılır.
Option Explicit komutu, değişkenlerin tanımlanmasını zorunlu hale getirmek veya
değişkenleri tanımlama zorunluluğunu ortadan kaldırmak için kullanılır. Bu komutun
kullanılma mecburiyeti yoktur, kullanılmazsa, değişkenleri mutlaka tanımlamak zorundasınız
demektir (option explicit on), aksi durumda, yani değişkenlerin kullanılma zorunluluğu ortadan
kaldırılmak istenirse kullanılması mecburidir.
Kullanılış şekli;
Option Explicit On (Kullandığınız değişkenleri tanımlamak zorundasınız).
Option Explicit Off (Kullandığınız değişkenleri tanımlamak zorunda değilsiniz)
General Declerations Bölümü
Option Explicit komutu kullanılmak istenirse, VB editörünün sadece General Declerations
bölümüne yazılması gerekir, aksi halde VB hata mesajı verir. General Declerations
bölümü; bütün yordamların ve program satırlarının en üstündeki satırdır, aşağıdaki
örnekte bu bölümün yeri gösterilmektedir.
- 23 -
bunu yaptıktan sonra programınızı yazarsanız, eğer değişkenleri tanımlamadıysanız,
programı da o halde çalıştırdıysanız "Variable not defined" hatası verecektir.
d-)Değişkenlerin tanımlandıklara yere göre durumları
Değişkenler iki yere göre tanımlanırlar:
Genel tanımlamalar: Yordamların üzerinde yapılan tanımlamadır. Bu şekilde yapılan
tanımlar yordamlar üstü olduğu için, Class içindeki bir veya birden fazla yordam içinde bu
tanımlar geçerli olacaktır.
Özel tanımlar: Yordamların içinde yapılan tanımlardır. Bu şekilde yapılan tanımlar yordam
içinde olduğundan, sadece tanımlandığı yordamlarda geçerli olacaktır, program akışı ilgili
yordamın dışına çıktığında, yordam içinde yapılan tanımlar geçersiz olacaktır.
Aşağıdaki örnek, iki tür tanımlamayı da içermektedir. Öncelikle bu programın “Option Explicit
On” satırından dolayı çalışmayacağını belirtmek gerekir. Bu programın hatasız çalışması için
“Option Explicit On” satırının “Option Explicit Off” haline getirilmesi gerekir. Çünkü bu örnek
tanımlamaları göstermek için özellikle bu şekilde düşünülmüştür.
Bu satır, program içinde kullanılan bütün değişkenlerin tanımlanmasını zorunlu hale getiriyor
Bu satırda a değişkeni “genel” olarak ve 12 başlangıç değeri ile
tanımlanmıştır. Genel tanımlaması, CLASS satırından sonra ve 2 SUB
yordamın üzerinde olmasından anlaşılmaktadır. Bu tanıma göre a değişken
değerine Sub Form1_Load ve Sub Button1_Click yordamlarından ulaşılabilir.
Bu yordamdaki b değişken tanımlaması sadece bu yordam içinde geçerlidir. Bu
yordamın içinde a ve b değişken değerleri tanımlıdır, c değişken değeri tanımsız
olarak işlem görür.
Bu yordamdaki c değişken tanımlaması sadece bu yordam içinde
geçerlidir ve “deneme” başlangıç değeri ile tanımlanmıştır. Bu
yordamın içinde a ve c değişken değerleri tanımlıdır, b değişken
değeri tanımsız olarak işlem görür.
- 24 -
Aşağıdaki örnekte a değişkeni önce genel olarak integer sayı tipinde ve 12 başlangıç değeri
ile tanımlanmış, ancak daha sonra Form1_Load yordamının içinde aynı değişken özel
tanımlamaya, string değişken tipine ve “Ali” başlangıç değerine döndürülmüştür. Buna göre
Form1_Load yordamının içinde a değişken değeri, tipi string’e ve başlangıç değeri de “Ali”
ifadesine döndürülür, bu kullanımda Form1_Load yordamının içinde a değişken değeri “Ali”
olarak işleme girer. Ama buna karşın “deneme” yordamının içinde a değişkeni ile ilgili bir
değişiklik yapılmadığı için bu yordamın içinde a değişken değeri integer ve 12 olarak işleme
girer.
e-) Değişkenlerin statik ve dinamik durumları
Aksi belirtilmediği sürece tanımladığımız değişkenler dinamiktir; yani olay, prosedürün her
çalışmasında (mesela, her command1_click olduğunda) bir önceki işlem sonundaki
hesaplanmış değeri saklamazlar. Fakat değişkenimizi tanımlarken Dim X As integer değil de
Static X As integer olarak tanımlarsanız her prosedür çalıştığında bir önceki procedure
sonundaki hesaplanmış değeri saklar onun üstünden işlem yapar.
Veri Tiplerine (değişkenlere) başlangıç değeri atanmamışsa !!!
Sayı değişken tipleri için (byte, integer, double vb.) sıfır (O sayısı).
String değişken tipleri için (char, string vbg.) "" değeridir, bu değerin yazı olarak ifadesi
şudur: çift tırnak işareti açılır ve arada boşluk olmadan kapatılır.
Boolean mantıksal değişken tanımlama tipinde False değeridir.
Date değişken tanımlama tipinde "00:00:00" değeridir.
- 25 -
VB’DE FONKSİYONLAR
Asc: Klavyeden girilen herhangi bir ifadenin, nümerik ascii karşılığını verir. Eğer tek harfli
ifade yerine sözcük girerseniz, sözcüğün ilk karakterini baz alacaktır. Mesela asc (bilgisayar)
denirse b'nin nümerik ascii karşılığı olan 98 elde edilir.
Chr$: 0-255 arasında girilen bir nümerik ascii koduna karşılık gelen karakteri verir.
Örnek:
Bu programda text1'e gireceğiniz karakterin karşılığı text2'de, text3'de girdiğiniz karakterin
karşılığı text4'de görünecektir.
Private Sub Command1_Click()
a = Text1.Text
a = Asc(a)
Text2.Text = Str(a)
End Sub
Private Sub Command2_Click()
b = Text3.Text
b = Val(b)
If b > 255 Then GoTo son
b = Chr(b)
Text4.Text = b
son:
End Sub
Space$(n):
Belirtilen
text'e
veya
herhangi
Text1.text=space$(4) gibi
- 26 -
bir
yere
n
kadar
boşluk
koyar.
Right$: Belirtilen stringin en sağından başlayarak belirtilen sayıda stringi kopyalamak için
kullanılır. A=Right$("pamukkale",4) derseniz A="kale" olacaktır.
Left$:Belirtilen stringin en solundan başlayarak belirtilen sayıda stringi kopyalamak için
kullanılır. A=Leftt$("pamukkale",5) derseniz A="pamuk" olacaktır.
Mid$: Belirtilen stringin belirtilen karakterinden başlayarak, soldan sağa doğru belirtilen kadar
karakter kopyalamaya yarar. A=Mid$("pamukkale",4,4) derseniz A="ukka" olacaktır.Yani 4.
karakterden başlayarak sağa doğru 4 karakter kopyalayacaktır.
Örnek:
Standart.exe olarak açtığınız form'a 1 tane text kutusu(text1.text), 3tane command butonu
yerleştirin, command butonlarının adını ister değiştirin ister değiştirmeyin program yinede
çalışır. Butonların üzerlerine sıra ile çift tıklayarak sıra ile aşağıdaki kodları yazın. Programı
çalıştırdıktan sonra "sağdan" butonuna tıklarsanız, text1 kutusuna ,"pamukkale" stringinin
içindeki "kale"yi alıp yazacaktır, "soldan" butonuna tıkladığınızda ise "pamuk", ortadan
butonuna tıkladığınızda ise "ukka" yazacaktır...
Private Sub Command1_Click()
Dim a As String
a = Right$("pamukkale", 4)
Text1.Text = a
End Sub
Private Sub Command2_Click()
Dim b As String
b = Left$("pamukkale", 5)
Text1.Text = b
End Sub
Private Sub Command3_Click()
- 27 -
Dim c As String
c = Mid$("pamukkale", 4, 4)
Text1.Text = c
End Sub
Private Sub Form_Load()
Text1.Text = "pamukkale"
End Sub
Len(String): Girilen stringin kaç karakter uzunluğunda olduğunu öğrenmemize yardımcı olur.
Sayısal bir değer alır. A=Len("pamukkale") derseniz A=9 olur.
Val(String): Girilen stringi sayısal ifadeye çevirir ve bize, onu toplama, çıkarma gibi
işlemlerde kullanma imkanı sağlar. A=val("15") ifadesi text kutusundan veya herhangi bir
yolla girilmiş 15 yazısını rakamsallaştırmaya yarar.
Str(Rakam): Val'ın yaptığını tam tersini yapar. Örneğin text kutusunda rakamsal ifadeleri
kullanamayız, ancak onları str ile string haline getirip kullanabiliriz. A=Str(15) derseniz A="15"
olacaktır.
Lcase(String): İçine girilen küçüklü büyüklü yazıyı tamamen küçük harfe çevirir.
A=Lcase("PamUKKale") derseniz A="pamukkale" olacaktır.
Ucase(String): İçine girilen küçüklü büyüklü yazıyı tamamen büyük harfe çevirir.
Ucase("PamUKKale") derseniz A="PAMUKKALE" olacaktır.
Instr(Rakam,String1,String2): Birinci karakter içinde ikinci karakteri arar. Eğer aradığını
bulursa değeri bulduğu karakterin sıra numarası olur. Örneğin birinci karakterimiz
"pamukkale" ikinci karakterimiz "a" yani birinci karakter içinde a'yı arıyacağız. Programı yazıp
çalıştırdığımızda değer 2 olacaktır, yani "a" 2. sırada. İsterseniz aramayı istediğiniz sıradan
başlatabilirsiniz. Örneğin A=Instr(5,"pamukkale","a") derseniz A=7 olacaktır. Çünkü 5.
karakterden aramaya başlattığımız için 7. sıradaki "a" yı gördü.
Trim(String): Parantez içine girilen karakterin sağındaki ve solundaki boşluk karakterini siler.
Ltrim(String): Parantez içine girilen karakterin solundaki boşluk karakterini siler.
Rtrim(String): Parantez içine girilen karakterin sağındaki boşluk karakterini siler.
- 28 -
Date: Bu komut sayesinde sistemin tarihini öğrenebilir yada onu yeniden ayarlayabiliriz.
A=Date dersek A o günün tarihi olacaktır. Yalnız atlanılmaması gereken önemli bir ayrıntı ise
A yı dim ile tanımlarken “dim A as date” demeliyiz. Eğer bilgisayarın tarihini ayarlamak
istiyorsak Date="aa-gg-yyyy". Bir de date olarak tanımladığımız bir değişkene tarih
atayabiliriz. Mesela “dim t as date” olarak tanımladığımız değişkene tarih atamak istersek
“t=#aa-gg-yyyy#” şeklinde bir ibare kullanmalıyız. Eğer ay kısmına 13 ve daha büyük yada
gün kısmına 32 ve daha büyük rakamlar girerseniz programın çalışması esnasında hata
verecektir.
Time:
Hem zamanı öğrenmede hem de zamanı set etmede kullanılır. Time="SaSa:dkdk:snsn"
şeklinde set edilebilir. Ayrıca...
Private Sub Command1_Click()
Text1.Text = Time
End Sub
ile zamanı bir değişken olarak elimizde tutabiliriz
Now: Programın çalıştığı anki tarih ve zamanı bize verir.
Private Sub Command1_Click()
Text1.Text = Now
End Sub
Datevalue(string): İçine girilen string türü bir ifadeyi date türü bir değişkende tutmamıza
yarar. Örneğin programda kullanıcıdan textboxa doğum tarihini girmesini istediniz, textbox
bunu tabi ki string türü bir ifade olarak saklayacaktır. Bunu date türü bir ifadeye çevirmede
datevalue komutu devreye giriyor...
Dim t as date
Text1.text="25-10-1983"
t= Datevalue("text1.text")
Dateserial(Yıl,Ay,Gün): Girilen integer türü değişkenleri date türü değişkenlere çevirmeye
yarar. Ayrıca Dateserial(1996,10,28)-Dateseria(1954,3,5) gibi bir kullanımla 2 tarih arasındaki
gün sayısını bulabiliriz.
- 29 -
Timeserial(saat,dakika,saniye): Parantez içine girilen ifadeyi zaman türünde değişkene
çevirir. A=Timeserial(22,11,08) komutu ile A; 10:11:08 PM değerine eşit olacaktır.
Day(Tarih): Verilen tarih türü bilginin içinden gün kısmını alır. A=Day("10/25/1983")
ifedesinde A=25 olacaktır.
Month(Tarih): Verilen tarih türü bilginin içinden ay kısmını alır.
Year(Tarih): Verilen tarih türü bilginin içinden yıl kısmını alır.
Hour(Zaman): Zaman türü bilginin içinden saati alır.
Minute(Zaman): Zaman türü bilginin içinden dakikayı alır.
Second(Zaman): Zaman türü bilginin içinden saniyeyi alır.
VB’DE İŞLETİM SİSTEMİ İLE İLGİLİ KOMUTLAR
MKDiR: DOS’tan alınmış bir komuttur. Aktif dizinin altında yada belirlenen yeni bir yola uygun
olarak yeni dizin yaratır. Örneğin MkDir "ders" ile aktif yolun altına yeni bir dizin açabilirsiniz.
Bu dizin zaten mevcutsa hata verir.
RmDir: DOS’tan alınmış bir komuttur. Geçerli yolun altındaki belirtilen klasörü silmeye yarar.
Örneğin RmDir "ders" ile aktif yolun altındaki ders dizinini siler. Eğer öyle bir dizin yoksa hata
verir. Ayrıca dizinin içi boş olmalı yoksa gene hata verecektir.
Kill: Belirtilen bir dosya veya dosya gurubunu siler. Mesela RmDir ile içi dolu dizini
silemezsiniz ilk önce kill "ders\*.*" diyerek içini boşaltırsınız. Sonra içi boş dizini RmDir ile
silersiniz.
ChDrive: Aktif sürücüyü değiştirir. ChDrive "D" komutu ile aktif sürücüyü D yapmış olursunuz.
ChDir: Aktif dizini değiştirir. Örneğin ChDir "D:\MsOffice\Excel"
Name:
Belirtilen
dosyanın
adını
ve
yolunu
c:\Hb\Hesap.bas
- 30 -
değiştirir.
Name
"c:\Vb\alan.bas"
as
CurDir: O anki geçerli olan sürücünün yolunu (aktif dizini) veya o anda kullanılmayan fakat
daha önce kullanılmış sürücünün en son yolunu verir. String türü ifade yollar. A=Curdir(c)
şeklinde kullanılır.
Shell: Kullanılış şekli Değişken=Shell(Yol Adı,Pencere Stili) şeklindedir.Com, Exe, Bat
uzantılı dosyaların Vb içinden çalıştırmaya yarar.
Örnek:
Private Sub Command1_Click()
x=Shell("c:\msoffice\excel\excel.exe,1)
End Sub
FileCopy: Kaynaktaki dosyaları alır hedefe kopyalar. FileCopy"c:\a1.bmp",c:\Vb\a1.bmp
SetAttr: Belirtilen dosyanın özelliklerini değiştirmek için kullanılır. Örneğin, SetAttr
"C:\Vb\Xdat", vbHidden+vbReadOnly ifadesi ile, x.dat adlı dosya, sadece okunabilir ve gizli
olarak değiştirilir.
Dir: Yazılış biçimi Dir(Yol Adı) şeklindedir. Yol adında belirtilen dosyanın olup olmadığını
araştırır, eğer varsa dosyanın yolunun ismini string olarak gönderir. ?ve* gibi joker karakterler
kullanmaya izin verir.
VB’DE KARAR KOMUTLARI
if-then-else
if koşul then KOMUTU
Belirtilen koşulun olması halinde programa yaptırmak istediğimiz şeyleri yaptırmaya yardımcı
komuttur. Kullanımı;
if koşul then
KOMUTLAR
end if
- 31 -
Şeklindedir. Yani belirttiğimiz koşul sağlanırsa program, if ile end if arasında belirttiğimiz
komutları uygulayacaktır. Eğer belirttiğimiz koşul sağlanmamışsa program -end if- komutunun
bir alt satırına atlayacaktır. Yani if ve end if komutları arasındaki hiç bir işlemi yapmayacaktır.
Örnek:
Standart.exe olarak açmış olduğunuz formunuza bir textbox (text1) ve bir commandbutton
(command1) ekleyiniz. Sonra tasarım penceresindeyken command buttona çift tıklayarak
açılan kod penceresine aşağıdaki kodları yazınız. Daha sonra F-5'e basarak programı
çalıştırınız. Program sayınızın tek mi çift mi olduğunu kontrol ediyor ve ona göre mesaj
veriyor.
Private Sub Command1_Click()
a = Text1.Text
a = Val(a)
If a Mod (2) = 0 Then
MsgBox "girdiğiniz sayı çifttir"
End If
If a Mod (2) <> 0 Then
MsgBox "girdiğiniz sayı tektir"
End If
End Sub
if koşul then.... else...KOMUTU
If ... end if 'ten tek farkı vardır, koşulun sağlanmadığı durumda da programa müdahale
edebilirsiniz. Örneğin belirttiğiniz koşulun olup olmadığını if ile kontrol ediyordunuz, şimdi
burada da else diyerek, programa; koşulun olmadığı durumda da şunu yap diye emir
veriyorsunuz. Kullanımı şu şekildedir:
if koşul Then
KOMUTLAR
else
KOMUTLAR
- 32 -
End if
Eğer belirttiğiniz koşul varsa if' in altındaki komutlar yerine getiriliyor, eğer belirttiğiniz koşullar
yoksa else’nin altındaki komutlar yerine getiriliyor.
Örnek: Yukarıda 2 tane if komutu kullanarak yazdığımız komutu daha kısa satırda else
kullanarak yazacak olursak;
Private Sub Command1_Click()
a = Text1.Text
a = Val(a)
If a Mod (2) = 0 Then
MsgBox "girdiğiniz sayı çifttir"
Else
MsgBox "girdiğiniz sayı tektir"
End If
End Sub
If koşul then..... ElseIf koşul then.....KOMUTU
Birden fazla koşulumuzun olduğu durumlarda defalarca if kullanmaktansa if ve else if lerle
durumu bağlayabiliriz.
If koşul Then
KOMUTLAR
ElseIf Koşul1 Then
KOMUTLAR
ElseIf Koşul2 Then
KOMUTLAR
End If
Örnek: 1'den 5 e kadar olan sayıların kontrolünü yapan, girdiğiniz sayının kaç olduğunu size
söyleyen ve 5 ten büyük bir sayı girmişseniz uyaran bir program yazıyoruz. Formunuza bir
- 33 -
textbox ve bir command buton ekleyin ve tasarım aşamasındayken command butona cift
tıklayıp açılan pencerede bu kodu yazın..
Private Sub Command1_Click()
a = Text1.Text
a = Val(a)
If a > 5 Then
MsgBox "5'ten büyük sayı giremezsiniz"
End If
If a = 1 Then
MsgBox "Girdiğiniz sayı=1"
ElseIf a = 2 Then
MsgBox "Girdiğiniz sayı=2"
ElseIf a = 3 Then
MsgBox "Girdiğiniz sayı=3"
ElseIf a = 4 Then
MsgBox "Girdiğiniz sayı=4"
ElseIf a = 5 Then
MsgBox "Girdiğiniz sayı=5"
End If
End Sub
Select .... Case
Mantık olarak yukarıda anlattığımız If..ElseIf yapısının aynısıdır. İlgili değişken Select Case
DEGİŞKEN komutuyla seçilir ve bu değişkenin birden fazla durumları Case Değer1... Case
Değer2.... komutlarıyla kontrol edilir. Kullanımı;
Select Case Değişken
Case Değer1
.....
Case Değer2
- 34 -
.....
Case Değer3 to Değer 10
.....
Case Else
End Select
Görüldüğü gibi birden fazla koşullu durumda select case yi kullandık. Case değer 3 to değer
10 yazan satır değişkenin değerinin belli bir şeyden diğer şeye kadar olan durumda şunu yap
anlamına gelir. Dikkat edilmesi gereken diğer komut da Case Else. Bu da belirtilen tüm
seçeneklerin dışında başka bir değer olması durumunda altında belirtilen komutları uygulatır.
InputBox
Visual Basic programının çalışması sırasında klavyeden bilgi girmek amacıyla kullanılır.
Buradan gelecek değer string türü bir değerdir, eğer girilecek bu değeri sayısal bir hesapta
kullanmak
istiyorsak
Val(String)
komutuyla
sayısal
değere
çevirmeliyiz.
Kullanımı
Değişken=Inputbox("Başlık") şeklindedir.
Örnek: Standart.exe olarak açtığınız formunuza bir adet text.box koyun ve textbox
koyduğunuz projenin üzerinde herhangi bir yere çift tıklayarak (Private Sub Form_Load() ve
End Sub ifadelerini otomatik olarak elde edebilmek için forma çift tıkladık) aşağıdaki ifadeleri
yazın.
Private Sub Form_Load()
a = InputBox("İsminizi Giriniz...")
Text1.Text = a
End Sub
Yani inputbox, programa dışarıdan bir veri girmek istediğimizde kullanılıyor.
MsgBox
Visual Basic programının çalışması sırasında elde edilen bazı sonuçları ve kullanıcıyı
uyaracak
gerekli
bazı
mesajları
ekrana
A=MsgBox("Mesaj",Görünüm,"başlık")
taşımamıza
şeklindedir.
- 35 -
yardımcı
Görünüm
ve
olur.
başlık
Kullanımı:
kısımları
kullanılmasa da olur. Bu kısımlar kullanılmazsa sadece MsgBox "mesaj" şeklinde
kullanımımız doğru olanıdır. Görünüm kısmında tanımlayacağımız komutlarla ok, cancel, yes,
no gibi kontrol butonları koyabileceğiz. Mesela bazen Kullanıcıya ....... yapmak istermisiniz
diye sorarsınız, evet mi hayır mı deyip demediğini bu gürünümün değişkene yollayacağı
ifadeyle anlarız. Ama görünüm kısmına Hiçbirşey yazmazsak sadece ok butonu olacaktır
mesaj kutumuzda. Görünümde; VbOkOnly, VbOkCancel, VbYesNo, VbYesNoCancel... gibi
tanımlamalarla mesaj kutumuza birden fazla buton koyabiliriz. Kullanıcının tıklayacağı buton
A değişkenine Vbok, VbCancel... gibi yansıyacaktır. Daha sonra işlemlerimizi bunlara göre
yapacaksak, if kontrolüyle bunları yönlendirebiliriz.
Örnek: Standart.exe olarak açtığınız formunuza bir adet text.box koyun ve programın
tasarım aşamasındayken forma çift tıklayarak (Private Sub Form_Load() ve End Sub
ifadelerini otomatikman elde edebilmek için) aşağıdaki ifadeleri yazınız. Programınızı
çalıştırdığınızda isminizi soracak, sonra isminizi text kutusuna yazacak, text kutusunda yazılı
olan isminizin doğru olup olmadığını soracak eğer eveti tıkladıysanız program ekranına geri
dönecek, hayırı tıkladıysanız bir uyarı mesajı daha gönderecektir.
Private Sub Form_Load()
a = InputBox("İsminizi Giriniz...")
Text1.Text = a
Form1.Show
b = MsgBox("İsminiz Doğrumu?", vbYesNo, "Sorgu Ekranı")
If b = vbNo Then
MsgBox ("Yanlış Olması İmkansız")
End If
End Sub
VB’DE DÖNGÜLER
Programlama dillerinde döngüler genelde aynı işi birden fazla yaptırmak amacıyla işlemi
istenilen miktarda tekrarlamak için kullanılır. Ya da belli aralıklarda birşey arattırmak için veya
belli aralığa birşeyler eklemek için aynı işlemi tekrar tekrar yapmaktan kurtulmak için.
- 36 -
Döngüler yapı olarak ikiye ayrılır. For....Next Ve Do...Loop . VB de Do...Loop sözcüklerini
içeren dört ayrı tür mevcuttur.
1)Do While ... Loop Yapısı
Bu yapıda önce koşul kontrol edilir. Kontrol doğruysa programın akışı döngünün içine girer.
Değilse döngüye bir kez bile girilmeden program işleyişine devam edecektir. Şunu da
unutmamak gerek, döngü while koşulu sağlandığı sürece işlevine devam edecektir. Yapısı;
Do While Koşul
Komutlar
Loop
Örnek: Standart.exe olarak açtığınız bir forma bir buton yerleştirin. Butonu çift tıklayın Private
Sub Command1.click ile başlayan paragrafı yazın. Sonra tekrar project penceresine geçin ve
formun herhangi bir yerine çift tıklayın Private Sub Form Load ile başlayan paragrafı Yazın.
Sonra F5 e basarak çalıştırın. Project penceresinden çift tıklatmamızın sebebi, ilgili kısma ait
private sub... end sub metinlerini VB’nin otomatik yazması sebebiyledir.
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla",
vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Do While a = vbOK
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla",
vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Loop
End Sub
- 37 -
2)Do Until ... Loop
Bu yapıda da önce koşul kontrol edilir ancak while..loop yapısının tersine burada koşul doğru
olmadığı sürece programın akışı döngünün içine girer, doğru olduğunda döngünün dışına
çıkar. Yada koşul zaten doğruysa hiç döngünün içine girmez. Yapısı;
Do Until Koşul
Komutlar
Loop
Örnek: Yukarıda While..Loop Yapısındaki yaptığımız programla aynı işe yarayan programı
until..loop ile yapacağız. Yapmanız gereken while’ı silip until, vbOK’u silip vbcancel
yapmanız.
Private Sub Command1_Click()
End
End Sub
Private Sub Form_Load()
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla",
vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Do Until a = vbCancel
a = MsgBox("Devam için evet,bitirmek için hayırı tıkla",
vbOKCancel, "DoWhile-Loop Yapısı incelemesi")
Loop
End Sub
3)Do ... Loop While
Burada koşul altta kontrol ediliyor. Koşul sağlansa da sağlanmasa da döngü yukarıdan
aşağıya en az bir kez akacaktır, sonra aşağıdaki while ile belirtilen koşul sağlandığında
döngü yukarı çıkıp bir kez daha dönecektir, ta ki koşul sağlanmayıncaya dek. Sağlanmayınca
programın akışı döngüden çıkar ve alt satırdan devam eder. Yani birinci ve ikinci yapıdan
farkı, hiçbirşey olmasa bile döngü, koşul en aşağıda kontrol edildiği için en az bir kez icra
eder. Yapısı;
- 38 -
Do
Komutlar
Loop While Koşul
4)Do ... Loop Until
Bu da koşulu aşağıda kontrol ediyor. Yani koşul kontrol edilmesi için program döngünün
içinde en az bir kere akıyor. Yapısı;
Do
Komutlar
Loop Until Koşul
5)For ... Next
For..Next döngüsünde olay for ve next arasında istenilen miktarda tekrar edilerek döner.
Kullanımı:
For x=a to b step Y
Komutlar
Next x
Burada sayacımız x oluyor. Bu x, a dan b ye kadar Y kadar atlayarak sayıyor. Mesela For
x=1 to 10 step 1 gibi bir ifadeyle döngü 1 den 10 a kadar 10 kez dönecektir. Yani yukarıdaki
ifadede x=1 alacak next’e kadar olan komutları yerine getirecek, bir sonraki adımda x=2
alarak next’e kadar olan komutları yerine getirecek, son olarak x=10 alarak next’e kadar olan
komutları yerine getirecek ve döngüden çıkıp artık next’in altındaki komutları yerine
getirmeye başlayacak. Eğer step 2 deseydik x 1,3,5,7,9 değerlerini olacaktı, eğer for x=0 to
10 step 2 deseydik x 0,2,4,6,8,10. Mesela 0 den 10 a kadar olan çift sayıların toplamını bu
şekilde döngü içerisinde yapabiliriz.
Örnek: Sıfır ile 10 arasındaki çift sayıları toplayan çok küçük bir program yazacağız.
Standart.exe olarak açtığınız programa bir tane command buton koyarak çift tıklayın. Çift
tıklayınca project penceresinden command penceresine geçecektir. Bu pencerede şu kodu
- 39 -
yazın ve F5 e basarak programı çalıştırıp command butonunu tıklayın. İçinde 30 yazan bir
Mesaj kutusu elde edeceksiniz.
Private Sub Command1_Click()
For x = 0 To 10 Step 2
a=a+x
Next x
MsgBox a
End Sub
VB'DE ALT SIRALI (İNDİSLİ) DEĞİŞKENLER
Vektör ve matris gibi indislerle ifade edilebilen değişkenler alt sıralı değişken olarak
tanımlanır. Böylece aynı isme ve değişken türüne ait bir değerler dizisi elde edilir.
ALT SIRALI DEĞİŞKENLERİN TANIMLANMASI
VB'de değişkenler, indislerinin alt ve üst sınır değerleri belirtilerek alt sıralı olarak tanımlanır.
Dim a( )
Dim Vektor(1 to 20) as Integer
Dim Matris (1 to 3, 1 to 4) as Long
Birinci değişkenin sınırları ve değişken türü belirtilmemiştir. İndislerin sayısı, alt ve üst sınırı
yoktur ve Variant olarak alınacaktır. İkinci değişken bir boyutlu, indis değerleri 1 den 20 ye
kadar değerler alabilen bir sayı dizisidir ve Integer türünde bir alt sıralı değişkendir. Üçüncü
değişken iki boyutludur. Birinci indis 1 den 3 e kadar ikinci indis 1 den 4 e kadar değerler
- 40 -
alabilmektedir. (3 x 4) elemanlı bir matris için kullanılabilir. Matrisin elemanları long değişken
türünde tanımlanmıştır.
Eğer alt sıralı bir değişkenin indislerinin alt ve üst sınırları belirtilmezse o değişken program
içerisinde kullanılmadan önce yeniden tanımlanmalıdır. Buna dinamik alt sıralı değişken
denir. İndislerinin sınırları program içinde değişebilen değişkenler için uygundur. Eğer
indislerin alt ve üst sınırları belirtilmişse programda bu değerlerin dışına çıkamaz. Böyle
değişkenlere statik alt sıralı değişken denir.
Dim A( )
………………
………………
i = 10 : j = 100
ReDim A(i to j)
………………
Burada i ve j nin değerleri program içinde değiştirilerek A değişkeninin alt ve üst sınırları farklı
değerler alabilir.
Aşağıdaki programda (10 x 10) luk bir M matrisinin değerlerinin text1 yazı kutusu ile girilmesi,
matrisin tüm elemanların toplanması ve sonucun text2 yazı kutusuna yazdırılması işlemi
yapılmaktadır.
Dim I As Integer, J As Integer
Dim M (1 To 10, 1 To 10) As Single
For I = 1 To 10
For J = 1 To 10
M ( I , J ) = Val ( text1 . text )
T=T+M(I,J)
Next J
Next I
text2 . text = T
Erase Değişken( ) ile alt sıralı bir değişkenin değerleri silinir. Bir değişkenin alt sıralı olup
olmadığı IsArray (değişken) komutu yardımıyla anlaşılır. Eğer değişken indisli ise IsArray
- 41 -
fonksiyonunun değeri True değilse False olur. VB'de en fazla 60 boyutlu değişken
kullanılabilir.
VB DE DOSYA İŞLEMLERİ
Bir dosya üzerinde okuma yazma yapılabilmesi için öncelikle o dosyanın açılması gerekir.
Open "Dosya Adı" For Append
As # Dosya No
Binary
Input
Output
Random
Dosyaları kapatmak için Close Dosya No
Açılmış olan tüm dosyaları kapatmak için sadece Close komutları kullanılabilir.
Dosyayı bilgisayardan tamamen silmek için Kill Dosya Adı komutu kullanılabilir. Açık olan
bir dosya silinemez önce dosyayı kapatmak gerekir.
Dosya yada dizinlerin isimlerini değiştirmek için;
Name eski dosya veya dizin ismi As yeni dosya veya dizin ismi
Dosyaya yazma işlemi;
Write # Dosya No, Değişkenler veya Print # Dosya No, Değişkenler
ile yapılabilir. Dosyaya yazılacak sayısal değerler Val(Değer) şeklinde tanımlanmalıdır. Aksi
taktirde karakter olarak yazılır.
Dosyadan okuma işlemi;
Input # Dosya No, Değişkenler
ile yapılabilir.
- 42 -
RASGELE ERİŞİMLİ DOSYALAR
Buraya kadar incelenenler "sıralı dosyalar" dır. Bunun dışında "rasgele erişimli dosyalar" da
kayıt
işlemlerinde
kullanılmaktadır.
Rasgele
erişimli
dosyalarda
bilgiye
daha
hızlı
erişilmektedir. Bu tip dosyalarda aynı anda okuma ve yazma işlemi yapılabilir.
Rasgele erişimli dosyalarda değişkenlerin dosya içerisindeki sıralaması
Type
veri grubunun adı
Değişken1 As Değişken Türü
Değişken2 As Değişken Türü
Değişken3 As Değişken Türü
……….
End Type
komutları yardımıyla belirlenir. Open deyimi ile dosya açılır. Dosya türü Random olarak
seçilir. Dosyaya kayıt Put, dosyadan okuma ise Get deyimleriyle yapılır. Rasgele erişimli
dosyalar yine Close komutu ile kapatılır.
- 43 -

Benzer belgeler

bilgisayarlı kontrol 6

bilgisayarlı kontrol 6 1.4. Seri Port Bağlacı (Konnektörü) RS-232C standardı, 22 tanesi kullanılan 25 iğneli D tipi bir konnektörü tanımlamaktadır. Bunların bir çoğu normal bilgisayar haberleşmelerinde kullanılmadığında...

Detaylı

Bilgisayarli Kontrol Sistemleri

Bilgisayarli Kontrol Sistemleri sürümü ile 2010 sürümü arasında herhangi bir fark bulunmamaktadır. Bundan sonra anlatılacaklar 2005 sürümü üzerinde yapılacaktır fakat anlatılanların hepsi 2010 sürümünde de problemsiz kullanılabil...

Detaylı

VISUAL BASIC.NET - IbrahimCayiroglu.Com

VISUAL BASIC.NET - IbrahimCayiroglu.Com Toollar (aletler) Visual Basic'in solunda bulunan ToolBox'in üzerindeki elemanlardır. Pointer (İmleç): Form üzerine yerleştirilmiş kontrol nesnelerini seçmek, yerini ve boyutunu değiştirmek için k...

Detaylı

Tıkla İndir - PC Bilkent Bilgisayar Kulübü

Tıkla İndir - PC Bilkent Bilgisayar Kulübü PROGRAMLAMA DILI NEDIR? PROGRAMLAMANIN TARIHI PROGRAM GELISRIRME SÜRECI IYI BIR PROGRAMIN NITELIKLERI PROGRAM GELISTIRME ADIMLARI 2-VB 60 KURULUMU Konfigürasyonlari SÜRÜMLER NET nedir? Visual Basic...

Detaylı