9 Aralık 2020 Çarşamba

Vb ile ActiveX Bileşen Oluşturma-10: superText #7

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

Önceki bölümde sihirbaz kullanarak Property Page(özellik sayfası) oluşturmuştuk. Sayfaya tüm özelliklerin eklenmediği görülüyor. Tümünü eklemeye de gerek yok zaten.

Özellik sayfasına manuel özellik ekleme

Manuel olarak sayfaya nasıl özellik eklenir?
Örnek olması açısından sayfaya eklenmemiş olan 2 özellik ekleyerek bu sorunun cevabını bulalım.

  • Önceki bölümdeki proje dosyasını açın. Eğer proje dosyaları yoksa önceki bölümdeki dosyayı indirebilirsiniz.
  • İlk olarak ekleyeceğimiz özellik Alignment (yaslama)
    Bu özelliğe atanabilecek 3 değer var. 0: Sola, 1: Sağa, 2: Ortaya
  • Yazi formunu açın.
  • Alignment değerini aktarmak için bir açılır liste(ComboBox) kullanabilirdik ancak kullanımını açıklamak için farklı olarak OptionButton (Seçenek Butonu) kullanacağım.
    OptionButton kullanmadan önce seçenekleri bir arada tutmak için form'a bir adet Frame ekleyin.
  • Frame1'in Caption özelliğine Alignment ya da Yaslama yazın.
  • Frame1 içine OptionButton ekleyin. Özelliklerini aşağıdaki gibi değiştirin
    Name: optAlignment
    Caption: Sol
  • OptionButton'u kopyalayın. Frame1 seçili iken Ctrl+V ile yapıştırın.
  • Bir uyarı çıkacak. Index oluşturmak için Evet tıklayın.
  • 2. eklenen OptionButton'un Caption özelliğine Sağ yazın.
  • Ctrl+V ile tekrar yapıştırın. 3. eklenen OptionButton'un Caption özelliğine Orta yazın.

Şimdi kod eklemeye geçelim.
Form açıldığında superText kontrolün Alignment değeri kaç ise formdaki optAlignment seçenek butonu index'i seçili olacak.
  • Private Sub PropertyPage_SelectionChanged() prosedürüne aşağıdaki satırı ekleyin.
optAlignment(SelectedControls(0).Alignment).Value = True
Seçenek butonları seçimi değiştiğinde seçili olanın index değeri superText kontrolün Alignment değerine eşitlenecek.
  • General / Declarations'a aşağıdaki kodları ekleyin.
Dim i_Alignment As Byte

Private Sub optAlignment_Click(Index As Integer)
    Changed = True
    i_Alignment = Index
End Sub
  • PropertyPage_ApplyChanges() prosedürüne aşağıdaki satırı ekleyin.
SelectedControls(0).Alignment = i_Alignment
  • Projeleri kaydedip. Özellik sayfasını test edin.

İşlem tamamsa şimdi Giris kısıtlama özelliğini sayfaya ekleyelim.
  • Form'a bir Label ve bir ComboBox ekleyin.
  • Label1 > Caption: Giriş kıtlaması
  • ComboBox'un özelliklerini aşağıdaki gibi ayarlayın.
    Name: cmbGiris
    Style: 2 - Dropdown List
    List:
    Hepsi
    Sayı
    Harf
    Büyük Harf
    Küçük Harf
List özelliğine liste eklerken alt satıra geçmek için Ctrl+Enter'e basın.
Sayfa tasarımı tamam. Kodlamaya geçelim.
  • ComboBox liste seçiminde değişiklik olduğunu bildirmek için aşağıdaki kodu ekleyin.
Private Sub cmbGiris_Click()
    Changed = True
End Sub
  • Giris özellik değerini ComboBox'a aktarmak için Private Sub PropertyPage_SelectionChanged() prosedürüne aşağıdaki kodu ekleyin.
cmbGiris.ListIndex = SelectedControls(0).Giris
  • ComboBox seçili değeri Giris özelliğine aktarmak için Private Sub PropertyPage_ApplyChanges() prosedürüne aşağıdaki kodu ekleyin.
SelectedControls(0).Giris = cmbGiris.ListIndex
Kodlama tamam.
  • Projeleri kaydedip. Özellik sayfasını test edin.
Özellik sayfasında Yazi tabının en sonda olduğu görülüyor. Bunu en başa alarak sayfa ilk açıldığında Yazi tabının görülmesi sağlanabilir.

Bunu için sihirbazı kullanabiliriz. Sihirbazı çalıştırmak için sihirbazı Add-in manager'e ekleyip Ad-Ins menüsünden çalıştırabiliriz ancak önceki sayfada olduğu gibi çalıştıracağım.
  • Project Group'ta SuperTextKontrol projesi seçili iken sağ tıkla / Add / Property Page tıkla
  • Açılan pencerede VB Property Page Wizard tıkla / tıkla.
  • Next ile 2. adıma geç. Listede Yazi seçili iken yukarı ok simgesi ile Yazi'yi en üste taşı.
  • Next tıkla. Finish tıkla.
  • OK tıkla.
  • Projeleri kaydedip. Özellik sayfasını test edin.
Sayfaya başka eklemek istediğiniz özellikler varsa yukarda uygulanan yöntemler ile kolaylıkla ekleme yapabilirsiniz.




Önceki Bölüm: 9: superText #6
Sonraki Bölüm: 11: superText #8

Hiç yorum yok:

Yorum Gönder