Visual Basic Program Örnekleri 

Visual Basic ve Renk 
Visual Basic’in renk kutusundan seçtiğiniz renkler 16’lık sayı 
düzenine KK, YY, MM iki haneli ve 16’lık düzende sayılardır. 
Visual Basic’i kullanarak her bir renk’ten 1’den 255’e kadar 
bir ton alabilir, bunları karıştırabilir ve böylece 16.581.375 
adet değişik renk elde edebilirsiniz. İşte size RGB komutu 
kullanılarak form üzerine basit bir palet yaratan ufak bir 
program. RGB değerini değiştirerek çok değişik görüntüler elde 
edebilirsiniz. Örnekte ayrıca bir formun ortasının nasıl 
bulunacağını da görebilirsiniz. 
   Private Sub Form_Click()
   ScaleMode = 1   ' Ölçü sistemini piksele çevir
   CX = ScaleWidth / 2 ' Formun dikey ortasını bul
   CY = ScaleHeight / 2    ' Formun yatay ortasını bul
   DrawWidth = 3   ' Çizim genişliğini ayarla
   r = 100
   For I = 50 To 0 Step -1
   F = I / 50
   F1 = 1 - F: F2 = 1 + F  ' Hesaplamalar...
   r = r + 10: b = b + 10
   If b > 50 Then g = g + 5
   ForeColor = RGB(r, g, b) ' Önalan rengini belirle
   Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
   Next I
   End Sub

Programınızı yazdıktan sonra formunuzun üzerine bir kere tıklayın. 
Güzel bir renk paletinin oluştuğunu göreceksiniz.
Visual Basic’in size sunduğu diğer bir renk komutu ise 
QBColor komutudur. Bu komutu kullanarak QBASIC’ten kalan sınırlı 
15 tane temel rengi kullanabilirsiniz. Aktif formun arkaplan rengini 
maviye boyamak için şunun gibi bir komut kullanmalısınız: 

             Form1.ForeColor = QBColor(1)

Visual Basic'te yeni sürümlerdeki kolaylık 
VB’nin her yeni sürümü ile programcıların işini daha da 
kolaylaştıracak komutlar ve özellikler geliyor. 
İşte With (Birlikte) komutu bunlara en güzel örnek. 
Şimdi aşağıdaki satırları inceleyin ve bazı 
komutların ne kadar gereksiz olarak kullanıldığını görün: 

	Private Sub Form_Load()
	Form1.Height = 4000
	Form1.Caption = "With Örneği"
	Form1.BackColor = QBColor(6)
	End Sub

 

Burada dikkat ettiğiniz gibi Form1 nesnesi her satırda tekrarlanmış. 
VB 4.0 ile bu soruna bir çözüm 
getirilerek With komutu yaratılmıştır. 
Aşağıdaki örnek size bu komutun nasıl kullanıldığı hakkında 
fikir verecektir. 

  Private Sub Form_Load()
  With Form1 'Form1'i kullanarak...
  .Height = 4000 'Yüksekliği 4000,.Caption = "With Örneği" 
  'Form başlığını "With Örneği",
  .BackColor = QBColor(6) 'Arkaplan rengini yeşil yap.
  End With 'Komutu bitir
  End Sub

 

Bu komutu kullanırken With ve End With satırları 
arasına yine With ve End With satırlarını 
girebilirsiniz fakat bu iki komut arasına 
komplike komutlar ve döngüler eklememelisiniz.
Bu hem programınızı yavaşlatır hem de ciddi 
hatalara sebep olabilir. 
Visual Basic ile Kes - Kopyala -Yapıştır 
Windows altında çalışan hemen hemen tüm metin editörleri 
panoyu kullanır. Panoya veri yapıştırmayı, panodan veri 
almayı geçen aylarda verdiğimiz örneklerle iyice açıkladık. 
Peki metin editörleri metinin hangi parçasının seçildiğini 
nasıl anlıyor. Metnin belirli bir kısmını nasıl kesip alıyor?
 İstenilen metni bütün bir yazı içinde nasıl buluyor? 
Bu dediklerimizi yapmak için Visual Basic ile hazırlanmış 
tüm metin editörleri hemen hemen aynı teknikleri uygular. 
İşte bunlardan bir kaçı:
Metnin, kullanıcı tarafından seçilen kısmının anlaşılıp 
panoya kopyalanması için (Kopyala)


     ClipBoard.SetText screen.ActiveControl.SelText
