• Visual Basic 01.08.2008 1 Comment

    IMAGELİST (İMAJ LİSTESİ)

    Başka nesneler tarafından kullanılan resimleri saklar.

    PROPERTİES (ÖZELLİKLER)

    ListImages
    ImageList kontrolüne eklenecek resimler ListImages özelliğinin aşağıdaki alt özellik ve metotları ile yönetilir.
    ListImages.Add (Index,Key,Picture)
    ImageList kontrolüne yeni resimler eklemek için bu metot kullanılır. Buradaki Index ve Key parametreleri verilmezse resim sona,verilirse verildiği yere eklenir.
    ListImages.Add(, , LoadPicture(“Deneme.bmp”) satırı Deneme.Bmp dosyasını listedeki son resim olarak ekleyecektir.
    Bu tip listelerde Index parametresi ile listenin bir elemanına ulaşabiliyorduk.Buradaki Key parametresi bize alternatif bir erişim şekli sunar.Programcı isterse Index özelliği ile isterse string olan Key özelliği ile o elemana ulaşabilir.
    ListImages.Add(1,”İlk Resim”,LoadPicture (“İlk Resim”)satırı ile ulaşılabilir.Görüldüğü gibi Key özelliği resimleri yönetmek için sayılar yerine yazıları da kullanabilme imkanı verdiği için programlamayı kolaylaştırmaktadır.
    Tasarım zamanında Custom özelliği ile açılan aşağıdaki pencereyi kullanarak gerekli resimleri kolayca ekleyip çıkarabilirsiniz.

    ListImages.Count
    Liste içindeki resim sayısı bu özellikle öğrenilir.

    ListImages.Remove Index
    Liste içindeki Index numaralı elemanı siler.İlk elemanın index’i 1 dir.

    ListImages.Clear
    Liste içindeki bütün elemanları siler.

    ListImages(i).Picture
    Listedeki i numaralı resmi öğrenmek için bu özellik kullanılır.Buradaki ilk elemanın indexi 1’dir.Index yerine Key için verilen metin de kullanılabilir.

    Form1.Picture=ImageList1.ListImages(1).Picture

    ListImages(i).ExtractIcon
    Numarası verilen resimden bir ikon oluşturur.Buradan geriye dönen değer herhangi bir Icon özelliğine atanabilir.

    Form1.Icon=ImageList1.ListImages(1).ExtractIcon

    ListImages(i).Draw(hDC,x,y,sstyle)
    Liste içindeki bir resmi Picture özelliği ile alabileceğimiz gibi,Draw metodunu kullanarak başka bir kontrolün içine de çizdirebiliriz.

    Buradaki hDC parametresine çizdirilecek yerin hDC numarası, x,y ile koordinatları Style ile de uygulanacak efect belirlenebilir.Çoğumlukla ImageŞist komut düğmeleri için düşünüldüğünden dolayı verilecek efektlerde bir komut düğmesinin alabileceği değişik durumları temsil eder. Style parametresinin alabileceği değerler şunlardır;

    0,,im1Normal: Aynen çizilir.
    1,,im1Trasparent:Kopyalandığı yerin altını gösterecek şekilde çizilir.
    2,,im1Selected: Seçilmiş bir kontrol efekti verilerek çizilir.
    3,,im1Focus: Klavye kontrolünü elinde bulunduran bir kontrol efekti verilerek çizilir.

    ImageList1.ListImages(1).Draw Form1.hDC,0,im1Selected

    ListImages(i).Key

    Eleman eklenirken ona bir Key verebileceğini de belirtmiştik. Bu değer daha sonra Key
    özelliği ile öğrenilip değiştirilebilir.

    METHODS

    Overlav(Index1,Index2)

    Verilen iki resmin geçişini oluşturur.Yani Index2 ile belirtilmiş resmi,Index1 ile de belirtilmiş resmin üzerine çizer. Birden fazla resmin bu şekilde arka arkaya gösterilerek yumuşak geçişli animasyonlar yapılabilir.

    Picture1.Picture=ImageList1.Overlay(1,2)

    Örneğin bir animasyonun parçalarını oluşturan 7 tane resmi ListImage kontrolüne ekleyerek bir Timer aracılığı ile bunları arka arkaya göstererek,normal gösterimle,Overlay gösterim arasındaki farkı görebilirsiniz.

    Private Sub Form_Load()
    Dim i
    For i = 1 to 7
    ‘Anim1.bmp- Anim7.Bmp dosyaları yükleniyor.
    Call ImageList1.ListImages.Add(, , LoadPicture(“anim” & i & “.bmp”))
    Next
    End Sub
    Private Sub Timer1_Timer()
    Static i
    Dim j
    İ =i mod 6
    İ =i+1
    j =i+1
    j = (i mod 7)+1
    ‘Overlay gösterim
    Picture1.Picture=ImageList1.Overlay(i,j).
    ‘Normal gösterim
    Picture2.Picture=ImageList1.ListImages(i).Picture
    End Sub

    İMAGELİST’e KOD İLE RESİM EKLEMEK

    Private Sub Form_Click()

    CommonDialog1.ShowOpen

    ImageList1.ListImages.Add , “open”, LoadPicture(CommonDialog1.FileName)

    End Sub

    İMAGELİST’teki İKİ RESMİ BİRLEŞTİRMEK

    Private Sub Form_Click()

    Set Picture3.Picture = ImageList1.Overlay (index1, index2)

    ‘ Set Picture3.Picture = ImageList1.Overlay (”key1″, “key2″)

    End Sub

    Program ile birlikte bilgisayarınıza kurulan fakat siz onu bulmadıkça gizlenen ImageList kontrolü sayesinde bir kaç satır kodla bu işi gerçekleştirebiliyorsunuz. Programı çalıştırdığınız anda ImageList içindeki küçük simgeler menü seçeneklerine yerleştirilecek ve program sonlanana kadar orada kalacaktır.

    Private Sub Form_Load()
    Dim i%
    Dim hMenu, hSubMenu, menuID, x
    hMenu = GetMenu(hwnd)
    hSubMenu = GetSubMenu(hMenu, 0)
    For i = 1 To 4
    menuID = GetMenuItemID(hSubMenu, i - 1)
    x = SetMenuItemBitmaps(hMenu, menuID, &H4, img.ListImages(i).Picture,
    img.ListImages(i).Picture)
    Next
    menuID = GetMenuItemID(hSubMenu, 5)
    x = SetMenuItemBitmaps(hMenu, menuID, 0, img.ListImages(5).Picture, 0&)
    End Sub

    İMAGELİST

    TANIM

    Visual Basic’de ExtractIcon metodunu kullanarak herhangi bir resmi simge haline getirebilirsiniz.

    Bunu yapmak için Imagelist kontrolünün ListImage özelliğini kullanmalısınız

    VB 3′de bazı API fonksiyonlarını kullanarak her menü komutunun kenarına bir resim yerleştirebiliyorduk. VB4′te ise bu işlem çok daha kolay bir hale getirilmiş.VİSUAL BASİC 6.0 Programı ile birlikte bilgisayarınıza kurulan fakat siz onu bulmadıkça gizlenen ImageList kontrolü sayesinde bir kaç satır kodla bu işi gerçekleştirebiliyorsunuz. Programı çalıştırdığınız anda ImageList içindeki küçük simgeler menü seçeneklerine yerleştirilecek ve program sonlanana kadar orada kalacaktır.

    Private hwnd)
    SubMenu = GetSubMenu(hMenu, 0)
    For i = 1 To 4
    menuID = GetMenuItemID(hSubMenu, i - Sub Form_Load()
    Dim i%
    Dim hMenu, hSubMenu, menuID, x
    hMenu = GetMenu(1)
    x = SetMenuItemBitmaps(hMenu, menuID, &H4, img.ListImages(i).Picture, img.ListImages(i).Picture)
    Next
    menuID = GetMenuItemID(hSubMenu, 5)
    x = SetMenuItemBitmaps(hMenu, menuID, 0, img.ListImages(5).Picture, 0&)
    End Sub

    Unload komutuyla bir formu bellekten atamayacağınızı bilin. Formu bellekten atmanın tek yolu Set [FORMA ADI] = Nothing komutunu kullanmaktır.
    Bir BMP’yi kolayca simge olarak kaydedebilirsiniz. Sadece “ImageList” kontrolünde “ListImage” özelliğinin “ExtractIcon” methodunu kullanmanız yeterlidir

    Eklediğiniz butonlara resim yerleştirmek için öncelikle forma bir ImageList ekler ve resimleri bundan aktarırız.

  • TreeView denetiminin kullanılması

    treeview denetimi,ağaç tarzında şık bir biçimde organize edilebilen klasör veya başka öğelerin hiyerarşik bir görünümünü sunar. Bu denetim genellikle treeview denetiminde seçili olan klasörün içeriğini görüntülemek için kullanılan bir list view denetimini ile bir arada kullanılır.

    Tree view özellikleri (properties)
    tree view denetiminin çok sayıda özelliği vardır,üstelik bunların çoğu oldukça değerlidir:

    Appearange
    BorderStyle
    CausesValidation
    CheckBoxes
    Container
    DragIcon
    DragMode
    DropHighLight
    Enabled
    Font
    FullRowSelect
    Height HelpContextID
    HideSelection
    HotTracking
    HWnd
    ImageList
    Indentation
    Index
    LabelEdit
    Left
    LineStyle
    Nodes
    Object
    OleDragMode
    OleDropMode
    Parent
    PathSeparator
    Scroll
    MouseIcon
    MousePointer
    Name
    SelectedItem
    SingleSel
    Sorted
    Style
    TabIndex
    TabStop
    Tag
    ToolTipText
    Top
    Visible
    WhatsThisHelpID
    Width

    standart özelliklerin yanı sıra,bu denetimin gücünden faydalanmak için tanımanız gereken yeni birkaç özelleğide vardır. name özelliği,bu denetimle çalışırken değerini
    atamanız gereken ilk özelliktir.standart isimlendirme konvansiyonu ön takısı tvw’dur.örneğin sabit sürücünüzün dizin yapısınıiçeren bir ağaç görünümünüz olursa ona tvwdirectories ismini verebilirsiniz.

    General sekmesi

    style özelliği denetimin form üzerinde nasıl görüneceğini ve davranacağını belirlemenizi sağlar. Bu özelliğe verebileceğiniz olası değerler aşağıdadır:

    0-tvwtextonly: bu ayar düğümünün sadece metnini gösterir.
    1-tvwpicturetext: Bu ayar düğümlerin simge ve metinlerini gösterir.
    2- tvwplusminustext: Bu ayarı açık/kapalı sembolü (artı ve eksi işaretleri) ile düğümlerin simge ve metinlerini istiyorsanız kullanın.
    3- tvwpluspicturetext: Bu ayarı açık/kapalı sembolünümetnin sol tarafından küçük bir simge ve metnin kendisini görüntüler.
    4-tvwtreelinestext: Ağacın hiyerarşisinde ilgili olan düğümleri birbirine bağlayan çizgiler olmasını isterseniz,bu ayarı düğümün çizgileri ve metninin göstermek için kullanırız.
    5-tvwtreelinespicturetext: Bu ayarı metnin sol tarafında küçük bir simge görüntüler ve ilgili düğümleri birbirine bağlar.
    6-tvwtreelinesplusminustext: Bu ayarı açık/kapalı sembolü,bağlantı çizgilerini ve düğüm metnini göstermek için seçin.
    7-tvwtreelinesplusminuspicturetext: Her şeyin gösterilmesi için bu ayarı seçin.

    LineStyle özelliği Düğümler arasında görüntülenen çizgilerin stillerini ayarlamak için kullanılır. olası değerler aşağıdadır:
    0-treelines
    1-rootlines

    labeledit, denetiminin otomatik etiket düzenleme özelliğini açıp kapatmanızı sağlayan boolean bir özelliktir. Windows explorer bu özelliği bir klasör veya dosya tek tıkladığımızda sergiler. Bu isim kendisini değiştirmenize olanak veren minyatür bir metin kutusuna dönüşür. Etiket düzenlemeyi devreye sokmak için bu özelliğin true yapın, devreden çıkartmak için ise false yapmanız yeterlidir.
    tree view denetiminizde resimler olmasını isterseniz ImageList özelliğine eşitlemeniz yeterlidir.
    borderstyle ve apperance özellikleri yeterince açıktır.
    oledragmode özelliği denetimini elle veya otomatik sürüklemeyele konfigüre edilebilir. Bu özelliğe aşağıdaki değerlerden birini atayabiliriz:
    0-oledragmanual
    1-oledragautomatic

    oledropmode özelliği tree view denetiminin ole bırakma işlemlerinin kabul veya ret edecek biçimde konfigüre eder. Bu özelliğin değeri aşağıdakilerden biri olabilir:

    0-oledropnone: Bu değer atandığında hedef bileşen ole bırakmalarını kabul etmez ve nodrop imlecini görüntüler.

    1-oledropmanual: Denetim programcının ole bırakma işlemini kod içinde yönetmesine olanak verecek biçimde ole bırakma olaylarını tetikler.

    Indetation özelliği görünümdeki düğümler arasındaki yatay mesafeyi belirler. Bu sayı ne kadar küçük olursa düğümlerde de birbirine o kadar yakın olur. Daha sıkı görünen bir arabirimi tercih edreseniz 283 değerinin çalışma kipinde hoş göründüğünü söyleyebilirim.
    pathseparatr özelliği bir düğümün fullpath özelliği tarafından döndürülen yol için kullanılan ayraç karakterini aşağıdaki biçimde atamanıza veya döndürmenize olanak verir.

    private sub treeview1_nodecilik(byval node as node)
    dim rc as string
    rc=node.fullpath
    mshbox rc
    end sub

    örneğin,sabit sürücünüz üzerindeki klasörün bir listesinigösteriyorsanız bu özelliğindeğerini ters bölü (*) yapabilirisiniz ya da LAN üzerindeki IP alt ağlarını eşlerken internet tarzı bir yol belirtmek için bu nokta(.) kullanabilirsiniz. tree view denetiminin kaydırma çubuklarının denetimini göstermesini isterseniz scroll özelliğinin değerini true yapın;tree view denetiminde bir seferde görüntülenemeyecek kadarçok sayıda düğüm olursa bu işlem gerekli olabilir. Kaydırma çubuklarını devreden çıkartmak için de bu özelliğin değerini false yapın.

    Tree view olayları (Events)

    Aşağıda tree view denetimi tarafından desteklenen olayların listesi yer alıyor:

    AfterLabelEdit
    BeforeLabelEdit
    Click
    Collapse
    DblClick
    DragDrop
    DragOver
    Expand
    GotFocus
    KeyDown
    KeyPress
    KeyUp
    LostFocus
    MouseDown
    MouseMove
    MouseUp
    NodeCheck
    Nodeclick
    CodeClick
    OleCompleteDrag
    OleDragDrop
    OleDragOver
    OleGiveFeedBack
    OleSetData
    OleStartDrag
    Validate

    afterlabeledit() olayı,bir düğüm üzerindeki etiket düzenleme işlemi yapılmasında sonra tetiklenir. bu olay düğümün isminin geçerli olduğundan emin olmak için denetlemek isterseniz
    faydalı olur.tamamlayıcısı olan beforelabeledit() olatı ise düğüm düzenleme kipine geçmeden önce tetiklenir.
    collapse()olayı kullanıcı ağacın bir dalını kapttığında tetiklenir.bu olay bir ağacın kökü çift tıklandığında ya da bu dalın kökünün yanındaki eksi işareti tıklandığında gerçekleşebilir.hafızadan tasarruf etmek isterseniz.tree view denetiminden öğeler silmek için gereken kodu bu olaya yerleştirebiliriz.
    Expand()olayı collapse() olayının tam tersidir.kullanıcı bir dalın kökünün yanındakiartımişaretine tılıyarak veya bu dalın köükne çift tıklıyarak bir dalı açtığında tetiklenir.bu olay düğüm açılırken denetime verileri dinamik olarak yüklemek amacıyla kullana bilirsiniz.
    Nodeclick()olayı tree view denetiminin sunduğu en önemli olaylardan biridir.bu olaı tıklanan düğüm hakkında bilgi almak yada uygulamanın gerektiği başka her hangi bir işlev için kullanabilirsiniz.örneğin aşağıdaki kod tıkladığınız düğümün komple yolunu gösteren bir iletişim kutusu görüntülenir:

    private sub tvwnodes_nodecilick(byval node as comctlib.node)
    msgbox node.fullpath
    end sub

    pathseparator özelliğinde bir ters bölü karakteri kullanırsınız.kök düğüm adı C: ve tıklanan düğüm adıda windows olduğunda bu iletişim kutusu C:\windows ifadesi görüntülenir.
    olecompletedrag()olayı ole verileri bu denetim üzerine bırakıldığında veya ole sürükleme bırakma işlemi iptal edildiğinde tetiklenir.
    oledragdrop()olayı oledropmode özelliğinin değeri 1-manual yapıldığında ve denetim üzerine ole verileri bırakıldığında tetiklenir.bu nolaya veriler bırakıldığında denetimin ne yapması gerektiğini belirliyecek kodu yerleştiririz.bu olaya denetimin verileri taşımasını sağlayacak kodu da yerleştirebilirsiniz,ama kopyalamak için kullanılacakbir kod yerleştirmelisiniz.ya da verileri kopyalamasını sağlayabilirsiniz,ancak bu durumda da taşıtamazsınız.bu işlev uygulamanızın gereksinimlerine bağlıdır.
    oledragover()olayı ole verileri denetimin üzerine sürüklendiğinde tetiklenir.
    olegivefeedback()olayı her oledragover() olayından sonra tetiklenir.bu olay tree view denetiminin kullanıcıya fare imlecinin kullanıcı nesneyi bıraktığı taktirde ne olacağını gösterecek şekilde değiştirmek veya neler olacağını göstermek için seçim üzerinde görsel bir geri besleme sunmak gibi bir geri besleme sunması sağlar.
    olesetdata()olayı bir hedef denetim getdata yöntemini kaynak denetim dataobject nesnesi üzerinde çalıştırıldığında tetiklenir.
    son olarakda olestartdrag()olayı kullancı verileri bu denetimden başladığında tetiklenir.

    tree view yöntemleri (methods)

    aşağıda tree view denetimi tarafından desteklenen yöntemler yer alıyor:
    Drag
    GetVisibleCount
    HitTest
    Move
    OleDrag
    Refresh
    SetFocus
    ShowWhatsThis
    StartLabelEdit
    Zorder

    getvisiblecount yöntemi belirli bir anda tree view içinde görünebilen düğüm sayısını elde etmek için kullanılır.
    hittest yöntemi belirli bir düğümün bırakma hedefi olarak kullanılıp kullanılmayacağını belirtmek için kullanılır.
    oledrag yöntemi bir ole sürükleme işleminin başlatılması için çağrılır.
    startlabeledit yöntemi,bir düğümü etiket düzenleme kipine geçirdiğimizde kullanılır.

  • Nesneyi bağlama ve yerleştirme yöntemi, Windows işletim sistemince kullanılan bir teknolojidir. Bu teknoloji sayesinde, bir windows uygulama programı (Visual Basic 6.0) ile geliştirilen bir proje içine başka bir windows uygulama programından nesneler aktarmak mümkündür.

    Kullanıcı Formu

    Bu form programa ait kullanıcı arabiriminin oluşturulduğu yerdir. Yani tüm denetimler öncelikle bu form üzerüine yerleştirilir ve yerleştirilen denetimler bu forma ait birer nesne olarak çalışırlar. Burada oluşturulan form görüntüsü program çalıştığı zaman ekranda görülür. Bu form görsel dillerin özelliğidir. Bilindiği gibi aynı ekran görüntüsünü görsel olmayan program dillerinde oluşturmak çok zordur. Ayrıca programın ekran görüntüsünü program çalışırken de değiştirebiliriz. Projelerimizde birden fazla form kullanmak mümkündür. Formlar projelerimizin ana elemanlerıdır. Herhangi bir denetim elemanını form üzerine eklemek için öncelikle denetim araç çubuğundan ekleyeceğimiz elemanı fare ile seçeriz. Bu işlemden sonra elemanın konumu belirlenip fare yardımı ile elemanın görüntüsü belirlenen yere çizilir.

    OLE (NESNE BAĞLAMA ve GÖMME ELEMANI)

    OLE teknolojisini destekleyen iki program arasında bağlantı kurmayı sağlar. Bağlantının sonucunda veri transferi yapmak yada verileri kullanmak mümkün olmaktadır.

    Data-OLE Örneği

    Nesne Özellik Ayar

    Data1 Connect Access
    DatabaseName C:\DERS_2\Yetenek.mdb
    RecordSource Artists

    Text1 DataSource Data1
    DataField Name

    Text2 DataSource Data1
    DataField Adress

    Text3 DataSource Data1
    DataField City

    Text4 DataSource Data1
    DataField State

    Text5 DataSource Data1
    DataField WorkPhone

    .

    Private Sub OLE1_Updated(Code As İnteger)
    Command1 Caption
    Private Sub Command1_Click()
    End
    End Sub

    OLE örneği için bir OLE nesnesi ekleyelim. Nesne ekle diyalog kutusunda uygulamamıza bağlayabileceğimiz nesnelerin listesi görünmektedir.

    Dosyadan Oluştur’u seçelim, Bağlayı seçelim, Gözat kutusundan C:\DERS_2\Satışlar_01xls dosyasını bulalım, Tamam’a tıklayalım.

    Şimdide sağ alt köşeye yeni bir OLE nesnesi çizelim. Nesne ekle kutusunu iptal ile geçelim. C:\DERS_2 dizinindeki excel dosyasını açıp grafiği kopyalayalım. VB de forma yeni eklediğimiz OLE nesnesine sağ tıklayıp Paste Special diyelim. Özel yapıştır kutusunda Bağlantı Yapıştır ‘ı seçelim
    OLE2.Update
    End Sub

    OLE teknolojisini destekleyen iki program arasında bağlantı kurmayı sağlar. Bağlantının sonucunda veri transferi yapmak yada verileri kullanmak mümkün olmaktadır.

    Action Özelliği

    Nesne üzerinde çeşitli işlemlerin yapılmasını sağlar.

    nesne.Action = değer

    İşlemin alabileceği değerler şunlardır:

    Değer İşlevi Metot

    0 Gömülü nesne yaratır. CreateEmbed

    1 Bir dosyada bağlı nesne yaratır. CreateLink

    4 Nesneyi panoya kopyalar. Copy

    5 OLE kontrolüne panodan veri yapıştırır. Paste

    6 OLE kontrolü içindeki veriyi günceller. Update

    7 Nesneyi üzerinden işlem yapmak için açar. DoVerb

    9 Nesneyi kapatır. Close

    10 Belirtilen nesneyi siler. Delete

    11 Nesneyi veri dosyasına kayıt eder. SaveToFile

    12 Nesneyi dosyadan yükler. ReadFromFile

    14 İnsert Object iletişim kutusunu görüntüler. İnsertObjDlg

    15 Paste Special iletişim kutusunu görüntüler. PasteSpecialDlg

    17 Nesnenin desteklediği işlemleri günceller. FetchVerbs

    18 Bir nesneyi OLE 1.0 formatında kayıt eder. SaveToOle1File

    OLE DRAG & DROP

    OLEDragMode

    Taşıma işleminin nasıl yapılacağını belirler.
    0, vbOLEDDragAutomatic : Bu modda sürükleme işlemi otomatik olarak başlatılır.
    1, vbOLEDDragManual : Bu modda sürükleme işlemini başlatmak için OLEDrag metodu kullanılmalıdır.

    OLEDropMode

    Bırakma işleminin nasıl yapılacağını belirler.
    0, vbOLEDropNone : Nesne bırakma işlemini desteklemeyecek.
    1: vbOLEDropManual : Bırakma işlemi program kodu ile yapılacak.
    0 : vbOLEDropAutomatic : Bu modda hiçbir koda gerek kalmadan bırakma işlemi gerçekleştirilebilir.

    Eğer bir kontrolün hem OleDragMode ve hem de OleDropMode özellikleri otomatik değerleri destekliyorsa bu kontrollere hiçbir kod yazmanız gerekmez. Sadece bu iki özelliğe Automatic değerlerini vermeniz yeterlidir.

    ÖRNEK: Örnek olarak programınıza iki tane text kutusu yerleştirin ve her ikisinde de bu özelliklerini Automatic olarak ayarlayıp programı çalıştırın. Bu iki kutu arasında seçtiğiniz kısmı taşıyabileceğiniz gibi bu kutulardan seçip OLE Drag&Drop işlemlerini destekleyen diğer uygulamalara da taşıyabileceğinizi veya oradan bu kutulara taşıyabileceğinizi göreceksiniz.

    Formunuzun üzerine bir FileListBox koyup OleDragMode özelliğini Automatic yaparsanız artık buradaki dosyalardan seçip istediğiniz bir yere taşıyarak oraya kopyalayabilirsiniz. Örneğin masa üstüne veya Explorer de bir dizine bırakarak oraya kopyalanmasını sağlayabilirsiniz. Hatta FileListBox’un MultiSelect özelliğini 1 veya 2 yaparak birden fazla dosyayı aynı anda istediğiniz yere kopyalayabilirsiniz.

    Aynı şekilde bie PictureBox’un bu iki özelliğine Automatic değerini vererek diğer uygulamalardaki resimleri getirip PictureBox üzerine bırakabilirsiniz. Bu işlemler sırasında Ctrl tuşuna basılı tutarsanız sürüklediğiniz şey karşı tarafa kopyalanır, bu tuşa basılı tutmadan sürüklerseniz oraya taşınır.

    Methods

    OLEDrag( )

    Eğer OleDragMode özelliği otomatik olarak belirlenmişse taşımaya başlama işlemi bu metodla yapılır.

    Events

    OLEStartDrag (Data As DataObject, AllowedEffects As Long)

    Sürükleme işlemi başladığında bu olay meydana gelir.

    OLECompleteDrag (Effect As Long)

    Drag-Drop işlemi tamamlandığında veya iptal edildiğinde bu olay meydana gelir.
    Effect parametresi ile sonuç hakkında bilgi alınabilir. Örneğin bilgi karşı tarafa kopyalandı mı, taşındı mı bu bilgi Effect parametresi ile öğrenilir. Effect parametresinin alacağı değerler şunlardır:

    1 : vbDropEffectCopy
    2 : vbDropEffectMove
    3 : vbDropEffectNone

    OLEDragDrop (Data As DataObject, Effect As Long, Button As İnteger, Shift As İnteger, X As Single, Y As Single)

    OLEDropMode özelliğine Manual verilmişse bırakma işlemi gerçekleştiğinde bu olay meydana gelir.

    OLEDragOver (Data As DataObject, Effect As Long, Button As İnteger, Shift As İnteger , X As Single, Y As Single, State As İnteger)

    OLEDropMode özelliğine Manual verilmişse sürükleme işlemi gerçekleşirken bu olay meydana gelir.

    OLEGiveFeedback (Effect As Long, DefaultCursors As Boolean)

    Bu olay, OLE kaynağının sürükle ve bırak işlemi esnasında fare şeklinin değişmesi gerektiği durumlarda meydana gelir.

    DataObject

    OLE Drag&Drop olayında sürüklenen bilginin formatı aşağıdaki değerlerden biri olabilir.

    Sayısal Sembolik Anlamı

    -16640 vbCFLink Bağlantı bilgisi, DDE bağlantı bilgisi
    -16639 vbCFRTF RTF metni, formatlı metin bilgisi
    1 vbCFText Text, formatsız metin bilgisi
    2 vbCFBitmap BMP, bitmap türü resim bilgisi
    3 vbCFEMetafile WMF, windows metafile türü resim bilgi
    8 vbCFDIB DIB, DIB formatlı resim bilgisi
    9 vbCFPalette Palet bilgisi
    15 vbCFFiles Windows explorer dosya adı

    Properties

    Count,Files (İndex)

    Sürükleme işlemindeki Datalar dosya isimleri ise, yani vbCFFiles formatında ise bu özelliklerle sürüklenen dosya sayısı ve her bir dosyanın ismi öğrenilip değiştirilebilir.

    Methods

    Clear ( )

    Datanın içeriği silinir.

    GetData (Format As İnteger)

    Format parametresi ile belirlenen bilgiyi öğrenmek için kullanılır.

    GetFormat (Format As İnteger) As Boolean

    Datanın format parametresi ile belirlenen formatı destekleyip desteklemediği bu özellikle öğrenilir. Geriye dönen değer True ise o bilgi formatttadır.

    SetData ([Bilgi], [Format)]

    Taşınacak bilgi ve bu bilginin formatı bu metodla belirlenebilir.

  • GÖRÜNTÜ (IMAGE)

    Bir resmi görüntüleyebilen grafik tipte bir kontrol nesnesidir. Bu açıdan resim kutusuna (picture box) benzer. Fakat, resim kutusuna oranla daha az sistem kaynağı kullanılır. Mouse ile clicklendiği zaman, komut butonuna benzer özellik gösterir. Örneğin bir firma, firmanın logosunu görüntü nesnesi içine yerleştirerek, resim üzerine mouse ile click işlemi gerçekleştirildiğinde firma hakkında bazı bilgiler listeleyen bir tanıtım yazılımı oluşturabilir.

    Görüntü Nesnelerinin Kullanılması

    Görüntü denetimi (ön takısı genellikle img olur),ilerleyen bir kısımda açıklanacak olan resim kutusu hafif bir eşdeğeridir. ancak , resim kutusu denetiminin aksine görüntü denetimi başka nesneler için bir konteyner görevi göremez.
    Bazı başka özellikleri de o kadar kapsamlı olmasadabir form üzerinde sadece bir resim görüntülemek istiyorsanız iyi bir tercihtir. görüntü denetimleri resim denetimlerine oranla çok az miktarda hafıza tüketir. Visual Basic ile gelen görüntü denetimi artık bitmap(BMP),simge (ICO),metafile (WMF),jpeg(JPG),ve gif(GIF) dosyalarını görüntüleyebilir. buda World Wide Web grafiklerinin olduğu gibi başka populer grafik programlarının grafiklerinin görüntülenmesini kolaylaştırır.

    Görüntü Denetimi Özellikleri

    görüntü denetimi çok sayıda özelliğe sahiptir,

    Align
    Appearance
    Autosize
    BorderStyle
    Container
    DataField
    DataFormat
    DataMember
    DataSource DragIcon
    DragMode
    Enabled
    Height
    Index
    Left
    MouseIcon
    MousePointer
    Name
    OleDragMode
    OleDropMode
    Parent
    Picture
    Stretch
    Tag
    Top
    Visible
    WhatsThisHelpID
    Width

    Align : Image’ın form üzerindeki yerini belirler
    Autosize : Image boyutlarının resim boyutlarına göre otomatik ayarlanması
    Stretch : Resmin Image boyutlarına otomatik olarak ayarlanması

    Diğer çoğu grafik denetimindede olduğu gibi , grafiği picture özelliğinin değerini ayarlayarak eklersiniz . Herhalde buradaki en ilginç özellik strech’tir. Bu Boolen bir özelliktir , yani sadece True veya False değerlerini alır. strech özelliğinin değeri false yapıldığında (varsayılan değer), denetim için yerleştirilen resmin boyutlarını alır. Bu denetimin boyunu daha sonra değiştirirseniz, yüklenen resim yatay ve düşey boyut değişikliğinin oranlarına bağlı olarak ya kırpılır, ya etrafında boş bir alan kalır , yada bunların ikisi birden olur. ancak strech özelliğinin değeri true yaparsanız resmin boyutları denetimle birlikte değişir. bu şekilde resim yüklendikten sonra denetimin boyunu değiştirerek içindeki resmi daha büyük veya küçük , yada daha uzun veya basık hale getirebilirsiniz.bir resim denetiminin özelliği yoktur. buna en yakın özelliği Autosize’dir. bir resim kutusunun Autosize özelliğinin True ise denetim kendisini yüklenen resmin ebatlarına uyarlar. Ancak Strech özelliğin değeri True yapılmış ise görüntü denetiminin aksine, resim kutusunun boyu değiştirildiği zaman bile içindeki resim aynı kalır.

    Görüntü Denetimi Olayları

    Görüntü denetimi çok sayıda olay kullanmaz, olanlarında sadece birkaç tanesini belki kullanırsınız

    Click
    DblClick
    DragDrop
    DragOver MouseDown
    MouseMove
    MouseUp
    OleDragDrop
    OleDragOver
    OleCompleteDrag
    OleGiveFeedBack
    OleSetData
    OleStartDrag

    Görüntü denetimleri bazen bir sürükleme-bırakma hedefi olarak kullanışlı olur. çünkü bunun içinde , denetimin üzerine bırakıldığında doğacak sonuç hakkında bir fikir veren bir resim bulundurabilirsiniz.

    Görüntü Denetimi Yöntemleri

    Drag
    Move
    OleDrag
    Refresh
    ShowWhatsThis
    Zorder

    Çalışma Anında Resim Eklemek
    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(”d:\depo\bjk.jpg”)
    End Sub

    Çalışma Anında Resim Silmek
    Private Sub Command1_Click()
    Image1.Picture = LoadPicture(”")
    End Sub

    Resmi Fare ile Küçültüp Büyütmek

    (General)(Declalaration)
    Private genisle As Boolean

    Private Sub Form_Load()
    Image1.Stretch = True
    End Sub

    Private Sub Image1_MouseDown(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    genisle = True
    End Sub

    Private Sub Image1_MouseMove(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    If Not genisle Then Exit Sub
    If (X >= 0) And (Y >= 0) Then
    Image1.Move 0, 0, X, Y
    End If
    End Sub

    Private Sub Image1_MouseUp(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    genisle = False
    End Sub

  • Şekil (Shape) Denetimi

    Bu denetim, dikdörtgenler, kareler, ovaller, çemberler, çevrelenmiş dikdörtgenler ve çevrelenmiş kareler yaratmakta kullanılan grafiksel bir denetimdir.

    Sözdizimi

    Şekil

    Şekil denetimi şu özellikleri destekler:

    BackColor,
    FillColor
    Shape
    BackStyle
    FillStyle
    Tag
    BorderColor
    ForeColor
    Top
    BorderStyle
    Height
    Visible
    BorderWidth
    Left
    Width
    Container
    Name

    DrawMode
    Parent

    BackColor

    Bu özellik nesnenin arka plan rengini seçer ve ayarlar.

    Sözdizimi

    object.BackColor [= color]

    Parametreler

    Object
    Object bir forma sokmayı veya denetlemeyi ifade eder.
    Color
    Nesnenin arka plan rengi, RGB fonksiyonu ile veya sistemin sabit renkleri ile belirtilir.

    BackStyle

    Bu özellik, nasıl bir etiket denetimi değerinin olduğunu veya biçimlendirme denetiminin saydam olup olmadığını seçer ve ayarlar.

    Sözdizimi

    control.BackStyle [= number]

    BorderColor

    Bu özellik nesnenin kenar rengini seçer ve ayarlar.

    Sözdizimi

    object.BorderColor [= color]

    BorderStyle

    Bu özellik, kenar stilinin biçim ve denetimini seçer ve ayarlar.

    Sözdizimi
    object.BorderStyle [= value]
    Parametreler
    Object
    Object ifadesi biçim denetimi için değer biçer.
    Value
    Value veya Constant, ayarlar gözüyle bakarak kenar stilini belirler. Takip eden tablolar nesnenin biçimi için kenar stili özellikleri ayarlarını gösterir.
    Metin

    Ayarlar

    Tanım

    vbBSNone
    0
    Hiçbiri (kenar stili veya kenarla ilişkili öge yok)
    vbFixedSingle
    1
    Sabit tek
    vbSizable
    2
    Ölçülendirilebilir (sadece biçim)
    vbFixedDialog
    3
    Sabit diyalog (sadece biçim)
    vbFixedToolWindow
    4
    Sabit pencere aracı
    vbSizableToolWindow
    5
    Ölçülendirilebilir pencere aracı
    Takip eden tablolar kenar stili özellik ayarlarından etiket, çerçeveleme, resim kutucuğu ve yazım kutucuğu denetimlerini gösterir.
    Ayarlar

    Tanım

    0
    Hiçbiri (etiket denetimleri için standart)
    1
    Fixed single (yazım kutucuğu için standart)
    Takip eden tablolar kenar stili özelliklerinin şekil ve biçimlendirme denetimi ayarlarını gösterir.
    Metin

    Ayarlar

    Tanım

    vbTransparent
    0
    Şeffaf
    vbBSSolid
    1 (standart)
    Katı. Kenarın biçimlendirme ucunu ortalar.
    vbBSDash
    2
    Kısa çizgi

    BorderWidth
    Bu özellik kenar genişliği denetimini seçer ve ayarlar.
    Söz Dizimi
    object.BorderWidth [= number]
    Container
    Bu özellik nesne biçimi üzerinde kalıp denetimini seçer ve ayarlar.
    Söz Dizimi
    object.Container [= container]
    DrawMode
    Bu özellik herhangi bir grafik metodundan çıktı görünümü veya biçimlendirme ve şekil denetimi görünümü için bir değer seçer ve ayarlar.
    Söz Dizimi
    object.DrawMode [= number]
    Parametreler
    Object
    Object ifadesi biçimlendirme ve şekil denetimi için değer biçer.
    Number
    Tam sayı görünümü açıkça belirler. Takip eden tablolar ayar numaralarını açıklar.
    Metin

    Ayarlar

    Tanım

    vbBlackness
    1
    Siyah.
    vbNotMergePen
    2
    15 nolu ayarın tersi (vbMerge Pen).
    vbMaskNotPen
    3
    Arka plan renkleri ve kalemin tersi olan renklerin renk kombinasyonu.
    vbNotCopyPen
    4
    13. ayarın tersi (vbCopy Pen).
    vbMaskPenNot
    5
    Kalemdeki ve görünüm tersi olan renklerin her ikisinin de kombinasyonları.
    vbInvert
    6
    Görünüm renginin tersi.
    vbXorPen
    7
    Kalemdeki renk kombinasyonları ve görünümdeki renkler fakat her ikisi de değil.
    vbNotMaskPen
    8
    9. ayarın tersi (vbMask Pen).
    vbMaskPen
    9
    Görünümdeki ve kalemdeki sıradan renklerin her ikisinin kombinasyonları.
    vbNotXorPen
    10
    7. ayarın tersi(vbXorPen).
    vbNop
    11
    müdehale yok. Bu çizim ayarlarını kapatır ve müdehale şansını ortadan kaldırır.
    vbMergeNotPen
    12
    Görünüm renk kombinasyonları ve kalemin tersi olan renkler.
    vbCopyPen
    13 (standart)
    Renk ön renk özellikleri ile özelleştirilir.
    vbMergePenNot
    14
    Kalem rengi kombinasyonlarını ve görünümün tersi olan renkleri gösterir.
    vbMergePen
    15
    Kalem rengi kombinasyonunu ve renklerini gösterir.
    vbWhiteness
    16
    Beyaz.
    FillStyle
    Bu özellik, çizim çemberi ve çizim şekilleri grafik metotları ile çemberler ve kutular yaratmada biçimlendirme denetimleri kaplamalarında kalıp seçme ayarlamada kullanılır.
    Söz Dizimi
    object.FillStyle [= number]
    ForeColor
    Bu özellik, bir nesne içindeki yazım ve grafik görüntüsünün ön plan renginin seçim ve ayarlanmasında kullanılır.
    Söz Dizimi
    object.ForeColor [= color]
    Height
    Bu özellik yükseklik denetimini seçer ve ayarlar.
    Söz Dizimi
    object.Height [= number]
    Left Özelliği
    Bu özellik nesnenin sol iç kenarı ile kalıbın sol iç kenarı arasındaki mesafeyi seçer ve ayarlar.
    Söz Dizimi
    object.Left [= value]
    Name
    Bu özellik bir forma kodlama belirmek veya nesne fondunun ismini belirleme,ayarlama ve denetimde kullanılır.
    Söz Dizimi
    object.Name

    Parent
    Bu özellik bir denetim içeren form, nesne ve koleksiyonları seçer.
    Söz Dizimi
    object.Parent
    Shape
    Bu özellik bir şekil kontrolüne görünüm belirlemek için bir değer seçer ve ayarlar.
    Söz Dizimi
    object.Shape [= value]
    Parametreler
    Object
    Object ifadesi bir biçim denetimine değer biçer.
    Value
    Tam sayı, denetim görünümünü açıkça belirler. Takip eden tablolar ayarların değerlerini gösterir.
    Metin

    Ayarlar

    Tanım

    vbShapeRectangle
    0 (standart)
    Dikdörtgen
    vbShapeSquare
    1
    Kare
    vbShapeOval
    2
    Oval
    vbShapeCircle
    3
    Daire
    vbShapeRoundedRectangle
    4
    Çevrelenmiş Dikdörtgen
    vbShapeRoundedSquare
    5
    Çevrelenmiş Kare
    Tag
    Bu özellik ihtiyaç duyulan herhangi bir extra bilgi için başvuruları depolamayı seçmeyi ve ayarlamayı ifade eder.
    Söz Dizimi
    object.Tag [= expression]
    Top
    Bu özellik herhangi bir nesnenin iç üst kenarı ile kalıp üst kenarı arasındaki mesafeyi seçer ve ayarlar.
    Söz Dizimi
    object.Top [= value]
    Visible
    Bu özellik herhangi bir değerin görülebilir mi yoksa görülemez mi olduğunu seçer ve ayarlar.
    Söz Dizimi
    object.Visible [= Boolean]
    Width
    Bu özellik herhangi bir denetim veya formun genişliğini kalıp denetiminin birim ölçüsü olarak kullanır, seçer ve ayarlar.
    Söz Dizimi
    object.Width [= number]
    Line(Şekil) Denetimi
    X1, Y1, X2, Y2 Özellikleri

    X1 ve Y1 başlangıç noktaları ile ve X2 ve Y2 bitiş noktaları ile herhangi bir şekil denetimi seçer ve ayarlar. Yatay koordinatlar X1 ve Y2, dikey koordinatlar Y1 ve Y2’dir.
    Söz Dizimi
    object.X1 [= value]
    object.Y1 [= value]
    object.X2 [= value]
    object.Y2 [= value]
    X1, Y1, X2 ve Y2 söz dizimi özellikleri bu parçalardan oluşur.

  • TIMER NESNESİ

    Timer(Zamanlayıcı)

    Zaman saatidir.Zamanın takip edilmesini sağlar,zamanlayıcı denetimidir ve çalışma kipinde görülmezler.Programda zamana bağlı işlemler yapılabilmesini sağlayan bileşendir.Timer nesnesi,kullanıcının göremeyeceği fakat belirtilen zaman aralıklarında istenilen görevleri yerine getiren bir nesnedir.
    Bu nesneyi örneğin,saat yapımında kullanabiliriz.Nesneden saat yapmasını bekleyemeyiz.Sadece 1 saniye zaman birimini bu nesne sayesinde kullanabiliriz.
    Eğer işlerin zamana göre yapılmasını istiyorsak timer nesnesini kullanırız.Özellikler kısmındaki invertal ile kaç milisaniyede bir işlevin tekrar edileceğini ayarlayabiliriz.Uygulamanın çalışması esnasında,zamana bağlı olarak belirli aralıklarla,belirli eylemlerin gerçekleşmesini denetlemek için kullanılır.

    Timer1.Interval = 1000 ‘ 1 saniyede 1 işlem yapılır
    Timer1.Interval = 500 ‘ 0,5 saniyede bir işlem yapılır

    TİMER NESNESİ ÖZELLİKLERİ

    Timer nesnesinin önemli iki özelliği vardır.

    Timer1.invertal= Zamanlamanın ne kadar olacağının ayarıdır.Yani,Timer denetiminin ne kadar aralıkla Timer olayını üreteceğini belirleriz.Milisaniye cinsinden bir değer yazarız.1 saniye için 1000 yazmalıyız.

    Timer1.enabled= Timer denetiminin aktif veya pasif olacağını belirler.Yani,Bu değeri enable yaparsak etkin,disable yaparsak etkin dışı olur.

    Zamanlayıcı denetiminin, aşağıda da görüldüğü gibi fazla özelliği yoktur

    Enabled
    Index
    Interval
    Left
    Name
    Parent
    Tag
    Top

    Name özelliği hariç (bir tmr ön takısı tavsiye edilir), zamanlayıcı denetiminin önemli olan sadece iki özelliği vardır.Enabled ve Interval özellikleri.Gerçektende zamanlayıcının herhangi bir şey yapmasını sağlamak için (Enabled özelliğinin değerinin,başlangıç değeri olan True olduğunu var sayarsak) bu özelliklerin değerlerini ayarlamamız gerekir.Left ve Top özellikleri aslında gereksizdir.Bir zamanlayıcıyı bir form üzerinde nereye yerleştirdiğimiz pek fark etmez.

    Interval özelliği mili saniye cinsinden ölçülür. Bu da saniyeleri saymak istediğimiz taktirde bu saniye sayısına 1000 ile çarpmamız gerektiği anlamına gelir.Bu süre geçtikten sonra (zamanlayıcı devrede ise),zamanlayıcı kendi TIMER olayını üretir.Bu işi de kısa aralıklarla sistem saatini kontrol ederek yapar.

    TİMER OLAYLARI

    Zamanlayıcı denetiminin sadece bir tek,uygun bir biçimde TIMER()adlı bir olayı vardır.Daha öncede belirtildiği gibi de bu olay belirli bir sürenin her geçişinde gerçekleşir.Bu süre Interval özelliği tarafından belirlenir.TIMER() olayının gerçekleşmesini durdurmak için çalışma kipinde zamanlayıcının Enabled özelliğinin değerine False yapabiliriz.

    Timer olayını kullanarak istediğimiz aralıklarla olaylar gerçekleştirebiliriz.

    Örnek: Bir saat yapalım.

    Private Sub Timer1_Timer ( )
    Text1.Text=Time
    End Sub

    Örnek: Zamanı saniye cinsinden veren program.
    Dim sn
    Sn=Timer
    Msgbox sn

    ÖRNEK: Timer kontrolü kullanarak form başlığında saati gösteren bir program yazalım.Bunun için timer nesnesinin invertal özelliğini 1000 (1saniye) yapalım.

    Private Sub Timer1_Timer ( )
    Form1.Caption= “Saat :” + Timer
    End Sub

    ÖRNEK: Bir Text yada Label üzerinden kayan bir yazı programı yazalım.Program için 1 adet Timer ve 1 adet Text veya Label gerekir.

    Option Explicit
    Dim yazi As string

    Private Sub Form_Load( )
    Yazi=string(5, “ ” ) + “EMİNE”
    End Sub

    Private Sub Timer1_Timer( )
    Yazi=mid (yazi,2)left (yazi,1)
    Text1.Text=yazi
    End Sub

    ÖRNEK: Timer kontrolü ile ayarlanan saat için alarm çalan bir program kodu yazalım.Bu kod için bir Timer ve adı ZAMAN olan bir text kutusu gerekmektedir.

    Option Explicit
    Dim saat,dakika,saniye As byte
    Private Sub Form_Load( )
    Saat=Inputbox ( “Alarm saati giriniz: ”)
    Dakika=Inputbox ( “Alarm dakikasını giriniz: ”)
    Saniye=Inputbox ( “Alarm saniyesini giriniz: ”)
    Zaman.Text=saat + “ : ” + dakika + ” : ” + saniye
    End Sub

    Private Sub Timer1_Timer ( )
    İf (hour (now)=val (trim(saat))) and (minute (now)=val (trim (dakika))) and (second (now) val (trim (saniye))) then beep: beep: beep
    Else
    End if
    End Sub

    ZAMANLAYICI YÖNTEMLERİ

    Zamanlayıcı yöntemi hiçbir yöntemi desteklemez.

    ZAMANLAYICILARIN KULLANILMASI

    Zamanlayıcı denetimi (yanda görülüyor),çalışma kipinde gizli olan az sayıdaki denetimden biridir.Bu da onun için bir form üzerinde yer bulmamıza gerek kalmadığı anlamına gelir;herhangi bir yere hatta mevcut denetimlerin üzerine bile yerleştirilebilir.Zamanlayıcı temel olarak sadece bir tek iş yapar.Sistem saatini kontrol eder ve buna göre bir tutum belirler.

    BİR ZAMANLAYICI DENETİMİNİ DENEYELİM

    Zamanlayıcının nasıl çalıştığı hakkında bir fikir edinmek için bir başlık çubuğu saati yapalım.

    1.File→New Project komutunu vererek yeni bir proje açalım.Proje tipi Standard EXE. Olarak seçelim.

    2.Form 1.’in Name özelliğinin değerini Frmmain,Caption özelliğinin değerini Application time yapalım.

    3.FrmMain’e bir zamanlayıcı ekleyelim.Name özelliğinin değerini Tmrtimer yapalım.

    4.Bu zamanlayıcının Interval özelliğinin değerini 500 yapalım.Bu saatin kendisi her yarım saniyede bir kontrol etmesini istiyoruz.Bunu zamanlayıcı denetimi bu türdeki diğer denetimler kadar hassas olmadığı için yaparız,ancak bu örnek için işe yarar.

    5.Aşağıdaki kodu Frm Main’in (general)(Declarations)yordamına ekleyelim:
    Option Explicit
    Private OldCaption As String

    6.Aşağıdaki kodu form_Load() olayına ekleyelim
    Private sub Form_Load()
    Oldcaption=Me.Caption
    End Sub.

    7.Şimdide aşağıdaki kodu zamanlayıcının Timer ()olayına ekleyelim.
    Private Sub TmrTimer_Timer()
    Dim msg As String
    Msg=OldCaption &”:”& Time$
    Caption=Msg
    End Sub.

    8.Uygulamayı kaydederek Run→Start komutunu vermek suretiyle çalıştıralım.
    Bu etiketin biraz titrediğini fark edebiliriz.Bu durumu Timer() olayındaki kodu, Caption güncelleme sayısını en aza indirgeyecek biçimde değiştirerek azaltabiliriz.
    Private Sub TmrTimer_Timer()
    Dim msg as string
    Msg=OldCaption & “:” &Time $
    If msg <>Caption Then
    Caption=msg
    End İf
    End Sub

    İf …Then ifadesi Time $ tarafından döndürülen saatin değişip değişmediğini kontrol eder.Msg karakter katarı Caption değerinden farklı olursa,bu zaman değişikliğini yansıtmak için Caption özelliğinin değerini değiştiririz,aksi taktirde Caption üzerinde bir güncellemeye neden olacak herhangi bir şey yapamayız.Titreme de geçer.