Frame, OptionBox, CheckBox
Frameler cerceve olarakda gecerler ve formların biraz daha profosyonel gorulmelerini sağlarlar. Genellikle secim kutuları ve onay kutuları ile birlikte kullanılırlar. Secim kutuları ise kullanıcıya birkac secenek sunar. Kullanıcıda bu seceneklerden sadece bir tanesini secebilir. Onay kutuları da tıpkı secim kutularına benzer fakat aynı anda birden fazla onay kutusu işaretlenebilir. Secim ve onay kutularının en onemli ozelliği Value’dur. Bu ozellik True ve False değeri atayarak işaret koydurabilir veya işareti kaldırabiliriz.

File-New Project komutunu vererek yeni bir proje başlatalım. Aşağıdaki gibi bir form tasarlayalım. OptionBox ve CheckBox’ların Click olayına ise aşağıdaki kodları yazalım. Private Sub Check1_Click()

If Check1.Value = 1 Then

Label1.FontBold = True

Else

Label1.FontBold = False

End If

End Sub

Private Sub Check2_Click()

If Check2.Value = 1 Then

Label1.FontItalic = True

Else

Label1.FontItalic = False

End If

End Sub

Program calıştırıldığında aşağıdaki gibi bir gorunum oluşur. Bu secim kutuları ve onay kutuları kullanılarak istenilen ozellikler verilebilir. Secim Kutularında value değerleri icin True veya False ozelliği verebiliyoruz onaykutularında ise 0 ve 1 değerlerini girmemiz gerekir.

Private Sub Check3_Click()

If Check3.Value = 1 Then

Label1.FontUnderline = True

Else

Label1.FontItalic = False

End If

End Sub

Private Sub Option1_Click()

If Option1.Value = True Then

Label1.ForeColor = vbRed

End If

End Sub

Private Sub Option2_Click()

If Option2.Value = True Then

Label1.ForeColor = vbBlue

End If

End Sub

Private Sub Option3_Click()

If Option3.Value = True Then

Label1.ForeColor = vbYellow

End If

End Sub

Timer
Zamanlayıcı denetimidir. Calışma kipinde gorulmezler. Onemli iki ozelliği vardır.

Enabled
Timer denetiminin aktif veya pasif olacağını belirler.

Interval
Timer denetiminin ne kadar aralıkla timer olayını ureteceğini belirleriz. Milisaniye cinsinden bir değer yazarız. 1 sn. icin 1000 yazmalıyız.

Timer
Timer olayını kullanarak istediğimiz aralıklalarla olaylar gercekleştirebiliriz. Aşağıdaki kodu kullanarak bir saat yapabiliriz.



Private Sub Timer1_Timer()

Text1.Text = Time

End Sub

ScroolBars
Formumuza yatay ve dikey kaydırma cubukları eklememizi sağlarlar. Her iki denetimde aynı ozellikleri taşırlar.

Max
Kaydırma cubuğunun alabileceği en buyuk değeri belirler.

Min
Kaydırma cubuğunun alabileceği en kucuk değeri belirler.

LargeChange
Kullanıcı kaydırma cubuğuna tıkladığında value değerinin en fazla ne kadar değişeceğini belirler.

SmallChange
Kullanıcı kaydırma cubuğuna tıkladığında value değerinin en az ne kadar değişeceğini belirler.

Value
Kaydırma cubuğunun değerini belirler.

Change
Kullanıcı kaydırma cubuğunun değerini değitirdiğinde gercekleşir.



Aşağıdaki şekilde form uzerine bir kaydırma cubuğu ve birde etiket yerleştirilmiştir. Kaydırma cubuğunun Max değeri 100 Min değeri ise 0 olarak ayarlanmıştır. Kullanıcının kaydırma cubuğunu suruklediğinde etiket icerisinde değerini gormek icin aşağıdaki kodu girmeliyiz.


Private Sub HScroll1_Change()

Label1.Caption = HScroll1.Value

End Sub




Listbox
Liste kutuları kullanıcılara bir liste sunmanın ideal bir yoludur. Kullanıcılar liste kusuntunda bulunan verileri inceleyebilir ve istediklerini secebilirler. Liste kutularının bazı ozellik ve metotları şunlardır.

List
Bu ozellik ile listedeki herhangi bir oğenin değeri oğrenilebilir. Listedeki ilk elamanın list ozelliği 0’dır. Ornegin listede bulunan 3. elemanın değerini oğrenmek icin şunu yazmalıyız;

MsgBox List1.List(2)




ListIndex
Listede secili olan elemanın indeks numarasını verir.

MsgBox List1.List(List1.ListIndex)

Yukarıdaki ifade yerine liste kutusunun text ozelliğide kullanılabilir.

List1.Text

Yukarıdaki her iki ifade de aynı işi gercekleştirir.

ListCount
Listede bulunan eleman sayısını verir. Eğer ListCount 0 ise liste kutusu boştur.

MultiSelect
Bu ozellik True olarak ayarlanmış ise listeden aynı anda birden fazla eleman secebiliriz. Listelerden birden fazla secim yapmak icin Shift tuşu kullanılır.

