ActiveX etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ActiveX 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.

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 Aralık 2020 Salı

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

Ö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.
En son About (Hakkında) özelliği eklemiştik ancak açılan hakkında iletişim kutusunun başlığında Project1 yazıyordu. Başlığı değiştirelim.

  • Hakkinda prosedürünü aşağıdaki kodlar ile değiştirin.
Sub Hakkinda()
    MsgBox "superText ActiveX Kontrol" & vbCrLf & "©2020 Mesut Akcan" & vbCrLf & _
        "Bu kontrol TextBox kontrolüne yeni kullanışlı özellikler eklenerek geliştirilmiştir.", , _
        "superText Hakkında"
End Sub

Bu kodları biraz geliştirelim.

  • Kontrol adını superText diye yazmak yerine UserControl.Name kullanalım.
Bunun faydası kontrol adını değiştirdiğimizde Hakkinda prosedüründe değişikliğe gerek olmaması.

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.

14 Kasım 2020 Cumartesi

Vb ile ActiveX Bileşen Oluşturma-3: Çerçeve(Frame)

Bu bölümde bir çerçeve oluşturacağız. Standart kontrollerden Frame'e benzer bir kontrol. Ama aynı işlevde olmayacak. Çünkü öğrenim amaçlı projeler oluşturduğumuzdan kontrollerde fazla işlev olmayacaktır.

Başlayalım.

  • Visual Basic'i çalıştırın. Menüden File / New Project
  • Açılan pencere ActiveX Control'ü çift tıklayın.
  • Yeni bir form penceresi açılacak
  • F4 e basarak form özellikleri penceresini açın.
  • Formun Name özelliğini Cerceve olarak değiştirin. Çerçeve olarak da girebiliriz bir sorun oluşturmaz ancak kodlamada genel alışkanlık; nesne ve değişken isimlerinde İngilizce karakterler kullanılır.
  • Form üzerine 2 dikey, 2 de yatay olmak üzere 4 adet Line (çizgi) ekleyin.
    Çizgilerin boyu ve konumu önemli değil. Kodlarla gerekli boyut ayarlanacak ve gerekli konuma yerleştireceğiz.
  • Formdaki çizgilerin Name(Ad) özelliğini aşağıdaki resme göre değiştirin.
  • sol ve ust çizgiyi seçin, BorderColor özelliğini &H00FFFFFF& olarak,

13 Kasım 2020 Cuma

Vb ile ActiveX Bileşen Oluşturma-2: Dijital Saat

Bu bölümünde yeni bir ActiveX kontrol oluşturacağız.
Bu kontrolü Visual Basic projelerde ocx olarak yada ctl olarak kullanmayı öğreneceğiz.
Önceki bölümdeki uygulamaları yapmadan bu bölüme geçmemeniz tavsiye olunur.

Dijital Saat

  • Visual Basic'i çalıştırın.
  • Açılan New Project penceresinde ActiveX Control'ü çift tıklayın. Yeni bir form penceresi açılacak
  • F4'e basarak form özellikleri penceresini açın.
  • Formun Name özelliğine baktığımızda UserControl1 yazdığını göreceğiz.
  • Bunu ctl_DSaat olarak değiştirin
  • Ctrl+R'ye basarak Project penceresinde de ismin değiştiğini görün.

12 Kasım 2020 Perşembe

Vb ile ActiveX Bileşen Oluşturma-1: Fırıldak

Bu yazı serisinde Visual Basic 6 ile ActiveX bileşen oluşturmayı açıklayacağım.

ActiveX nedir?

Activex Visual Basic ve Delphi gibi dillerde kullanılan bir kütüphane sistemidir. Uzantısı ocx, dll veya exe'dir. Visual basic kurulumu ile çok sayıda ActiveX bileşen sisteme kurulur.
ActiveX bir teknoloji grubuna verilen isimdir. Bu grubu oluşturan teknolojiler, programcıların uygulamalarını daha hızlı şekilde geliştirebilmelerini, daha önce oluşturulmuş bileşenleri, tekrar kod yazmak zorunda kalmadan uygulamalarında kullanabilmelerini sağlamaktadır.

Örneğin yazılan programda video oynatan bir bölüm olması gerekiyor. Bu işi yapan bir ActiveX bileşen(component) varsa yeniden kod yazmaya gerek kalmaz. Kolaylıkla ActiveX bileşen uygulamaya eklenir ve kullanılır. Çok sayıda ActiveX bileşen ücretli veya bedava olarak internette bulunabilmektedir.

Eğer işimizi görecek bileşen yoksa veya ücretli bir bileşen satın almak istemiyorsak kendimiz de bir ActiveX bileşen oluşturabiliriz.

Visual Basic ile ActiveX bileşen oluşturma

Yapacağımız ActiveX bileşen, yandaki resimde olduğu gibi oklara tıklanarak metin kutusundaki sayıyı arttıracak ya da azaltacak. Birçok programın ayar penceresinde buna benzer şeylerden rastlamışsınızdır.

Visual Basic sürümlerini indirmek için https://winworldpc.com/product/microsoft-visual-bas/60

  • Visual Basic 6'yı çalıştırın.
  • Vb'yi çalıştırdığınızda New Project ekranıyla karşılaşacaksınız.
  • Bu pencerede ActiveX Control'ü tıklayıp butonunu tıklayın ya da çift tıklayın.
    Eğer böyle bir pencere gelmezse menüden File / New project CTRL+N tıklayın.