4 Aralık 2020 Cuma

Vb ile ActiveX Bileşen Oluşturma-8: superText #5

Önceki bölümde kaldığımız yerden devam ediyoruz. superText ActiveX kontrolüne yeni özellikler ekleyeceğiz.

  • Önceki bölümdeki proje dosyasını açın. Eğer proje dosyaları yoksa önceki bölümdeki dosyayı indirebilirsiniz.
Textbox özellikleri ile superText özellikleri karşılaştırıldığında birçok özelliğin(property) ve olay(event)'ın eksik olduğu görülecektir. Eksik olan özelliklerin tamamlanmasında fayda vardır.

Şimdi bu eksik olan özellikleri ekleyelim.
Önceki bölümlerdeki bilgilerden faydalanarak her bir eksik özelliği sırasıyla ekleyebiliriz ancak daha kolay bir yöntem deneyeceğiz.

  • Önce eksik olan özellikleri tespit edelim.
    Textbox'da olup superText'da olmayan özellikler(properties)
  1. Alignment
  2. Appearance
  3. Borderstyle
  4. DataField
  5. DataFormat
  6. DataMember
  7. DataSource
  8. Enabled
  9. Font
  10. HideSelection
  11. LinkItem
  12. LinkMode
  13. LinkTimeout
  14. LinkTopic
  15. Locked
  16. MaxLength
  17. MouseIcon
  18. MousePointer
  19. MultiLine
  20. OLEDragMode
  21. OLEDropMode
  22. Passwordchar
  23. RightToLeft
  24. ScrollBars
  25. Text -> Bunun yerine Metin eklendi
Textbox'da olup superText'da olmayan olaylar(events).
  1. Click
  2. DblClick
  3. KeyDown
  4. KeyUp
  5. LinkClose
  6. LinkError
  7. LinkNotify
  8. LinkOpen
  9. MouseDown
  10. MouseMove
  11. MouseUp
  12. OLECompleteDrag
  13. OLEDragDrop
  14. OLEDragOver
  15. OLEGiveFeedback
  16. OLESetData
  17. OLEStartDrag

Tüm bu özellikleri kolaylıkla eklemek için bir yardımcı(wizard=sihirbaz) kullanacağız.

ActiveX Kontrol Arabirim Sihirbazı kullanma

  • Sihirbaz, seçimlerinize göre gereken kodları otomatik olarak oluşturacaktır. Ancak önceki kodlarınızın bozulmasına neden olabileceği için sihirbaz çalıştırmadan önce kodlarınızın yedeğini almayı unutmayın.
  • Menüden Add-Ins / Add-In Manager tıklayın.
  • Açılan pencerede VB 6 ActiveX Ctrl Interface Wizard seçili iken Loaded/Unloaded seçeneğini seçip OK tıklayın.

  • Menüden Add-Ins / ActiveX Control InterFace Wizard tıklayın.
  • Wizard(sihirbaz) hakkında bilgi içeren bir sayfa gelecek. Sonraki çalıştırmada bu ekranın gelmesini istemiyorsanız Skip this screen in the future seçeneğini seçin. Next ile sonraki aşamaya geçin. (Herhangi bir aşamada Back butonu ile önceki sayfaya dönebilirsiniz.)
  • Sonraki sayfada, soldaki listede kontrolde bulunan elemanlara göre eklenebilecek özellik(property), olay(event) ve method(yöntem, alt yordam) listesini göreceksiniz.
    Eklenecek elemanı listede çift tıklayarak sağ bölmedeki listeye ekleyebilirsiniz.
    Ayrıca listedeki seçili elemanlar > ve < butonları ile liste değişikliği yapılabilir.
    Listede çoklu seçim yapmak için Shift ve Ctrl tuşları kullanılabilir.
  • Sağ bölmedeki liste hazır olunca Next tıklayın.
  • Sonraki sayfada kendinizin oluşturduğu Özellik, Olay ve Yöntem listesini göreceksiniz.
    Bu sayfada kendi özelliklerinizden yeni ekleme(new), düzenleme(edit) ve silme(delete) yapabilirsiniz.
  • Next tıklayın.
  • Sonraki sayfada liste elemanlarının hangi kontrolün hangi özelliğine ait olduğunu sağdaki listelerden seçerek eşleştireceğiz.
    Bu işleme haritalama(mapping) deniyor.
  • Next tıklayın.
  • Sonraki sayfada kendi oluşturduğunuz özelliklerin Data tipi, varsayılan değeri, çalışma ve tasarım zamanındaki okuma/yazma durumu, tanımlama metni belirlenir.
  • Next tıklayın.

  • Bitiş sayfası gelecektir. Özet raporu görmek istemiyorsanız seçeneği iptal edin.
  • Finish tıklayın.

  • Kodların otomatik olarak oluşturulduğunu göreceksiniz.
    Kodlara eklenmiş bazı yorum satırları var. Bu yorum satırlarını silmeyin. Sihirbazı tekrar çalıştırdığınızda aynı ayarların gelmesi için bu yorum satırları gereklidir.

    Kodların otomatik oluşması, uzun kod yazma zahmetinden bizi kurtarıyor ancak kodlarda bazı sorunlar var. Onlara müdahale edilip düzeltilmesi gerekir.

    Örneğin: Alignment özelliği. Bu özellik değeri Textbox'da açılır listeden seçilerek değiştirilirken superText'de açılır liste özelliği yok. Yine de özelliğe değer atanabiliyor ancak son kullanıcı yanlış bir değer verebilir. Çünkü Alignment için verilebilecek değer aralığı 0-2'dir.

    Bu eksikliği giderelim. Bu işlem daha önceki bölümlerde Giris özelliği için yaptığımız gibi olacak.
    • Declarations'a aşağıdaki kodları ekleyin.
    Enum e_Alignment
        [Left Justify]
        [Right Justify]
        Center
    End Enum
    Public Property Get Alignment() As Integer
    satırını aşağıdaki ile değiştirin.
    Public Property Get Alignment() As e_Alignment
    Public Property Let Alignment(ByVal New_Alignment As Integer)
    satırını aşağıdaki ile değiştirin.
    Public Property Let Alignment(ByVal New_Alignment As e_Alignment)
    Benzer şekilde diğer özellikleri de değiştirin.

    Projede bazı özellikler çalışma zamanı hatası oluşturduğu için iptal edildi. Örneğin: MultiLine ve ScrollBars

    Hiç yorum yok:

    Yorum Gönder