Metnin, kullanıcı tarafından seçilen kısmının anlaşılıp panoya 
kopyalanması ve seçilen yerin silinmesi için (Kes)
  • 
    ClipBoard.SetText screen.ActiveControl.SelText 
  • 
    
    
    ' Seçilen metni ilk önce kopyala
    
    
                screen.ActiveControl.SelText = "" 
    
    ' Sonra işaretlenen yeri sil.
    Panodan yapıştırılan kısmın kullanıcı tarafından seçilen 
    kısmın üzerine yazılması için(Yapıştır)
    
    
        screen.ActiveControl.SelText = ClipBoard.GetText() 
    Metnin belirtilen kısmını anlamak ve metnin herhangi 
    bir kısmını otomatik olarak seçtirmek için SelText komutunu, 
    metnin hangi kısımdan seçilmeye başlanacağını tayin etmek için 
    SelStart komutunu, Seçilecek metnin uzunluğunu ayarlamak için 
    ise SelLength komutunu kullanıyoruz. Hatırlayacağınız gibi 
    Microsoft Word kullanılırken CTRL+A tuş kombinasyonu tüm metni 
    otomatik olarak seçebiliyordu. Sadece ufacık bir kod parçasıyla 
    bunu gerçekleştirebiliriz.
    
    
    
                      text1.SelStart = 0 
       ' SelStart komutu metnin işaretlenen kısmının nereden
       ' başlayacağını belirtir. Biz işaretlemeye metnin 
       ' başından başlamak istiyoruz...
    
               text1.SelLength = Len(text1.Text) 
    
    'Metnin işaretlenen kısmı metnin uzunluğu kadar olacak
    Peki metin editörleri uzun bir yazının içinde istediğimiz kelimeyi nasıl arayıp buluyorlar?
    Bunu anlamak için aşağıdaki kodu bir inceleyin.
      
      Dim ara, nerede  ' Kullanacağımız değişkenleri atayalım
      ' Kullanıcıdan aranacak metni iste
      ara = InputBox("Aranacak metni girin:", 
      "Metin Teknikleri Örneği", , 1000, 1000)
      nerede = InStr(text1.Text, ara) ' Metni yazı içinde ara
      If nerede Then ' Bulunursa...
      text1.SelStart = nerede - 1  
     ' Bulunan metnin başını işaretle
      text1.SelLength = Len(ara)   
     ' Bulunan metnin uzunluğu kadar yazıyı işaretle
      Else   ' Metin bulunamazsa...
      MsgBox "Metin bulunamadı!", 64
      End If
    
    
    
    Bütün bunları bildikten sonra oturup kendi metin editörünüzü kolayca yazabilirsiniz...
    
    Yeni Kontroller: TreeView 
    Zaman zaman Visual Basic 4.0 ile gelen yeni kontrollere değiniyoruz. 
    İşte bu yeni kontrollerden birisi: Treeview. Windows 95’in Gezgininde 
    sol klasör penceresi bu kontrolle oluşturulmuş. Kontrolün kullanımı 
    gayet basit, nasıl kullanıldığını merak ediyorsanız hemen boş bir 
    formun üzerine bir Treeviev kontrolü yaratın ve aşağıdaki kodları 
    yazmaya başlayın. Kontrolün kullanımı hakkındaki tüm açıklamalar 
    kodların arasında verilmiştir. 
      Private Sub Form_Load()
      Dim nodX As Node
      ' Bir metni ana başlık olarak atamak için aşağıdaki 
       gibi bir komut kullanmalısınız.
    
      Set nodX = TreeView1.Nodes.Add(, , , "Müzik")
      'Aşağıdakinin amacı 1. Başlığa bir alt başlık eklemektir.
      ' Eklediğiniz altbaşlıklar eklenme sıralarına göre 
      görüntülenir.
    
      Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Jazz")
      Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Pop")
      Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Klasik")
      Set nodX = TreeView1.Nodes.Add(1, tvwChild, , "Rock")
    
      ' Pop alt başlığı altına 2.altbaşlık daha ekliyoruz.
      
      Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Techno")
      Set nodX = TreeView1.Nodes.Add(3, tvwChild, , "Rave")
    
      ' 2. Anabaşlığı ekliyoruz.
    
      Set nodX = TreeView1.Nodes.Add(, , , "Resim")
    
      ' Tüm ağacı göstermek için kontrolü tazele.
    
       nodX.EnsureVisible
    
       End Sub
     
    ' Ağacın dallarından birine tıklandığında...
    
       Private Sub TreeView1_NodeClick(ByVal Node As Node)
       mesaj$ = "Tıkladığınız Liste Seçeneği: " + Node.Text
       tip = 64
       baslik$ = "Treeview Örneği"
       ' Hangi dala tıklandığını söyle.
       MsgBox mesaj$, tip, baslik$
       End Sub
    
    
    Dosya Kopyalamak 
    VB'de dosyaları bir yerden bir yere kopyalamak için FileCopy isimli bir 
    komut olduğunu biliyor muydunuz? 
    
    FileCopy "C:\COMMAND.COM", "C:\COMMAND.XXX" 
    gibi bir komut verdiğinizde ana dizinde bulunan COMMAND.COM isimli 
    dosyanın yine aynı dizinde COMMAND.XXX isimli bir kopyası oluşacaktır. 
    
    KeyPreview 
       
       Option Explicit
       Const KEY_F1 = &H70
       Const KEY_F2 = &H71
       Const KEY_ESCAPE = &H1B
    
    
    Şimdi de bu yukarıda belirttiğiniz tuşlara basıldığında neler 
    olacağını tayin edelim. Yukarıda belirtmediğiniz tuşlara bastığınızda 
    (Aşağıda bunları kullanmış olsanız bile) Formunuz bunu daha önceden 
    olduğu gibi sıradan tuş vuruşları olarak algılayacaktır. 
    
    
      Sub Form_KeyDown (KeyCode As Integer, Shift As Integer)
      Select Case KeyCode
        Case KEY_F1: Text1.text = Date$ 
      ' F1 tuşuna basıldığında metin kutusundaki metin
      ' silinsin ve yerine tarih atansın.
       Case KEY_F2: Text1.Text = Time$ 
      'F2 tuşu ise metin kutumuza zamanı yazsın
       Case KEY_ESCAPE: Unload Me 
      ' ESC tuşumuz ise aktif formu bellekten atsın.
        End Select
      End Sub
    
    
    Programlarınızda kullanabileceğiniz diğer tuş kodlarını Visual Basic 
    ile gelen ve tüm diğer sabitlerin bulunduğu CONSTANT.TXT dosyasından 
    bulabilirsiniz. Ayrıca yukarıda belirttiğimiz tuşları diğer tuş 
    kombinasyonlarıyla da kullanabilirsiniz (Örnek CTRL+ALT+F5 gibi.)
    Masaüstünün Resmini değiştirmek 
    Visual Basic ile masaüstü resmini değiştirmek çok kolaydır. 
    Sadece USER32.DLL dosyasında bulunan bir fonksiyonu çağırmak 
    yeterlidir. Yemedik, içmedik sizin için bu API'yi kullanan bir 
    program oluşturduk. Öncelikle FORMdan ayrı bir BAS modülüne 
    aşağıdaki tek bir satırı girin. 
    
      Declare Function SystemParametersInfo Lib "user32" Alias
      "SystemParametersInfoA" (ByVal uAction As Long, ByVal
      uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni
      As Long) As Long
    
    
    Fonksiyonu programınıza tanıttıktan sonra şekildeki gibi 
    bir form oluşturun ve ilgili bölümlere kodları yazın. 
    
       Private Sub Form_Load()
       Dim Temp As String
       Temp = InputBox("Lütfen WINDOWS 
       klasörünü girin", "", "C:\WINDOWS\")
       If Temp = "" Then End   'Vazgeç'e basıldı
       If Right$(Temp, 1) <> "\" Then Temp = Temp + "\"
       list1.Tag = Temp
       Temp = Temp + "*.bmp"
       Temp = Dir$(Temp) 
       Do While Temp$ <> "" 
       Temp = Dir$  
       'Dosya bulunamazsa döngüden çık.
    
       If Temp = "" Then Exit Do
       list1.AddItem Temp
       Loop
      
       list1.AddItem "(Yok)"
       Show 
       list1.SetFocus
       list1.ListIndex = 0
       End Sub
     
    'Küçük açıklama: Formun yüklenme aşamasında 
    'Setfocus olayını kullanırsanız VB hata verir.
    
     
       Private Sub list1_DblClick()
        Dim Temp As String
        Dim BMPFile As String   
        Temp = Tag
        If list1.Text = "(Yok)" Then
        BMPFile = "(Yok)"
        Else
         BMPFile = Temp + (list1) 
        End If
       SystemParametersInfo SPI_SETDESKWALLPAPER, 0, 
       ByVal BMPFile, SPIF_UPDATEINIFILE
       End Sub
    'Değiştir tuşu
    
    
    
    
      Private Sub Command1_Click()
      list1_DblClick
      End Sub
    
    
    
    Programınızı çalıştırdıktan sonra karşınıza BMP dosyalarınızın 
    yerini soran bir mesaj kutusu gelecektir. 
    Mesaj kutusuna uygun bir dizin girdikten sonra artık liste kutusundaki 
    ilgili resme çift tıklayarak veya değiştir tuşuna basarak resmi 
    masaüstüne yükleyebilirsiniz. Program aynı zamanda WIN.INI dosyasını 
    da haberdar ediyor. 
    
    
    --------------------------------------------------------------------------------
    Not :Bu Bilgiler Günümüzde yayınlanmakta olan BYTE, PC WORLD, CHIP Degilerinden 
    ve verdikleri CD lerden yararlanarak hazırlanmıştır. 
    ---------------------------------------------------------------------------------
    Hosted by www.Geocities.ws

    1