6. MENÜ TASARIMI Visual Basic’ de Menü Editör ile yeni menüler ve menü çubukları oluşturulabilir, var olan menülere yenileri eklenebilir; mevcut menüler silinebilir ya da yerleri değiştirilebilir. Çok sayıda komut ve opsiyon içeren menüler, Windows’un en önemli özelliklerindendir ve sadece formlara iliştirilebilir. Menü tasarımı “Menu Editor” ile yapılır: Menü Editör’ü çalıştırmak için VB içinde şu yol takip edilir, Tools > Menu Editor veya Araç Kutusu üzerindeki kısayoldan;
Menu Editor de Menü kontrolleri oluşturmak için; Formu seç. Tools menüsünüden Menü Editor’e tıkla. Menüde görünmesi istenilen ilk menü başlığı için Caption metin kutusunda yazı yazılır. İlk menü başlığı için Name metin kutusunda isim verilir. Sağ ve sol oklara tıklayarak, menü kontrollerinin hangi seviyede olacağı belirlenir. Diğer menü kontrolünü oluşturmak için Next’ i seç. veya Insert’ e tıklayarak mevcut kontrollerin arasında yeni bir menü kontrolü oluşturulabilir. Menü Editör’ de Ok, tıklanarak, oluşturulmuş olan menü kontrolleri Form üzerinde görüntülenir.
File ana menüsü altında yeralan alt menü kontrolleri Örnek : Menü Çubuğu File ana menüsü altında yeralan alt menü kontrolleri Check seçeneğinin işaretli olması durumu Enable seçeneğinin işaretli olmaması durumu
Kontrol üstünde görünen yazı Menü kontrol liste kutusu, (menü içeriği) Menü kontrol özellikleri Kod yazımında kullanılan menü kontrol ismi “Check” işareti var ya da yok Tıklamak için aktif ya da değil Menü listesinde görünsün ya da görünmesin
VISUAL BASIC’ DE TEMEL KONTROLLER (NESNELER) Toolbox (Araç Kutusu) VB çalıştırıldığı zaman ekranın sol tarafında Toolbox görünür. Toolbox’ta program yaparken kullanılan kontroller bulunur. Kontroller bunlarla sınırlı değildir. Araç çubuğuna sağ tıklayıp başka kontroller de ilave edilebilir. İstenilen “Ocx” dosyası listede yoksa ProjectComponents ile de eklenebilir. Kontrol Özellikleri Kontroladı.özellik=değer Her kontrol elemanı kendisine ait özellikleri sayesinde kullanıcıya bir çok seçenek sunar. Bu seçenekler tasarım anında ”properties” penceresinden veya program çalışırken de kodlar ile değiştirilebilir.
Formlar Özellikler AutoRedraw Form üzerinde bulunan çizimlerin ve yazıların form üzerine başka bir form geldiğinde veya form kapatıldığı zaman bozulmamasını sağlar. BorderStyle 0 Formun boyutları değiştirilemez. 1 Boyutları değiştirilemeyen ama taşınabilir form. 2 Default değeri. 3 1 e benzer 4 Başlığı küçük olan form. 5 4 e benzer ama boyutlandırılabilir. ControlBox Form üzerinde bulunan sol tarafdaki ikon üzerine basınca çıkan kontrol kutusunun açılması sağlanır. Icon Form üzerinde bulunan ikonun değişmesi için kullanılır. Minimize edildiğinde bu ikon ile temsil edilir. KeyPreview Form üzerinde klavyenin kullanılması için True yapılır.
MaxButton Form üzerinde bulunan max butonu için kullanılır. MinButton Form üzerinde bulunan min butonu için kullanılır. Moveable Formun kullanıcı tarafında taşınmaması için kullanılır. ShowInTaskbar Formu minimize yapınca görev çubuğunda göstermez. StartUpPosition Formun başlangıçta ekranın neresinde olacağını belirler. 0 Manual 1 Form içinde bulunduğu formun ortasında (MDI formlarda) Ekranın ortasında Devamlı kayarak WindowState 0 Normal 1 Minimize 2 Maximize
Top Left Height Width Left, Top, Width, Height VB kontrollerinin (nesnelerinin) form üzerinde konumlandırılmalarını sağlarlar. Left Top Width Height
CommandButton (Komut Düğmesi) Bir olayın kullanıcı tarafından başlatılması için kullanılır. Özellikler Caption Buton üzerindeki başlık ayarlanır. Cancel TRUE iken Form üzerindeki butonun ESC tuşu ile çalışmasına izin verir. Default TRUE iken Form üzerindeki butonun ENTER tuşu ile çalışmasına izin verir. Enabled Butonun aktif olup olmamasını sağlar. Style Komut düğmesinin yazılı veya resimli olmasını sağlar. 0 : Üzerinde Caption özelliği ile belirlenen yazı bulunur. 1 : Üzerinde Picture özelliği ile belirlenen resim bulunur. Picture Bu özellik Style özelliği 1 yapılırsa kullanılır. Komut düğmesi aktif iken (enabled özelliği TRUE) belirlenen resim görünür. DisabledPicture Bu özellik Style özelliği 1 yapılırsa kullanılır. Komut düğmesi pasif iken (enabled özelliği FALSE) belirlenen resim görünür.
Tek başına kullanılmaz, diğer kontrolleri gruplamak için kullanılır. Frame (Çerçeve) Tek başına kullanılmaz, diğer kontrolleri gruplamak için kullanılır. Çerçeve içine koyulan kontroller çerçeveye bağımlıdır ve konumları bu çerçeve dışına çıkamaz. Label (Etiket) Form üzerinde bir bilginin gösterilmesi için veya Textbox’ın açıklaması olarak kullanılır. Özellikler AutoSize Label içindeki bilginin uzunluğuna göre otomatik olarak boyutlarının ayarlanmasını sağlar. BackStyle Label transparent veya opaq olmasını sağlar. Caption Label üzerindeki başlık ayarlanır.
Textbox (Metin Kutusu) Bilgi girişi için kullanılır. Genel bir alışkanlık olarak metin kutularının önüne bir Label nesnesi konularak kullanıcı bilgilendirilir. Özellikler Text Metin kutusuna girilen değerler bu özelliğe atanır. TooltipText Program içerisinde metin kutusunun üzerine gelindiği zaman açılan bir bilgi penceresi oluşturur. MultiLine Text kutusuna birden fazla satır girilmesi için kullanılır, aksi halde tek satır yazılabilir. PasswordChar Metin kutusundan şifre girmek için kullanılacak ise; kullanıcının girdiği karakterleri belli etmemek için kullanılır. Multiline özelliği = True olunca çalışmaz. ScroolBars Text kutusunun MultiLine özelliği True olması durumunda etkin olur ve metin kutusuna kaydırma çubuklarını ekler. MaxLength Metin kutusuna girilebilecek maksimum karakter sayısını belirler.
Name Yordam içerisinde text kutusunun adını değiştirmek için kullanılır. Alignment Textbox içerisindeki yazının sağa, sola veya ortaya yazılmasını sağlar. 0 : Sola 1 : Sağa 2 : Ortaya Appearance Text kutusunun üç boyutlu olarak görünümünü sağlar. 0 : Düz 1 : Üç boyutlu BackColor Text kutusunun zemin rengini değiştirir. BorderStyle Text kutusunun çerçeve özelliğini belirler. 0: Çerçeve yok 1: Çerçeve var Enabled Text kutusunun aktif veya pasif olmasını sağlar. Locked Text kutusunu veri girilemeyecek şekilde kitler. TabIndex Bu indeks numarası yardımıyla Tab tuşu kontroller arasında geçiş sağlar.
CheckBox (İşaret Kutusu) Belli seçeneklerin işaretlemesini sağlar. Özellikler Alignment Check işaretinin solda veya sağda olmasını sağlar. Value Check işaretinin özelliklerini belirler. 0 : İşaretsiz 1 : İşaretli 2 : Belirsiz Style ve Picture özelllikleri ile işaret kutuları resimlendirilebilir. Örnek : If Check1.Value = 0 Then Text1.Text = "İşaretsiz" If Check1.Value = 1 Then Text1.Text = "İşaretli" If Check1.Value = 2 Then Text1.Text = "Belirsiz"
Örnek : Private Sub Check1_Click() If Check1 = 1 Then Text1.FontBold = True If Check1 = 0 Then Text1.FontBold = False End Sub Private Sub Check2_Click() If Check2 = 1 Then Text1.FontItalic = True If Check2 = 0 Then Text1.FontItalic = False Private Sub Check3_Click() If Check3 = 1 Then Text1.FontUnderline = True If Check3 = 0 Then Text1.FontUnderline = False Private Sub Form_Load() Check1.Alignment = 1: Check2.Alignment = 1: Check3.Alignment = 1 Check1.Caption = "Kalın" Check2.Caption = "Eğik" Check3.Caption = "Altını Çiz" Frame1.Caption = "Biçimlendirme"
OptionButton (Seçenek Düğmesi) Örnek : Birkaç seçenekten sadece birinin seçilmesini sağlar. Butonlardan biri seçildiğinde diğerinin seçilmişliğini iptal eder. Eğer aynı formda iki grup option button varsa bu gruplar Frame içine alınmalıdır. Private Sub Form_Load() Option1.Value = False Option2.Value = False Option3.Value = False Option1.Caption = "Sola Hizala" Option2.Caption = "Sağa Hizala" Option3.Caption = "Ortaya Hizala" End Sub Private Sub Option1_Click() Text1.Alignment = 0 Private Sub Option2_Click() Text1.Alignment = 1 Private Sub Option3_Click() Text1.Alignment = 2 Özellikler Value Option butonunun özelliklerini belirler. False : İşaretsiz True : İşaretli
Timer (Zamanlayıcı) Zamana bağlı bazı kontollerin çalışmasını sağlar. Örnek olarak saate bağlı olarak çalışan alarm veya belirli sürelerde değişen özellikler bu kontrol ile yapılabilir. Timer() olayı Interval özelliği ile belirlenen süre içerisinde periyodik olarak bu olay meydana gelir. Timer olayına yazılacak kodun çalışması Interval özelliğine verilen süreden daha uzun olursa, meydana gelmesi gereken olay çalışmaz. Özellikler Enabled True olursa zaman çalışmaya başlar. False olursa durur. Interval Timer olayının gerçekleşeceği (Milisaniye cinsinden) zaman periyodudur. Alabileceği değerler 1-65535 arasında değişir. Periyot en fazla 65535 ms, yani 65 saniye olabilir. Interval 0 değerini alırsa Timer kontrolü çalışmaz.
Örnek : Timer kontrolü kullanarak metin kutusunda yanıp-sönme efekti oluşturunuz. Private Sub Form_Load() Timer1.Interval = 1000 Text1.Alignment = 2 Text1.Text = "Bilgisayar Programlama" End Sub Private Sub Timer1_Timer() Static i c = Text1.BackColor Text1.BackColor = Text1.ForeColor Text1.ForeColor = c Form1.Caption = i i = i + 1 If i > 5 Then Beep If i > 10 Then Timer1.Interval = 0: Exit Sub
ScrollBar (Yatay ve Dikey Kaydırma Çubukları) Yatay ve dikey olmak üzere iki tip kaydırma çubuğu vardır ve aynı özelliklere sahiptir. Bu kontrol, metin kutularında, liste kutularında ve combo kutularında kullanılan kaydırma çubuklarından farklıdır. Ses seviyesi değiştirme, renk ayarlama gibi işlerde değerleri değiştirmek için kullanılır. Özellikler Value Kaydırma çubuğunun temsil ettiği değeri gösterir. Max, Min Kaydırma çubuğunun alabileceği (temsil edeceği) max ve min değerlerdır. Smallchange Kaydırma çubuğundaki oklara tıklandığında, bu özelliğin değeri kadar değişir. Largechange Dikey kaydırma çubuğunda PgUP PgDn tuşları ile, bu özelliğin değeri kadar değişir. Srollchange Kaydırma çubuğundaki kutucuk sürüklendiğinde, bu özelliğin değeri kadar değişir.
Örnek : Dim r, g, b As Integer Private Sub Form_Click() MsgBox (r & "," & g & "," & b) End Sub Private Sub Form_Load() Label1 = "RED“: Label2 = "GREEN“: Label3 = "BLUE" HScroll1.Max = 255:HScroll2.Max = 255:HScroll3.Max = 255 Private Sub HScroll1_Change() r = HScroll1.Value Form1.BackColor = RGB(r, g, b) Private Sub HScroll2_Change() g = HScroll2.Value Private Sub HScroll3_Change() b = HScroll3.Value
ListBox (Liste Kutusu) Windows uyumlu programlarda normal liste kutusudur. Listedeki elemanları alt alta gösterir. Özellikler AddItem Listeye bir veri girişi yapmak için kullanılır. Sıra numarası sıfırdan başlar. List1.AddItem “İzmir”,34 (İzmir’ i 35. sıraya yerleştirir.) RemoveItem Listeye bir veriyi silmek için kullanılır. Clear Listenin içeriğinin tamamını silmek için kullanılır. Columns Listenin içine kolon koymamıza yarar. Text ListBoxın içeriğinden bir veriyi göstermek için kullanılır. Style Liste içeriği bir checkbox gibi olur.
ListIndex Listenin içerisinde seçilmiş olan veriyi veya seçilecek olan verinin index numarasını verir. Aynı zamanda yan yana 2-3 Liste Kutusu olduğunda birbirlerine bağlamak içinde kullanılır. List(N) Listedeki N nolu elemanın değerini öğrenmek veya değiştirmek için kullanılır. ListCount ListBoxın içerisindeki veri sayısını verir. List1.ListCount – 1 son elemanı verir. MultiSelect Liste içerisindeki verilerin seçilmesini sağlar. 0: Seçim yapılamaz 1: Fare ile üzerine gidilen text seçilebilir. 2: Klavyeden Shift veya Ctrl tuşuyla seçim yapmamızı sağlar. SelCount MultiSelect özelliği 1 veya 2 olan Liste kutularında seçili eleman sayısını verir. Selected(index) MultiSelect özelliği 1 veya 2 olan Liste kutularında index numaralı elemanın seçili olup olmadığını belirtir.
Örnek : Ders Ekle/Bırak programıdır. ComboBox’da olmayan dersler metin kutusundan listeye eklenebilir. Ders bırakıldığında, bırakılan ders 2. listeye atılır. (Birden fazla seçim için Multiselect=1 veya 2 yapınız.)
Private Sub Form_Load() Form1.Caption= "Ders Ekle/Bırak" Text1.Text = "" Command1.Caption = "Ders Ekle" Command2.Caption = "Ders Bırak" Command1.Default = True Command3.Caption = "Temizle" Combo1.Text = "Dersleri Seçiniz" Combo1.AddItem "Matematik 2" Combo1.AddItem "Fizik 2" Combo1.AddItem "Bilgisayar Programlama " Combo1.AddItem "Statik" End Sub Private Sub Command1_Click() Text1.SetFocus If Text1.Text <> "" Then List1.AddItem Text1.Text End If Text1.Text = "" End Sub Private Sub Command2_Click() Dim i As Integer 5 For i = 0 To List1.ListCount - 1 If List1.Selected(i) Then List2.AddItem List1.List(i) List1.RemoveItem i GoTo 5 Next i Private Sub Command3_Click() List1.Clear: List2.Clear Private Sub Combo1_Click() For i = 0 To List1.ListCount - 1 If List1.List(i) = Combo1.Text Then MsgBox "Bu ders zaten var !" GoTo 10 End If Next i List1.AddItem Combo1.Text 10 End Sub
ComboBox (Açılan Liste Kutusu) Windows uyumlu programlarda açılan liste kutusudur. Genellikle değerleri daha önceden belli olan elemanların seçimi için kullanılır. Liste kutularına benzer ancak listedeki elemanlardan sadece seçileni ekranda görüntüler. ListBox’ a benzer özellikler kullanılır. Özellikler AddItem Combonun listesine yeni bir text eklemek için kullanılır. RemoveItem Combonun listesinden bir text çıkartmak için kullanılır. IntegralHeight Bu özellik True ise açılan kutuda en alttaki yazının tam olarak görünmesi için kendisini otomatik olarak boyutlandırır. Sorted Combo içindeki yazıların sıralı olmasını sağlar.
Örnek : Private Sub Combo1_Click() If Combo1 = "Kırmızı" Then Form1.BackColor = RGB(255, 0, 0) Form1.Caption = Combo1.Text ElseIf Combo1 = "Yeşil" Then Form1.BackColor = RGB(0, 255, 0) ElseIf Combo1 = "Mavi" Then Form1.BackColor = RGB(0, 0, 255) End IF End Sub Private Sub Form_Load() Combo1.Text = "Kırmızı" Combo1.AddItem "Kırmızı" Combo1.AddItem "Yeşil" Combo1.AddItem "Mavi"
PictureBox (Resim Kutusu) Örnek : Resim kutusu içinde BMP, JPG, ICO, WMF, DIB uzantılı resimlerin gösterilmesini sağlar. Ayrıca çizim kontrollerini de gösterebilir. (Line, Circle, Shape). Private Sub Command1_Click() Picture1.Picture = LoadPicture("deu.jpg") Picture1.AutoSize = False End Sub Özellikler Picture Resim kutusunda görüntülenecek resmi belirtir. Autosize True olduğunda resimin büyüklüğüne göre resim kutusunu yeniden boyutlandırır. Resim dosyayı kutudan küçükse geçerlidir.