özellik etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
özellik etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

3 Ocak 2021 Pazar

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

Önceki bölümde oluşturduğumuz projeye devam ediyoruz. superText ActiveX kontrolüne yeni özellikler ekleyeceğiz.

Label(Etiket) bileşeni ile Caption(başlık) ekleme

Gelişmiş özelliklere sahip bir metin kutusu oluşturduk ancak dikkat ederseniz projelerde genelde metin kutusu ile birlikte solunda, sağında ya da üstünde bir Label(etiket) de eklenir.

Projelerimize Label ve superText kontrollerini ayrı ayrı eklemektense Label'i superText bileşenine dahil etsek nasıl olur? Daha kullanışlı olur tabii ki. Öyleyse başlayalım.

  • Önceki bölümdeki proje dosyasını açın. Eğer proje dosyaları yoksa önceki bölümdeki linkten dosyayı indirebilirsiniz.
  • Test formundaki bileşenleri silin.
  • superText(superText.ctl) formunu açın. Shift+F7
  • TextBox'ı aşağı taşıyıp üstünde kalan boşluğa Label ekleyin.
  • Label1'in özelliklerini ayarlayın
    AutoSize: True
    Left: 0
    Top: 0
  • superText kontrolü forma eklediğimizde;
    Label, sol üst köşede,
    TextBox, Label'in 3px altında olacak.

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.

8 Aralık 2020 Salı

Vb ile ActiveX Bileşen Oluşturma-9: superText #6

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

Standart kontrollerin dışında bir kontrol eklediğinizde kontrol özelliklerinde (Custom) özelliği görmüşsünüzdür (Örneğin Microsoft Windows Common Controls).

Bu özelliği çift tıkladığınızda özellikleri ayarlayabileceğiniz bir pencere (Property Pages) açılır.
Bu bölümde superText ActiveX kontrolüne Property Page ekleyeceğiz.

Property Page Ekleme

  • Önceki bölümdeki proje dosyasını açın. Eğer proje dosyaları yoksa önceki bölümdeki dosyayı indirebilirsiniz.

28 Kasım 2020 Cumartesi

Vb ile ActiveX Bileşen Oluşturma-6: superText #3

Ö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.
  • Önceki bölümde, projede test için kullandığımız Form1'i burada kullanmayacağız. Form1'i projeden kaldırmak için CTRL+R ile Project penceresini açıp Form1(Form1.frm) üzerinde sağ
    tıklayıp Remove Form1.frm tıklayın.
  • File / Add Project... ile ActiveX kontrolü test edeceğimiz yeni Standart EXE projesi ekleyin. (Project2)
  • Project2'yi başlangıç projesi yapmak için Project penceresinde Project2 üzerinde sağ tıklayıp Set As Startup tıklayın.
  • Toolbox'daki superText kontrolün pasif olduğunu göreceksiniz. superText kontrolünü Form1'e eklemek için tıkladığınızda bir uyarı gelecek
    This control is private to its project. To be public, a control must be
    in an ActiveX Control project, and its Public property must be True.
    Önceki projede superText bulunduğu proje içinde sorunsuz kullanılabiliyordu ancak şimdi bulunduğu projeden farklı bir projede kullanmaya çalıştığımızda hata verdi.
    Çünkü superText'in kapsamı projeye özeldir(Private), bulunduğu proje dışı kullanma izni yok. Bunun değiştirilip genel erişime(Public) izin verilmesi gerekir. Şimdi bu sorunu giderelim.
  • Önce Project1'in proje türünü ve adını değiştirelim.
    Project1 üzerinde sağ tıklayıp Project1 Properties... tıklayın.
  • Açılan pencerede aşağıdaki ayarları yapın.
    Project type: ActiveX Control
    Startup Object: (None)
    Project Name: SuperTextKontrol
    OK tıklayın. Bir uyarı gelecek Tamam tıklayın.
  • Project penceresinde superText'i çift tıklayın, superText seçili iken Properties penceresinde
    Public = False
    olan ayarı
    Public = True
    olarak değiştirin. Böylece superText kontrolü genel erişime(Public) açık olacak.

19 Kasım 2020 Perşembe

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

Önceki bölümde oluşturduğumuz projedeki superText kontrolünü geliştirmeye devam ediyoruz.

Önceki bölümde, son aşamada bir sorun olduğunu belirtmiştim. Projeyi çalıştırdığınızda göreceksiniz ki superText'in Metin özelliğine girdiğimiz bilgiler program çalıştırınca kayboluyor. Çalışmayı durdurunca da geri gelmiyor. Bu hatayı giderelim.

PropertyBag

ActiveX kontrollerin özelliklerinin tutulduğu bir nesne var. Nesnenin adı PropertyBag. Bu nesnenin fonsiyonları ile özellik değerleri yazılıp okunabilir.
WriteProperty fonksiyonu özellik değeri okumak için,
ReadProperty ise özellik değeri yazmak içindir.

  • superText kod penceresine aşağıdaki kodları ekleyin
Public Sub UserControl_ReadProperties(PropBag As PropertyBag)
    Text1.Text = PropBag.ReadProperty("Metin", UserControl.Name)
End Sub

Public Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Metin", Text1.Text, UserControl.Name)
End Sub
  • Şimdi projedeki test formuna(Form1) superText kontrolünden ekleyin, Metin özelliğini değiştirip çalıştırın.
  • Göreceksiniz ki artık Metin özelliği standart Textbox'ın Text özelliği gibi çalışıyor.
    Metin özellik değerleri kaybolmuyor.
    ReadProperties özelliği okumaya çalıştığımızda,
    WriteProperties ise özelliğe yazmaya çalıştığımızda çalışır.
  • Test formunun Click olayında aşağıdaki kodu deneyebilirsiniz.
    Bu kodlar ile superText'in Metin özelliğine değer atanmaktadır.
Private Sub Form_Click()
    superText1.Metin = "Merhaba"
End Sub

Önceki bölümde superText kontrolümüzün Metin özellik değerini kontrolün Name değerinden alarak superText olarak yazdırmıştık.

17 Kasım 2020 Salı

Vb ile ActiveX Bileşen Oluşturma-4: superText #1

Bu bölümde çok sık kullandığımız bir kontrol olan Textbox'un özelliklerini geliştirerek yeni bir ActiveX kontrol oluşturacağız.

  • Bu sefer farklı bir yol izleyeceğiz. Önceki bölümlerde önce ActiveX kontrol sonra Standart EXE projesi oluşturmuştuk. Bu bölümde ise öncekilerin tersi olacak.
    Önce Standart EXE projesi sonra aynı projeye ActiveX kontrol eklenecek.
  • Menüden File / New Project
  • New Project ekranında Standart EXE'yi çift tıklayın. Yeni bir standart form penceresi açılacak. Burası ActiveX kontrolü test etmek için.
  • Menüden Project / Add User Control tıklayın.
    Alternatif olarak Project penceresinde Sağ tıkla / Add / User Control
  • Açılan pencerede User Control'ü çift tıklayın.