Sorted
Sadece tasarım kipinde ayarlanabilecek bir ozelliktir. Listedeki elemanları otomatik olarak sıralar.

AddItem
Liste kutularında kullanılan en onemli metotdur. Listeye yeni elemanlar eklemek icin kullanılır.

List1.AddItem "Uğur ŞAHIN"

RemoveItem
Listeden elemanları cıkartmak icin kullanılan bir metotdur.

List1.RemoveItem List1.ListIndex

Yukarıdaki kod listeden secili elemanı siler.

Clear
Liste boşaltır.

List1.Clear

ComboBox
Acılır liste kutularıda liste kutuları ile aynı ozellik ve metotları paylaşır. 3 değişik gorunum sunarlar; Bu gorunumleri style ozelliğini kullanarak değiştirebiliriz. Alabilecekleri değerler

0-Dropdown Combo ; İcerisine yazılabilir ComboBox

1-Simple Combo ;TextBox Gorunumunde

2-Dropdown List ; Salt okunur ComboBox.

Combo1.Style = 2

Shape
Form uzerine dikdortgen, kare, elips, cember ve oval cizmek icin kullanılır.

Shape
Shape kontrolunun cizeceği şekli belirler.

0: Dikdortgen

1: Kare

2: Elips

3:Cember

4: Oval Diktorgen

5: Oval Kare

BorderStyle
Nesnenin cerceve bicimini belirler.

0: Zemin rengiyle uyumlu, gorulmez

1: Solid, tam cerceve

2: Dash, Cizgi

3ot, Nokta

4: Dash Dot, Cizgi nokta

5: Dash Dot Dot, Cizgi nokta nokta

6: Inside Solid, Şekil ile cerceve kenarları cakışık şekilde

BorderWidth
Cerceve kalınlığını belirler. BorderStyle ozelliği Solid ve Inside Solid iken kullanılır.

FillColor
Şeklin ic boyama rengini belirler.

FillStyle
Şeklin icini boyamak icin kullanılacak deseni belirler.

Line
Form uzerine cizgi cizmek icin kullanılır.

X1, X2, Y1, Y2
X1 ve Y1 başlangıc noktasını X2 ve Y2 ise bitiş noktasını belirler.

DriveListBox
Surucu listelerini cağırmak icin kullanılır. Dizin ve dosya liste kutuları ile birlikte kullanılır. Name dışında onemli tek ozelliği Drive’dır.

Drive
Kullanıcının secmiş olduğu surucuyu gosterir. Calışma kipinde kullanılabilir.

Change
En populer olayıdır. Kullanıcı bir surucu sectiğinde gercekleşir.

DirListBox
Dizinleri listeletmek icin kullanılır. Surucu ve dosya liste kutuları ile birlikte kullanılır.

Path
Gosterilecek dizini ayarlayan ozelliğidir. Calışma kipinde kullanılabilir.

Change
En populer olayıdır. Kullanıcı bir dizin sectiğinde gercekleşir.

FileListBox
Dosyaları listeletmek icin kullanılır. Surucu ve dizin liste kutuları ile birlikte kullanılır.

FileName
Secili dosyanın adını verir.

Path
Gosterilecek dosyaların hangi dizin veya surucude olduğunu belirler. Calışma kipinde kullanılır.

Pattern
Hangi dosyaların gosterileceğini belirleyen biir ozellikltir. Bir filtre gorevi gorur. Gosterilecek dosyaların hangi dizin veya surucude olduğunu belirler. Calışma kipinde kullanılır.

Archive
True yada false değerini alabilir. Arşiv dosyalarının gorunumunu sağlar. Başlangıc değeri True’dur

Hidden
True yada false değerini alabilir. Gizli dosyalarının gorunumunu sağlar. Başlangıc değeri False’dir

ReadOnly
True yada false değerini alabilir. Salt okunur dosyalarının gorunumunu sağlar. Başlangıc değeri True’dur

System
True yada false değerini alabilir. Sistem dosyalarının gorunumunu sağlar. Başlangıc değeri False’dur

Change
Kullanıcı bir dosya sectiğinde gercekleşir.

PathChange
Path değeri değiştiğinde gercekleşir.

PatternChange
Pattern değeri değiştiğinde gercekleşir.



Yandaki şekilde gorulduğu gibi bir form dizayn edelim. Formumuza bir surucu listesi, bir dizin listesi, bir dosya listesi ve bir de image denetimi ilave edelim ve bu denetimlerin ozelliklerini aşağıdaki gibi değiştirelim sonrada aşağıda gorulen kodu girelim.



Nesne Ozellik Değeri

File1 Pattern *.bmp;*.wmf;*.ico

Image1 Stretch True

Image1 BorderStyle 1-Fixed Single



Private Sub Drive1_Change()

Dir1.Path = Drive1.Drive

End Sub



Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub



Private Sub File1_Click()

Image1.Picture = LoadPicture(File1.Path & "\" & File1.filename)

End Sub

Drag & Drop
Drag&Drop olayı bir nesnenin bir yerden başka bir yere suruklenmesi olayıdır. Bu olayları takip edebilek icin Visual Basic bir takım ozellik olay ve yontem sunar.

Drag Icon

Bir nesne taşınırken alacağı şekli belirler.

Drag Mode

Bu ozellik iki farklı değer alabilir.

0 : vbManual ; Bu durumda kullanıcı bir nesneyi surukle bırak yaptığında, nesnenin taşınabilmesi icin uzerine bırakılan nesnenin DragDrop olayına kod yazılır. Nesneleri taşımak icin Drag yonteminden faydalanılır.

1: vbAutomatic; Bu durumda nesne otomatik olarak suruklenir. Bu yontem kullanıldığında nesnenin click olayı calışmaz.

DragMode ozelliği manual olarak belirtilmişse kontrollerde Drag olayı, o kontrolun MouseDown olayında Drag metodu ile başlar.



Private Sub Text1_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single)

'Farenin sol tuşu basılı ise drag olayını başlat

If Button = 1 Then

Text1.Drag

End If

End Sub



DragDrop(Source As Control, X As Single, Y As Single)

Taşınan bir nesnenin bir kontrol uzerine bırakılması olayıdır. Bırakma işlemi icin kod bu olaya yazılmalıdır.

Source parametresi uzerine bırakılan nesneyi ifade eder. X ve Y parametreleri ise suruklenen elemanın bırakıldığı kordinatları verir.

DragOver(Source As Control, X As Single, Y As Single, State As Integer)

Taşıma esnasında hedef nesne uzerinden gecerken bu olay meydana gelir.

Source parametresi uzerine bırakılan nesneyi ifade eder. X ve Y parametreleri suruklenen elemanın bırakıldığı kordinatları verir. State parametresi ise 3 farklı değer alabilir.

0: vbEnter; Taşınan nesne hedef uzerine giriş yaptı

1: vbLeave; Taşınan nesne hedef uzerinden ayrıldı

2: vbOver; Taşınan nesne hedef uzerinde geciş yapıyor.




Formlarımıza Menu Ekleyelim
Butun profosyonel Windows programlarında menuler bulunmaktadır. Visual Basic formlarımıza menu ekleyebilmemiz icin bize imkan sağlar. Bir forma menu eklemek icin Tools-Menu Editor komutunu veririz. Bu komut verildikten sonra karşımıza yandaki gibi Menu Editor penceresi gelir.


Formlarımıza menu eklerken ve menuleri duzenlerken yanda gorulen pencereden faydalanacağız. Oluşturmak istediğimiz menunun başlığını Caption adlı bolume gireriz. Name kısmına ise bu menu icin bir ad yazarız. İlk menumuzu belirledikten sonra Next duğmesine basarız. Visual Basic Caption ve Name kutucuklarını bir sonraki menuyu ilave edebilmemiz icin boşaltır. Yeni menu oğeleri yaratıldıkca, aşağıda bulunan liste kutusunda listelenirler. Alt menuleri oluşturmak icin ise Next duğmesinin sol tarafında bulunan ok duğmelerini kullanırız. Var olan bir menunun silinmesi icin liste kutusundan menuyu secer ve Delete butonuna tıklarız. Yeni menuler ilave ederken ise Insert butonundan faydalanırız.

Microsoft Word’de Duzen menusune tıkladığımız zaman Kopyala icin Ctrl + C, Kes icin Ctrl + X, Yapıştır icin Ctrl + V kısayol tuşları gorulur. Visual Basic’de de bu tip menuler oluşturmak istediğimizde Menu Editor penceresindeki liste kutusundan bir menu sectikten sonra Shotcut bolumunu kullanabiliriz.

Popup Menuler
Windows’ta sağ duğmeye bastığımızda cıkan menulere popup menuler adını veririz. Visual Basic’de hazırladığımız projelerde de popup menuler oluşturabiliriz. Popup menu tasarımı normal menu tasarımı gibi gercekleşir. Sadece bu menunun visible ozelliğine false değeri verilir ve acılması istenilen yerde PopupMenu yontemi kullanılır.



PopupMenu MenuAdı,Flags, X, Y, Bold



MenuAdı; Menu Editorde tasarlanan menunun adı

Flags; X parametresinin nasıl kullanılacağını ve acılan menude farenin hangi tuşunun click olayını gercekleştireceğini belirler.

Flags parametresi aşağıdaki gibi kullanılır;

Flags=KoorX + Fare

KoorX aşağıdaki değerleri alır

0: Menu X kordinatının solunda yer alır

4: Menu X kordinatını ortalayacak

8: Menu X kordinatının sağında yer alır



Fare aşağıdaki değerleri alır

0: Sol fare tuşu ile menuden eleman secilebilecek

2: Sağ fare tuşu ile menuden eleman secilebilecek

Bold; Bu parametre ile menudeki elemanlardan biri kalın yapılabilir



Private Sub Text1_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single)

'Sağ fare duğmesine basıldı ise

If Button = 2 Then

PopupMenu mnuDuzen, 4, Text1.Left + X, Text1.Top + Y

End If

End Sub
__________________