Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic makaleleri » ActiveX Dll ' ler ile mükemmel projeler yaratın...
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

setup hazırlarken kllandığınız işletim sisteminin tarihini amerikan saat ve tarih yapısında olmasını

Yazar: gazep

Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 315
Yayın Tar:15.07.2004
Yazar : ecel
Hit :6968

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Herkeze Merhaba;
Öncelikle kafanızda bir proje olduğunu , veritabanı hakkında bilginiz olduğunu ve Visual Basic'le uzun zamandır çalışıp onunla harikalar yaratmak istediğinizi varsayıyorum. Aksi bir durum söz konusu ise üzgünüm bu makale size göre değil.
Bir ön elemeden sonra şimdi gerçekten işinize yarayacak bilgilere geldi. Yeni bir project başlatın(Standart EXE) Bu Exe Projemiz.(Lütfen proje isimlerini düzenleyiniz) Şimdi herkez kafasındaki projeyi düşünsün. Birazdan Dll'ler yaratıcaz ve minumum kod ile modüler,oldukça hızlı bir uygulama geliştiricez.
Şimdi projeyi güzel bir klasör içinde (Lütfen "d:yedekzamazingoıvırzıvırhebelehübelevbdbdfdf" gibi bir dizin olmasın. Hemen elinizin altında bulunsun mesela "C:Project") kaydediniz.
Şimdi File > Add Project >ActiveX Dll i ekliyoruz. Artık Project Explorer'da Eklediğimiz projemizide göre biliyoruz. Bu bizim Dll dosyamız olacağı için lütfen Unique olsun , sizin olsun güzel bir isim verelim. (EceLexDB gibi) Bu Dll içinde formlar,moduller besleyebilir ve bunu Exe'mize ufacık kodlar yazarak çağırabiliriz. Birazdan yapıcaz sabırlı olun...
ActiveX Dll imize bir adet form ekleyelim. (Sağdaki Project Explorer'da ActiveX projecti üzerine sağ tuş,açılan menuden ADD,ordan FORM lütfen) .(adı frmForm olsun) Bu formda iki sayıyı toplayıp , yine ordaki bir alana yazdıracağımızı düşünün ve bunun için forma nesneleri serpiştirin , buralarda oyalanmayalım hadi çabuk olun. (Sadece nesneleri ekleyin. Fonksiyonu olmayacak)
Projeyi eklediğimizde onunla gelen Class1 CLASS nesnesinin adınıda ClsForm yapalım. Ve içine :
------ClsForm[ActiveX]--------
Public Sub Show_frmForm() 'ClsForm nesnemize Show_frmForm diye bir sub ekledik
Set frm = New frmForm 'Projemizdeki frmForm nesnesini frm'ye yeni bir atama yaptık.
frm.Show 'Artık frm'de frmForm 'un method,property'lerini kullanabiliriz.
End Sub
------------------------

Şimdi ActiveX Projemiz aktifken File>Save As> güzel bir yere kaydetmiştik ya , o klasörde yeni bir klasör açın ismi ActiveX proje ile aynı olsun( örn: "c:projectEceLexDb") . ActiveX dll 'in tüm öğeleri bu klasörde olsun ve size PRoject Groupu nereye kaydediyim diye sorduğunda lütfen ana dizine ("c:projectgrup.vbg") kaydedin.
Şimdi Exe'mize Module ekleyiniz.bu module içine :
--------Module1[Exe]---------
Public Hebele As New EceLexDb.ClsForm 'Hebele die yeni bir EcelexDb.ClsForm yarattık,töbe.
'Hebele yerine dilediğinizi yazın. EceLexDb yerine ActiveX Dll project ismini yazınız.

Public Sub BanaFormGoster()
If Not Hebele Is Nothing Then 'Hebele nesnesi var ise
Hebele.Show_frmForms 'Hebele'deki Show_frmForm methodunu çalıştır bakalım nolacak?
End If
End Sub
---------------------------------

Şimdi Exe'e aktifken Project > References Menusune giriniz. Çıkan listede referans edilmiş Dll'ler ve Projeleri göreceksiniz. Sizin Proje isminide orda görüyor olmanız gerekiyor. Checked olmasını sağlayın ve pencereyi kapatın. Artık yazdığımız dll Exe'ye referans edilmiş oldu. Şimdi Exe'ye bir buton ekleyin. Butonun Click Event'ine :
-------Exe_Form1---------
Private Sub Command1_Click()
BanaFormGoster ' Module'de public olarak tanimladigimiz sub'i cagiriyoruz.
End Sub
------------------------------

Evet şimdi Dll'imizi deneyelim. Projeyi çalıştırın. Exe'miz açılsın. Besmele ile butona basın,iki sayıyı toplasın die hazırladığınız o komik form karşınızda . Kapatın tekrar basın butona , aaa bidaha geldi. Kapatmadan basın bir daha , ikinci üçünçü vs... şeklinde gidicektir... Sanırım şimdi iki sayıyı toplayacak olan bir fonksiyon yazmanın zamanı geldi.
-------ClsForm içine:----
Public Function ToplaGel(byval sayi1 as integer,byval sayi2 as integer) as integer 'geri dönüş
ToplaGel=sayi1+sayi2 'toplayin,değeri geri döndürün.
End Function
----------------------------

Şimdi bu çok kullanışlı fonksiyonu hazırladığımız formun topla düğmesinin click eventinden çağıralım,ok?

-------ActiveX Dll, frmForm--------
Dim BenimCls as new EcelexDb.ClsForm 'kendi projemde ama sonuçta o bir class,tanımlayalım.

Private Sub Command1_Click()
text3.text = BenimCls.ToplaGel( val (text1.text) , val (text2.text) )
'val(string) Visual basic sizi fazla sıkmaz değişken olaylarında ama Dll kullanırken belirttiğiniz tipte olmak zorundadır.Kullanıcı sayı girmeye bilir. Val sayeside girmese bile "0" değeri döner.
'BenimCls içinde az önce yazdığımız ToplaGel fonksiyonunu kullandık,ona değer verdik oda bize sonucu. Bizde onu attık bir textbox'a ... herneyse...
End Sub
--------------------------------------

Bu fonksiyonun güzelliği , biz bunu Exe'deki bir formdanda çağırabiliriz , bir başka projedende çağırabiliriz. Yani çok sık kullandığınız fonksiyonları bir Dll içinde toplayıp onları tüm projelerinizde kullanabilirsiniz. Şimdi bunun için neler yapmak lazım ona değinelim.

Öncelikle projeyi bi kaydedelim. Şimdi File>Make Project Group seçeneğinden Projenin Exe ' sini , Dll 'ini bi oluşturalım. Artık gidip exe'yi çalıştırın , yine o güzel sonucu alacaksınız. Peki Dll nerde? Dll orda dizinde ama bizim exe nasıl buluyor onu? RegSvr32.exe yi biliorz.Dll Register edilir. Proje derlenince register edilir , ve Exe ' registry'den Dll yoluna ulaşır. Şimdi proje bitti diyelim. ToplaGel yetmedi, CikarGel eklemek istiyoruz :) Dll projesini tek başına açıp değişiklik yapmak istiyceksiniz , haliyle , öle yapıcaksınız. Ekleyin , Düzenleyin. Dll 'i tekrar build edin. Şimdi Exe'yi çalıştırın. Ve işte o hata ... Can not create activex object or automation error... Ne yani , bi dll'i güncelleyince koskoca projeleri tekrar'mı oluşturucaz?Exe'yide mi ? Şimdilik evet... Çünkü yazdığımız dll PROJECT COMPABILITY 'de... Whats Dis? Project> EceLexDb Properties (ActiveX Dll isminiz,en altta) Çıkan pencereden Compenent Tab'ına geçin. Orada Version Compability diye bir şey var. Project Compability default olarak seçili... Bu yüzden güncellemelerde illaki exe'yide tekrar derlememiz gerekiyor. Böylelikle Sizin exe'nizden başka exe o Dll'deki Classları kullanamıyor. Eğer siz güncelleme ve diğer projelerinizde kullanma meraklısıysanız Bu özelliği BINARY COMPABILITY 'ye getirmelisiniz. Bu modda, yeni fonksiyonlar eklediğinizde yada çıkardığınızda , veya bir fonksiyonun parametre sayısını değiştirdiğinizde size napıyon kardeş bak diğer projeler bunu çağırırsa kitlenebilir , diye uyarıdan öteye gitmeyecektir. En fazla Dll'i tekrar RegSvr32 yapmanız gerekebilir. No Compability uyumluluk gözetmeyeceği için umumi bir kullanım ve değişikliklerde kitlenmelere neden olabilir. Biz Binary Compability i seçiyoruz.
Artık ActiveX Dll ler kullanarak modüler Projeler yaratabiliriz. Bir kaç tane daha Dll ekleyin. O dll'leri de diğerlerinin içinde kullanabilirsiniz. Bu Microsoft 'un nimetleri işte...
Bu konu bu kadar yüzeysel geçilecek bir konu değil ama yinede yardımcı olmuştur umarım. Hani nerde Adodb ? veritabanı diceksiniz? Çünkü bu proje yapısı ile mükemmel Veritabanı uygulamaları geliştirebileceksiniz. O konu daha uzun olduğu içim izninizle bir başka makalede... Yorumlarınızı , düşüncelerinizi ve sorularınızı bekliyorum. Bu konuda daha ayrıntılı bilgi isteyenlerle yazışabiliriz.
İyi çalışmalar...

[ecel@hotmail.com]
It's EceL sTyLe!!!




Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin