Başlangıç > Kodlar > VB6 ile Activex dll yazılımı

VB6 ile Activex dll yazılımı


VB6.0 da ActiveX DLL yazılımına ilişkin, kolleksiyon yapısı, For...Each kullanımını aktifleştirme, özel data dosyası oluşturma ve personellere ait bilgilerin ve resimlerin bu dosyada saklanmasına ilişkin ve daha birçok püf noktanın anlatıldığı, bu döküman ve örneği incelemenizi tavsiye ederim.

DLL Yazılımı

* Bu dökümanda VB6.0'da DLL nasıl yazılır?
* Kendimize özel kayıt dosyası nasıl oluşturulur?
* Kolleksiyon yapısı nasıl oluşturulur?
* Yazdığımız DLL'i kullanan şahıslar için item erişimlerinde For...Each döngü kullanımına uyumluluk nasıl sağlanır?
* Resim bilgisinin kayıt dosyasında saklanması ve kullanımı,
* VBRUN.PropertyBag objesinin kullanımı,
* Resmin, belirtilen alana uyumlu bir şekilde kesilip ölçeklendirilmesi,
* DLL içindeki class'ların birbirleri ile iletişiminde özel fonksiyon tanımlamaları nasıl yapılır?
* Yazılan DLL'in yazılım sırasında kod kontrolü nasıl gerçekleştirilir?
konuları işlenecektir.

 

DLL projesinin test edildiği EXE uygulamasının ekran görüntüsü...

DLL Projesi Oluşturma

VB6.0 editöründe "Yeni Proje" (New Project) olarak karşımıza çıkan iletişim penceresinde "ActiveX DLL" seçilerek "OK" butonuna basılır. (Figür-1)


-----------Figür-1-----------

Oluşturulan yeni projede, varsayılan olarak 1 adet class (Class1) ekli olarak gelecektir. Öncelikle, proje adını "MyDLL001" olarak değiştirin. Siz bu bölümde kendi DLL isminizi verebilirsiniz! (Figür-2)


-----------Figür-2-----------

Daha sonra projede mevcut bulunan "Class1" isimli class adını "CPersons" olarak değiştirin. (Figür-3)


-----------Figür-3-----------

Projeye yeni bir class daha ekleyin. Ekleme işlemini "Project" penceresinde "MyDLL001" isimli proje adına mouse-sağ-klik işlemi ile açılan menü yardımıyla veya "Project>Add Class Module" menüsü ile de yapabilirsiniz. (Figür-4)


-----------Figür-4-----------


-----------Figür-5---------

Eklemiş olduğunuz yeni class'a "CPerson" ismini verin ve Figür-4 ve Figür-5 deki işlemleri tekrarlayarak, bir class daha ekleyip bu class ismini de "CLayout" olarak değiştirin.

Yazacağımız DLL'i test etmek için projemize "File>Add Project..." menüsünden yeni bir EXE projesi ekleyin. (Figür-6 ve Figür-7)


-----------Figür-6---------


-----------Figür-7---------

Uygulamayı çalıştırdığımızda varsayılan proje olarak "MyDLL001" projesi gözükecektir. Bu nedenle yeni eklediğimiz "Project1" isimli projeyi, başlangıçta çalışacak şekilde set etmeliyiz. Bunun için "Project" penceresinde "Project1" isimli proje adına mouse-sağ-klik işlemi ile açılan menü yardımıyla "Set as Start Up" menüsü seçilir. (Figür-8)


-----------Figür-8---------

"MyDLL001" projesinde herhangi bir class seçilerek kod penceresinde açılır ve "Project>MyDLL001 Properties..." menüsü yardımıyla, MyDLL001 isimli projenin özellikler ekranı açılır. Bu pencerede projece açıklaması ("Project Description:") bölümüne ":) MyDLL Sample Library" yazılır. Yazılan bu açıklama, yazdığımız DLL'i kullanan şahıslar "Project>References..." menüsü yardımıyla kendi yazdıkları projeye bizim DLL'i eklemek istediklerinde, açılan referans listesinde bu açıklamayı göreceklerdir. Herhangi bir açıklama girmezseniz "MyDLL001" olarak gözükeceltir. (Figür-9)


-----------Figür-9---------

Daha sonra "Project1" projesindeki formun kod pencesi açılır ve "Project>References..." menüsü yardımı ile referans penceresi açılır. Bu pencerede bilgisayarımızda yüklü olan ActiveX DLL listesi görünecek ve listede seçili olanların hemen altında bizim projenin adını göreceksiniz. Test projesi olduğu için açıklamayı değil "MyDLL001" proje adı gözükecektir. Referans olarak "Project1" e "MyDLL001" projesini işaretleyip "OK" butonuna basarak onaylayın. (Figür-10)


-----------Figür-10---------

Tüm bu işlemler bittikten sonra, "MyDLL001" isimli projede bulunan "CPersons" ve "CPerson" isimli classların "Instancing" özelliklerini "PublicNotCreated" olarak işaretleyin. (Figür-11) Bu bölümdeki seçenekleri kısaca açıklarsak;
- Private: Bu class'ın sadece bu projede kullanılabileceği, yazmış olduğumuz DLL'i kullanan şahısların bu class'a erişemeyeceği anlamına gelir.
- PublicNotCreated: Bu class'ın bu projede oluşturulabileceği, DLL'i kullanan şahısların bu class'ı görebileceği fakat "New" komutu ile oluşturamayacağı anlamına gelir. Bu şekilde tanımlanmış olan class'lar DLL'i yazan kullanıcı tarafından "Function veya Property" yoluyla diğer şahıslara ulaştırılabilir.
- MultiUse: Bu class hem kullanıcılar tarafından hem de proje içinde "New" komutu ile oluşturulabilir.
- GlobalMultiUse: DLL'i kullanan şahıslar "New" komutunu kullanmadan da bu class içindeki fonksiyon ve özelliklere direkt olarak erişebilir. Yani;

 


Dim objClass1 As New CPerson
objClass.Name = "Test"
'şeklinde değil 

Name = "Test"
'şeklinde direkt olarak özelliğe erişebilir.


-----------Figür-11---------

CPerson

Bu class, tek bir personele ait bilgileri barındırır. Personele ait bilgilere bu class üstünden erişeceğiz. Aşağıda class'a ait kodlar sunulmuştur. Dilerseniz daha fazla özellik ekleyebilirsiniz.


Option Explicit

Dim m_nIndex        As Long
Dim m_sName         As String
Dim m_sSurName      As String
Dim m_sMobile        As String
Dim m_sTelephone    As String
Dim m_sFax          As String
Dim m_sAddress      As String
Dim m_sEmail        As String
Dim m_sDescription  As String
Dim m_objPicture    As IPicture

Public Property Get Index() As Long
If m_nIndex = 0 Then
VBA.Err.Raise 35605, , "This item's control has been deleted"
End If
Index = m_nIndex
End Property
Friend Property Let Index(ByVal newVal As Long)
m_nIndex = newVal
End Property

Public Property Get FullName() As String
FullName = m_sName & VBA.IIf((m_sSurName = vbNullString), vbNullString, " ") & m_sSurName
End Property

Public Property Get Name() As String
Name = m_sName
End Property
Public Property Let Name(ByVal newVal As String)
m_sName = newVal
End Property

Public Property Get SurName() As String
SurName = m_sSurName
End Property
Public Property Let SurName(ByVal newVal As String)
m_sSurName = newVal
End Property

 

Reklamlar
  1. Henüz yorum yapılmamış.
  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s

%d blogcu bunu beğendi: