You are on page 1of 862

BLM 0 VISUAL BASIC 6.

IN KURULUMU

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC 6.0 IN BLGSAYARINIZA KURULUMU Visual Basic 6.0 bilgisayarnza kurmak iin Setup programn altrmanz gerekmektedir. Balat butonu zerindeki altr seenei ile alan diyalog penceresinden Setup programn bularak seiniz. Bu program bulmak iin altr diyalog kutusu Gzat seeneinden faydalanabilirsiniz. Visual Basic 6.0 kurmak iin aadaki diyalog kutusundaki gibi setup.exe yi seip Tamam butonunu tklaynz.

VISUAL BASIC LE YAZILIM GELTRME Visual Basic 6.0 Visual Studio nun bir parasdr ve Visual Basic iin Visual Studio nun Setup programn altrp Visual Basic veya dier Visual Studio yazlm gelitirme aralarn bilgisayarnza kurabilirsiniz. Setup.exe altrldnda ilk olarak aadaki takdim ekran gelecektir. Bu ekran Next butonu ile geiniz. Bir sonraki ekranda ise kullanc lisans anlamas ile ilgili metin gelecektir. I accept the agreement(Anlamay kabul ediyorum) metnini seerek bu metinde yazlanlar kabul ettiinizi belirttiinizde Next butonu aktif duruma geer. Bu butonu kullanarak bir sonraki ekrana geebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Aadaki ekranda ise rnnzn ID (Identification-kimlik) numarasn girmeniz gerekmektedir. Numaray girdiinizde Next butonu aktif olacaktr. Bu butonu kullanarak ayet girdiiniz ID geerli bir numara ise bir sonraki ekrana gemenize izin verilecek aksi durumda doru numaray girinceye kadar bu ekran gemenize msaade edilmeyecektir.

VISUAL BASIC LE YAZILIM GELTRME Daha sonraki iki ekran da dorudan Continue komutu ile geebilirsiniz. Aadaki ekran gelecektir. Bu ekranda Visual Studio nun dolays ile Visual Basic in Hangi dizine kurulaca belirtilmektedir. Visual Studio nun Progr am Files dizininin altnda Microsoft Visual Studio dizinin iine kopyalanaca varsaylmaktadr. stenirse bu dizin Change Folder butonu ile deitirilebilir. Ekrann sol stndeki byk butona tklayarak bir sonraki ekrana geebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda ise bu kurulum ilemi ile bilgisayarnza yklenecek olan yazlm gelitirme aralar seilmi olarak gelmektedir. Bu ekranda yklenmesini istediiniz dier programlar zerine tklayarak seebilir veya iptal edebilirsiniz. Ayrca Change Option butonuna bastnzda listede seilmi olan yazlm gelitirme aracn ierdii bileenleri de grebilir ve benzer bir mantkla bunlarn da yklenmesini veya yklenmemesini zerine tklayarak belirtebilirsiniz. Yukarda seilmi olan Microsoft Visual Basic 6.0 n ierdii bileenlere aadaki ekranda grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekran OK butonu ile kapatldnda tekrar bir nceki ekrana dnlr. Bu ekranda ise Continue butonu ile artk Visual Studio ile birlikte Visual Basic ve seilen dier yazlm gelitirme aralar ayet sabit diskinizde yeterli yer varsa bilgisayarnza kurulmaya balanacaktr. Aadaki ekranda kurulum ileminin hangi aamada olduunu gstermekte ve bu ilem srasnda da ekrana Visual Studio ile ilgili aklayc bilgiler gelmektedir.

VISUAL BASIC LE YAZILIM GELTRME

VISUAL BASIC LE YAZILIM GELTRME BLM 1 VISUAL BASIC 6.0 LE ALIMAYA BALAMAK

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC 6.0 LE ALIMAYA BALAMAK Setup program ile yklediimiz Visual BASIC 6.0 balatmak iin Windows 95/98/Me ortamnda birok seeneiniz var. 1. Yntem:Balat(Star t) butonunu kullanmak Visual BASIC 6.0 n daha nceden Setup Program ile Windows 95/98/Me iine yklenmi olduunu var sayarak. mouse yardm ile Balat(Star t) butonunu seiniz. Daha sonra Programlar men balndan Microsoft Visual Studio 6.0 seerek Visual BASIC 6.0 zerine geliniz. Visual BASIC yklenecektir.(ekil1.1) ekil 1.1 Start butonu ile Visual BASIC 6.0 yklemek. 2. Windows 95/98/Me Explorer Yardm le Windows 95/98/Me Explorer(Gezgin) modl yardm ile Visual BASIC in .exe kodunun bulunduu dizine giderek bu .exe program mouse yardm ile iki kez tklanarak(double click) Visual BASIC aktif hale getirir. ekil1.2 de dosya yneticisi yardm ile nce Visual BASIC in

VISUAL BASIC LE YAZILIM GELTRME ykl olduu VB dizini sonra da bu dizin iindeki VB6.EXE program seilmi ve double click ile Vb6.exe altrlmtr. ekil 1.2 Windows Gezgini nin arlmas. ekil 1.3 Windows Gezgini ile Visual BASIC I icra etme.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.3 te ise ayn ilemin Windows Gezgini ile nasl yaplacan grlmektedir. Balat/Programlar/Windows Gezgini (Start/Programs/Windows) seimleri ile Gezgin aktif hale getirilmi, sonra ..\Vb98 dizini iindeki Vb6.exe double click ile altrlmtr. 3.Yntem: Vb6.exe nin bulunduu dizin belirli deilse ya da kullanc tarafndan bilinmiyorsa bu durumda nce Vb6.exe, Windows 95/98/Me yardm ile bulunmaldr. Bu amala Windows 95/98/Me nin Explor er kullanlabilir. nce daha ncede olduu gibi Gezgin i arnz. (ekil 1.4) ekil 1.4 Windows 98 Explorer arma Sonra Gezgin de Ar alar mensnden Bul seeneinin Dosyalar&Klasrler alt mensn seiniz. (ekil 1.5)

VISUAL BASIC LE YAZILIM GELTRME ekil 1.5 Gezgin de Aralar,Bul,Dosyalar veya Klasrler men yolu imdi karmza ekil 1.6 da grlen pencere alacaktr. Burada Ad penceresinin ierisine arayacanz programn adn (Vb6.exe), Konum penceresi ierisinde aramann hangi dizinden balayacan (rnekte C kk (root) dizininden balyor) yazarak imdi Ar a butonunu seiniz. Karnza ekil 1.7 deki pencere gelecektir. ekil 1.6 Gezgin de Bul penceresi

VISUAL BASIC LE YAZILIM GELTRME ekil 1.7 Vb6.exe nin bulunduu dizin. Vb6.exe "C:\Program Files\DevStudio\VB\VB5.EXE" dizini iinde bulunmutur. imdi, Dosya mensnden A seeneini seerseniz Vb6.exe icra edilecektir. VISULA BASIC SONA ERDRME(IKI) Bu amala kullanlabilecek eitli yntemler mevcuttur. 1)File mensnden Exit i seerseniz Visual BASIC ten klarak iletim sistemine(Windows) geilecektir. 2)Ayn amala klavyede Alt ve F4 tularn birlikte kullanabilirsiniz. 3) Visual BASIC sona erdirmek iin baka bir yol ise Microsoft Visual BASIC Project penceresinden, sa st kesindeki semboln mouse yardm ile tklamaktr.

VISUAL BASIC LE YAZILIM GELTRME Visual BASIC 6.0 PROJE TASARIM PENCERESNE BAKI Visual BASIC 6.0 ald zaman karmza ekil 1.8 de grlen ekran grnts gelecektir. Visual BASIC 6.0 ile , tek tip standart altrlabilir dosyalar trnden projelerin yan sra 5.0 srmndeki benzer ekilde, bileen yazlmndaki (component software) yeni gelimelerin ortaya kard ActiveX teknolojisini kullanan uygulamalar gelitirmek de mmkndr. Bu gelimeler, Visual 1.0 ile balayan ve daha sonraki Visual Basic srmleri ile ok geni bir mozaik eklini alan ara kutusu iindeki, tekrar kullanlabilir yazlm paralar VBX leri , daha sonra OCX leri gndeme getirdi. Ayrca bunun yannda nternet zerinde alan ActiveX dkmanlar ve kod bileenleri de birer proje gelitirilebilecek uygulama alanlar durumuna gelmilerdir. te Visual BASIC 6.0 ile bir proje balatmadan nce btn bunlar gz nnde bulundurmamz ve hangi amaca ynelik proje oluturmak istediimizi bilmemiz gerekir. ekil 1.8 deki diyalog penceresi bu tr bir ama iin kullanlr. Kitabmzda nce Visual Basic programlama aklanacak, okuyucu Visual Basic koduna altktan sonra activeX uygulamalar anlatlacaktr. Bunun iin rnekler Standart EXE projeleri ile oluturulmutur. ekil 1.8 - Visual Basic al ekran

VISUAL BASIC LE YAZILIM GELTRME Visual BASIC tasarm penceresi aldnda gze ilk arpan nemli zellik tasarm ortamnn MDI modda almasdr. (ekil 1.9) Yani formlar tasarlarken ana pencerenin dna kamyorsunuz. Ak btn Visual Basic pencereleri tek bir ana pencerenin erevesi ile snrlandrlr. Bylece kullanc ok fazla pencere ile altnda ekran daha ergonomik kullanabilmektedir. Fakat istendii takdirde SDI mod da (4.0 ve daha nceki Visual Basic srmlerinde olduu gibi) seilebilir. Bu ekranda grnen nemli bileenler ; Men satr,Kontrol sembolleri, Form 1 balkl Form pencer esi, Form1 balkl zellikler penceresi, Project1 balkl proje penceresi, Layout ve Immediate pencereleridir. (ekil 1.9) Bu bileenlerin ilevleri kitabn ilgili ksmlarnda ayrntl olarak anlatlacaktr. Bu blmde ise ksa bir bilgi vermek istiyoruz. Men satr 13 adet ana men bal ve her birinin alt menlerini ierir. Visual BASIC ortamnda proje (yazlm) gelitirirken yararlanlabilecek eitli fonksiyonlar vardr. Kontrol nesneler i, Visual BASIC ortamna nceden yerletirilmi nesnelerdir. Her birinin farkl ilevleri vardr. Gelitirilen projenin gereksinimlerine gre, bu kontrollerden gerekli olanlar form zerine tanr ve yazlmn icras esnasnda istenilen fonksiyonlar yerine getirebilmeleri iin bu kontrollere bal bilgisayar programlar (kodlar-codes) da oluturulur. Form ise bir Visual BASIC projesinin temel nesnesidir. Proje ile ilikili tm nesneler form zerine yerletirilir. Bir projede, gerekiyorsa birden fazla form da bulunabilir. Project balkl pencere , o esnadaki aktif formla ilikili olarak baz ilevleri yerine getirir. Visual Basic 6.0 ile artk uygulamalar birden fazla proje ierebilirler. Bu durumda Project balkl proje penceresi Project Group olarak deiir ve uygulamamz bir grup olarak alr. Pencere balnn hemen altnda iki gruba ayrlm buton bulunur. Bunlardan View code butonu seilirse, o esnada aktif olan nesneye bal olarak oluturulmu bilgisayar program(kodu) grntlenir. View object butonu seilirse de , bu durumda tasarm aamasnda o an iin seilmi olan nesne grntlenecektir. Toggle folders butonu ile ise proje iinde kullanlan genel maksatl modller , formlar , snflar , ve kaynak dosyalar gibi proje bileenleri bir dizin mant iinde ayrntl veya toplu halde grntlenir.

VISUAL BASIC LE YAZILIM GELTRME zellikler penceresi, o anda aktif durumdaki(seilmi)Visual Basic kontrolnn tm zelliklerini grntler. Visual Basic 6.0 ile bir kontroln zelliklerini alfabetik olarak veya snflandrlm bir ekilde grntlemek mmkndr. Ayrca zellikler penceresinden seilmi olan zellik ile ilgili ksa bir aklama da pencerenin altndaki kutucuktan okunabilir. Immediate penceresi, berake modda (tasarm ortamnda program akn kesilmesi) otomatik olarak bo olarak alr. Debug , reset ve komut satrndaki ilemler uygulanabilir veya program akna kalnd yerden devam edilebilir. Layout penceresinde ise formlar n ekrandaki pozisyonlar mouse yardm ile ayarlanabilir. ekil 1.9 Visual BASIC 6.0 Proje Tasarm Penceresi MEN SATIRI Bu blmde Visual BASIC 6.0 n men satr hakknda ayrntl bilgi verilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.10 daki alt menlerden oluur. ekil 1.10 File Mens alt menleri Alt menlerin ilevleri aada anlatlmtr. New Project Yeni bir Visual BASIC projesi balatmak amac ile kullanlr. Bir Visual BASIC projesi, Visual BASIC uygulamas iin gerekli form, kontrol nesneleri, kodlar ve dier dosyalar ieren bir koleksiyondur. Belli bir anda tek bir uygulama aktif olabilecei iin , yeni bir proje balatnca , o esnada aktif olan proje veya proje grubundaki projeler ile ilikili dosyalar kapatlr . Kapatlan proje veya projelerde, alma esnasnda bir deiiklik yaplmsa, yani son hali, diskete saklanan ekilden farkl ise, New Project mens seilince aadaki diyalog gelir: FILE MENS

VISUAL BASIC LE YAZILIM GELTRME Bu diyalog penceresinde projede veya proje grubunda kullanlan, zerinde deiiklik yaplm btn bileenler seilmi olarak listelenir. Kaydedilmesini istemediimiz bileenleri ekran gstergesi yardm ile belirtebilirsiniz. Cevabnz evet ise Yes butonu seilir veya Alt+Y tularna basabilirsiniz. Open Project Bu men seenei yardm ile, daha nceden diskete sakalm olduunuz bir Visual BASIC uygulamasn tekrar aktif hale getirebilirsiniz. Bu seenek seilirse aadaki diyalog penceresi gelecektir.

VISUAL BASIC LE YAZILIM GELTRME Burada Files of type penceresinde , listelenen dosya tipi Proje dosyalar olarak belirtilmitir. Proje dosyalarnn uzants .Vbp veya .Mak eklindedir. Arzu edilen proje (htakip.vbp) mouse yardmyla seilip Ok butonu tulanrsa, bu projede aktif hale gelecektir. Bu men seenei ile .Vbg uzantl proje grubu dosyalar da arlabilir. .Vbg uzantl dosyalar birden fazla projenin bir uygulama iinde kullanlmasn mmkn klmaktadr. Open Project penceresinin st ksmndaki Existing ve Recent butonundan Existing butonu pencere aldnda seili olarak gelir. Bu diyalog penceresi yardm ile almak istenen proje veya proje grubu seilir. Recent butonu seilirse varsa daha nce arlm olan Proje dosyalar listelenir. stenirse bu proje dosyalar herhangi bir dizin aranmakszn arlr. Add Project Visual Basic 6.0 ile 5.0 srmnde olduu gibi uygulamalarnzda birden fazla proje ekleyebilirsiniz. Proje penceresi birden fazla proje ieriinde Proje grup penceresi olarak deiir. Star t komut veya F5 tuu ile,

VISUAL BASIC LE YAZILIM GELTRME proje grubuna eklenen ilk exe projesi altrlr ve bu proje koyu tonlu (bold face) yaz format ile dier projelerden ayrt edilir. Arzu edilen exe projesinin altrlmas iin ekran gstergesi projenin ismi stnde iken mouse un sa tuu tklanr ve Project Explor er ksayol mensnde Set as star t Up komutu seilir. Add Project men seenei arlrsa aadaki diyalog penceresi gelir. Yukardaki diyalog penceresinde oluturulmak istenen proje tr seilir. VB Application Winzard ikonu, en genel zellikleri ieren bir uygulamay kod yazmak yerine men komutlar ile oluturmak iin kullanlr. Remove Project Aktif uygulamamz iindeki bir projeyi uygulama iinden karmak iin kullanlr. ayet uygulamamz tek bir proje ieriyor ise, bu ilemden sonra , proje ile ilgili btn men seenekleri ve grev ubuu butonlar pasif hale geer. (Yeni bir uygulama iin gerekli men seenekleri ve grev ubuu butonlar hari) Uygulama iinden karlan proje disketten silinmez. Bu men seenei seilirse, o anda proje penceresinde kl

VISUAL BASIC LE YAZILIM GELTRME izgi(krsr) ile seilmi olan proje uygulamadan dolays ile proje penceresinden karlm olur. Save Project (Save Project Group) O esnada uygulamada kullanlan projeleri ve projeler ile ilikili tm dosyalar ve ilikili Visual BASIC bilgilerini tek bir isim altnda toplamak amac ile kullanlr. Proje iinde kaydedilmemi tm bileenlerin dosya isimleri ve disk zerindeki yol tanm kullancya sorulur. Bu seenek kullanlrsa aadaki diyalog penceresi gelecektir. ayet uygulama birden fazla proje ieriyorsa File mensndeki Save Project seenei Save Project Group olarak deiir. (Ayn ekilde Save Project As seenei de Save Project Group As olarak deiir.) Proje dosyalarnn uzantlar .Vbp veya .Mak eklindedir.(Proje grubu dosyalarnn uzantlar .Vbg eklindedir.) File Name kutusuna proje grup ad, Save file as type kutusuna dosya tipi yazlr. Dr ives kutusuna evre bellek ortamn ad (C(disk), D(disk), A(disket), vb ) yazlr. Folders kutusuna ise , dosyann disk iinde hangi dizinde yer alaca belirtilir.

VISUAL BASIC LE YAZILIM GELTRME Save Project ( veya Save Project Group) mens ikinci kez arldnda diyalog penceresi gelmez; dosya o esnadaki son durumu ile ve ayn isim ile tekrar saklanr. Save Project As (Save Project Group As) Daha nce saklanm olan bir projeyi(veya proje grubundaki projeleri) oluturan, son hali disktekinden farkl tm uygulama bileenlerini yeni bir isimle saklamay salar. Proje iin gelen diyalog penceresi ve kullanm Save Project mens ile ayndr. Uygulama birden fazla proje ieriyorsa Save Project As seenei Save Project Group As olarak deiir. Save <Dosya smi> Save <Dosya smi> seenei, o esnada aktif olan proje penceresinde seilmi olan bir nesneyi evre bellekte(disk) kalc olarak saklamak amac ile kullanlr. Seilmi olan nesnenin ad men satrnda Save ifadesinin yannda gzkr. Bu seenek kullanlrsa aadaki gibi bir diyalog penceresi gelecektir: Bu pencerede File name kutusuna , nesnenin hangi isimle saklanmas isteniyorsa o isim yazlr. Save file as type kutusuna , saklanacak

VISUAL BASIC LE YAZILIM GELTRME dosyann tipi(tr) belirtilir. Dr ives kutusunda , dosyann hangi src ortamnda (disk,disket vb) saklanaca belirtilir. Folders kutusu ise, dosyann sakland ortam iinde hangi dizinde (directory,folder) saklanaca bildirilir. Diyalog penceresi, Bu seenek ilk kez kullanld zaman gelir. Dosaya bir kez saklandktan sonra, Save File seenei arlrsa, dosyann son durumu ayn isimle saklanr. Save <Dosya smi > As Bu men seenei yardm ile, daha nceden saklanm olan bir dosya yeni bir isimle yeniden saklanabilir. Save As File seeneine ait diyalog penceresi ve kullanm Save File seeneindekinin ayndr. Pr int Aktif formu, forma bal kodlar, zerinde altnz modl ya da uygulamanzdaki tm formlar yazcya aktarma imkan salar. Print seilirse aadaki diyalog penceresi ekrana gelir. Bu diyalog penceresinde Selection butonu iaretlenmise, o esnada seilmi olan kod yazcya aktarlr.

VISUAL BASIC LE YAZILIM GELTRME Cur r ent Module seenei iaretlenmise, o esnada seilmi kod ile birlikte ilikili form da yazcya aktarlr. Cur r ent Project iaretlenmise, aktif olan proje ile ilikili tm form ve ilikili kodlar yazcya aktarlr. Form Image seilmise, formlarn grntleri yazcya aktarlr. Code seilmise de, seilmi blgedeki kod(bilgisayar program) yazcya aktarlr Form As Text seilmise, formlar ve zerine yklenmi olan kontrol nesnelerinin zellikleri yazcya aktarlr. Pr int Quality kutusu ile bask kalitesi belirlenir. Pr int to File seenei iaretlenmise, bilgiler yazc yerine belirtilecek olan disk dosyasna aktarlacaktr. Pr int Setup Uygulamamzda bilgileri yazcya aktarma gereksinimimiz olduunda, bu men seenei ile, kullanacanz yazc(printer) tipini bilgisayara tantma, ve yazcdaki kat ve basknn oryantasyonu seeneklerini belirtme imkan salar. Seilirse aadaki pencere gelir. Burada Printer penceresinde kullanlacak yazcnn tr tanmlanr. Paper kutusunda Size blmnde kat boyutlar belirtilir. Or ientation kutusundaki seeneklerle ise, yazcdaki bilgilerin yerleme biimi

VISUAL BASIC LE YAZILIM GELTRME tanmlanr; Por tr ait enine, Landspace ise boyuna bir terletirme biimi belirler. Make <Proje smi> .EXE Bu men seeneinin sunaca diyalog penceresini kullanarak, gelitirdiiniz Visual BASIC uygulamasn, Windows ortamnda, Visual BASIC ortamna ihtiya duymadan altrlabilir hale getirebilirsiniz. Bu men seenei ayn zamanda ActiveX kontrol projelerini .OCX ve ActiveX kod bileeni uygulamalarn .DLL uzantl dosyalara dntrmek iin de kullanlr. Bu men seenei altrlrsa, aadaki diyalog penceresi gelir. Burada File Name kutusu iine EXE haline evrilecek olan projeye verilecek isim belirtilir. Dr iver s kutusu ile src, Dir ectries kutusu ile de ilgili dizin belirtilir. EXE haline evrilmi ve Visual BASIC ortamndan bamsz olarak altrlacak uygulamalarn baz DLL dosyalar ile kontrol nesneleri dosyalarna (.VBX veya .OCX) ihtiyac olmaktadr.

VISUAL BASIC LE YAZILIM GELTRME Make Project Group ayet uygulamanz birden fazla proje ieriyor ise grntlenir. Uygulamanzda oluturmak istediiniz projeleri semenizi salar. Exit Visual BASIC ortamndan karak iletim sistemi (Windows) kontrolne geii salar. ayet, alma esnasnda, projenin saklanm versiyonundan farkl bir takm deiiklikler yaplmsa, yeni ekli ile saklamak isteyip istemediiniz size sorulacaktr. ekil 1.11 de grlen alt menlerden oluur. Bu alt menlerin ilevleri aada anlatlmtr. ekil 1.11 - Edit alt menleri Undo,Redo Bu men seenei yardm ile, en son gerekletirilen edit (yazma , dzenleme vb) lemi ve sonular iptal edilebilir. Bu seenek altrlnca, yerine Redo seenei grnecektir. Bu seenek ise, iptal edilen ilemin tekrar gerekletirilmesini salayacaktr. Undo yerine Can t Undo bulunduu durumda ise, Undo ilemi gerekletirilen en son ileme uygulanamaz anlamndadr. Cut Bu men seenei, alma ortamnda nceden seilmi olan bilgilerin, iaret edilmi yerlere aktarlmasn salar. u admlar izlenir: EDIT MENS

VISUAL BASIC LE YAZILIM GELTRME 1)Aktarlacak bilgiler mouse yardm ile seilir.(siyah hale getirilir.) 2)Edit mensnden Cut seilir. 3)Mouse yardm ile bilgilerin aktarlaca blgenin balangc seilir. 4)Edit mensnden Paste seilir. Copy alma ortamnda seilmi olan bilgileri, iaret edilen yere kopyalama ilemini gerekletirir. Kopyalama iin u admlar izlenir: 1)Kopyalanacak bilgiler mouse yardm ile seilir. 2)Edit mensnden Copy seilir. 3)Kopyalanacak bilgilerin yerleecei blgenin balangc seilir. 4)Edit mensnden Paste seilir. Paste Cut ve Copy ilemleri esnasnda geici bellek alanna(clipboard) alnm olan bilgilerin alma ortamnda belirtilen blgeye aktarlmasn (yaptrlmasn) salar. Yukarda da grld gibi, pratik olarak, Cut ve Copy ilemlerinin son admnn gerekletirilmesi salanmtr. Paste Link Baka bir Windows uygulamas iinden Clipboard a kopyalanm olan verileri, aktif Visual BASIC uygulamas iine aktarmak iin kullanlr. Verilerin aktarld Windows uygulamas ile Visual BASIC uygulamas arasnda bir ba(link) kurulur. Bylece, orijinal uygulamadaki bir deiiklik , aynen Visual BASIC teki kopyasna da aktarlr. Bu men seenei sadece DDE(Dynamic Data Exchange- Dinamik Veri Deiimi) zelliine sahip Windows uygulamalar iin kullanmak mmkndr. RNEK: Bir Excel Grafiini Visual Basic Formuna Aktarmak Aadaki admlar izleyiniz:

VISUAL BASIC LE YAZILIM GELTRME ekil 1.12 - Excel sheet ine yklenmi seim sonular ve ilikili daire grafii 1)Excel ortamnda ekil 1.12 de grlen datay girmi ve grafii oluturmu olduunuzu var sayalm. Excel grafiini seerek, Excel in Edit mensnden Copy i seerek grafii Clipboard a kopyalaynz. 2)Visual Basic i aarak, mouse yardm ile form zerine bir resim (Picture) nesnesi yerletiriniz. (ekil 1.13) ekil 1.13 Form zerine resim nesnesi yerletirme

VISUAL BASIC LE YAZILIM GELTRME 3)Visual Basic in Edit mensnden Paste/Link seiniz. Excel deki grafik, Visual Basic formu zerindeki reisim nesnesine yerleecektir. (ekil 1.14) ekil 1.14 Form zerine yerletirilen Excel grafii imdi, Excel sheet ine dnerek partilerin oy saylarn deitirdiinizde, Visual Basic formundaki daire grafiinin yeni oy saylarna gre otomatik olarak yeniden dzenlendiini greceksiniz. Delete Mouse yardm ile seilmi metin ya da nesneleri projeden silmek amac ile kullanlr. Delete Table From Database Veri tabanndan(veri diyagramnda seilen) bir tabloyu siler. Diyagramda yaplan deiiklikler kaydedinceye kadar hafzada kalr. Veritaban diyagram kaydedilmeden kapatlrsa tablo veritabannda kalr ve silme ilemi fiziksel olarak uygulanmaz. Bu men komutu sadece veritaban diyagramnda kullanlr. Veri taban diyagram veri tabannn grafiksel emasn ierir ve veri taban zerinde tablo oluturmak, dizin

VISUAL BASIC LE YAZILIM GELTRME belirlemek , tabloya alan eklemek, tablolar ilikilendirmek vb. veri taban ilemlerinin grsel bir ortamda yaplmasna yardmc olur. Select All O esnada aktif penceredeki btn kodu veya form zerindeki btn kontroller semek amac ile kullanlr. Select All Columns Diyagramdaki veri kayna penceresinde bulunan btn stunlar semek iin kullanlr. Bu sayede bir eylem ayn anda btn stunlara uygulanm olur. Table Tablo zerinde aadaki ilemlerin yaplmasn salayan bir alt men aar. Set Pr imary Key Seilen bir stunu iin birincil anahtar alr. Birincil anahtar (primary key) ieren stunlarn null karakteri iermesine msaade edilmez. Inser t Column Tabloya yeni bir alan eklemek iin kullanlr. Mevcut stunlarn dnda tabloya hesaplamal anahtarlar ekleyerek bir veya daha fazla tablo alannn ierdii verilerden yeni tablo alanlar oluturulabilir. Delete Column Tablodan bir stnun silmek iin kullanlr. Bu silmeyle birlikte stun iindeki veriler, ilikiler veya kstlarda iptal edilir. Deiiklikler, diyagram kaydedildikten sonra kalc olur. Find Bu men seenei yadm ile, bir Visual BASIC kodu iersinde bir metni aramak mmkn olmaktadr. Men seenei arlrsa aadaki pencere gelecektir.

VISUAL BASIC LE YAZILIM GELTRME Find What kutusu iine aranacak olan metin (ya da szck) yazlr. Sear ch balkl butonlardan Cur r ent Procedur e seilirse arama sadece aktif prosedr iinde yaplr; Cur r ent Module seilirse, arama aktif modl iinde yaplr. Cur r ent Project seilirse, arama aktif projenin tm metinleri iinde, Selected Text seilmise de, arama sadece mouse ile iaretlenmi metin iinde yaplr. Dir ection kutusunda All seilirse arama metin iinde her iki yne doru (ileri ve geri), Down seilirse de arama sadece ileriye doru yaplr. Find Whole Word Only iaretlenirse, arama kutusu iindeki metnin sadece iinde arama yaplan metnin iindeki bir para ile tam uyumas halinde, arama baarl saylr. Use Pattern Matching seenei kullanlrsa, bu durumda arama kutusu iindeki szc ieren metin paralar varsa, arama baarl olacaktr. (rnein Aranan Tin ise, Metin szc iinde tin bulunduu iin Use Pattern Matching bu aramay baarl kabul eder, oysa Find Whole Word Only baarsz kabul edecektir.) Match Case iaretlenirse, arama esnasnda byk-kk harf ayrm yaplacaktr. Find Next butonu ile arama ilemi geekletirilir. Replace seenei ise, metin iinde bulunacak szc, baka bir szckle deitirme imkan salayacaktr. Find Next Arama ilemini, bir nceki aramada belirtilen ifade iin kl kalemin kald yerden itibaren yeniden balatr. Edeeri F3 tuudur.

VISUAL BASIC LE YAZILIM GELTRME Replace Bu men seenei yardm ile, bir metin iinde bir szc aratp, bulunduu takdirde baka bir szckle deitirebilirsiniz. Men arlrsa aadaki pencere gelir. Burada Find What penceresine aranacak szckler, Replace With penceresine ise, arama baarl sonuland takdirde bulunan szck yerine yerletirilecek olan szck yazlr. Replace butonu kullanlrsa, koulu salayan ilk szck deitirilecektir; Replace All kullanlrsa da, metin iindeki koulu salayan tm szckler deitirilecektir. Bu penceredeki dier ksmlar, Find penceresindekinin aynsdr ve orada aklanmtr. Indent Mouse yardm ile seilmi bir metni, Tab tuunun ger ekletirdii gibi, nceden belirlenmi stun says kadar saa kaydr r . Bu men seeneinin edeeri, Tab tuudur. Outdent Indent men seeneinin gerekletirdii iin tam tersini gerekletirir. Seilen metni, Tab tuunun ilerlettii stun miktar kadar sola kaydrr. Edeeri Shift+Tab tulardr.

VISUAL BASIC LE YAZILIM GELTRME Inser t File Aktif kod iine krsrn bulunduu noktadan itibaren baka bir dosyada bulunan kodu eklemek isterseniz bu men seeneini kullanmalsnz. Men seenei arlrsa aadaki pencere gelir. List Properties/Methods Kod penceresine yazlan her uygun ifadenin ardndan bu ifadeden sonra yazlabilecek mmkn dier ifadeleri ieren bir yardm kutucuu grntler. Bu ilemin kod yazm srasnda kendiliinden gerekletirilmesi iin Tools\Options men seenei ile alan Options penceresinde Auto List Member s seeneinin iaretlemi olmas gerekir.

VISUAL BASIC LE YAZILIM GELTRME List Constants Kod penceresinde, yazlan ifadenin alabilecei sabit deerleri ieren yardmc bir pencere grntler. Quick Info Kod penceresinde seilen fonksiyonlarn, metodlarn, prosedrlerin ve deikenlerin yazlmn gsteren yardmc bir pencere grntler. Par ameter Info Kod penceresinde yazlan fonksiyon veya ifadelerin ierdikleri parametreleri gsteren yardmc bir pencere grntler. Compler e Word Visual Basic, yazmakta olduunuz ifadeden kelimeyi bulmaya alr. ayet birden fazla alternatif sz konusu ise, bir tanesini semeniz iin muhtemel, ilk ifadenin seili olduu btn ifadeleri ieren kk bir pencere aar. Bookmarks Program kodunun ok sk kullanld satrlarna kolay bir ekilde ulamak iin kullanlr.

VISUAL BASIC LE YAZILIM GELTRME Toggle Bookmark : Ulalmak istenen satr.( krsrn zerinde olduu) bu tr bir ama iin iaretlenir veya iaretler iptal edilir. Next Bookmark: Bir sonraki yer tutama ile iaretlenmi kod satrna ulalr. Pr evious Bookmark: Bir nceki yer tutama ile iaretlenmi kod satrna ulalr. Clear All Bookmarks: O esnada aktif kod penceresindeki btn yer tutamaklarn iptal eder. Bu men alternatifinin alt menleri ekil 1.15 te grlmektedir: ekil 1.15-View mens Aada,bu mennn alt menleri aklanmaktadr. Code O esnada seilmi olan form ya da modln Code penceresini (programn yazld pencere) grntlemek amac ile kullanlr. Seilirse, aadaki gibi bir Code penceresi gelecektir: VIEW MENS

VISUAL BASIC LE YAZILIM GELTRME F7 tuuna baslmas da ayn etkiyi salayacaktr. Object Aktif kod ile ilikili olan nesneyi( form gibi) grntlemek iin kullanlr. Edeeri Shift+F7 tulardr. Definition Krsrn(cursor-kl izgi) zerinde bulunduu, aktif bir prosedre ait kod penceresini grntlemek iin kullanlr. Last Position Kod penceresinde en son bulunduunuz noktaya yeniden srama yapmak istediinizde kullanlabilecek bir komuttur. Object Browser Object Browser men alternatifi ile, Object Browser (Nesne Gzatcs) penceresi ekrana gelir.

VISUAL BASIC LE YAZILIM GELTRME Object Browser penceresinde projeniz hakknda ve Visual Basic hakknda baz yararl bilgileri bulabilirsiniz. Immediate Window Bu men alternatifi ile Immediate Window (Hata ayklama penceresi) ekrana gelecektir. Bu pencerede, aktif kod zerinde hata dzeltme ilemleri gerekletirilecektir: Hatal bir kodun, dzeltilmi ekli Immediate penceresine girilir ve enter a baslrsa, bu dzeltilmi kod, or ijinal listeye aktarlarak altrlacaktr.

VISUAL BASIC LE YAZILIM GELTRME Locals Window O esnada aktif prosedrdeki btn deikenleri ve deerlerini gsterir. Run time dan(programn normal almasn srdrmesi) br eake moda(programn normal akn kesip programcnn program akna mdahalesine izin vermesi) geilerde veya ynn (stack) ierii gzlendiinde Locals window ak ise otomatik olarak deikenlerin yeni deerlerini listeler. Bu men seenei seilirse aadaki pencere gelir: Expr ession deiken isimlerinin, Value bu deikenlerin ierdikleri deerlerin ve Type ise bu deikenlerin veri tiplerini listelendii stun balklardr. Bu ekranda deikenlere yeni deerler atayabilirsiniz. Watch Window Br eake modda, daha nceden gzlem amac ile tanmlanm deiken yada ifadenin o andaki deerini grntlemek iin kullanlr.

VISUAL BASIC LE YAZILIM GELTRME Call Stack Projeniz iinde, o esnada aktif olan prosedr arlarnn listesini gnderir. Project Explor er Project (proje) balkl pencereyi ekrana getirir:

VISUAL BASIC LE YAZILIM GELTRME Bu pencerede, o esnada aktif olan projeyi oluturan dosyalarn bir listesini grmek mmkn olmaktadr. Proper ties Window Proper ties(zellikler ) balkl pencereyi ekrana getirir. Bu pencerede o esnada aktif olan nesne iin geerli olan zellikler in bir listesini ve bu zelliklere o esnada atanm olan deer ler i incelemek mmkndr.

VISUAL BASIC LE YAZILIM GELTRME Form Layout Window Daha nce de sylendii gibi Layout penceresinde formlarn ekrandaki pozisyonlar mouse yardm ile ayarlanabilir. ayet Tools/Options diyalog mensndeki Avanced seeneinde SDI Development Environment ( Tek sayda dokman ieren arayz) alternatifi seilmise formlarn ykleme anndaki ekran pozisyonlar, tasarm ortamndaki ekran pozisyonlar olacaktr. Proper ty Pages Tasarm ortamnda kullanc tarafndan oluturulmu bir kontroln zelliklerinde deiiklik yapmak amac ile zellik sayfalarn listeler (property pages) . Edeeri Shift+F4 tulardr. Table Diyagram penceresindeki pencereleri grnr klmak veya bu durumu iptal etmek iin kullanlr. Query ( Sorgu), View (Grn) ve Veritaban tasarm pencerelerinde kullanlr.

VISUAL BASIC LE YAZILIM GELTRME Zoom Diyagram penceresini belirtilen oranlarda grntlemek iin kullanlr. Show Panels Query(Sorgu) ve View (Gr) tasarm pencerelerindeki ksmlar grntlemek ve bu ksmlarn grnmesini iptal etmek iin kullanlr. Bu ksmlar aadaki pencerede grlebilir. Toolbox Ara kutusunu grnr hale getirir. Ara kutusu ekranda yokken bu komutun anlam vardr. Ara kutusu, form zerine yerletirilecek programlanabilecek kontrol nesnelerini iermektedir:

VISUAL BASIC LE YAZILIM GELTRME ekil 1.16 Toolbox ve Toolbar Color Palette Seilmi Visual Basic nesnelerinin renklerini deitirmek zere, renk paletini ekrana getirir: Data View Window Data View penceresini grntler. Aadaki ekranda Data View penceresini ve bu pencere Query ve View leri grebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Toolbar Bu men alternatifi ile, Visual Basic in kulland ara ubuu gruplarndan biri ekranda grntlenebilir veya ekrandan silinebilir. (ekil 1.16 ) Veya Customize seenei seilerek kendi ara ubuu gruplarnz oluturabilir ve bunlar ayn ekilde bu men seenei ile grnebilir yapabilirsiniz veya silebilirsiniz. Customize iin bu men alternatifi seilirse aadaki diyalog penceresi gelir.

VISUAL BASIC LE YAZILIM GELTRME Aadaki ekilde grlen alt menlere sahiptir: ekil 1.17 - Project Mens PROJECT MENS

VISUAL BASIC LE YAZILIM GELTRME Add Form Aktif projenin iine yeni veya mevcut bir form katmak iin kullanlr. Bylece uygulamanz iinde birden ok pencere oluturabilirsiniz. lk deer olarak Add Form penceresi, New butonu seilmi olarak gelir. Eklemek istediiniz form iin aadaki Add Form penceresi ile gelen form taslaklarndan zel amalar iin tasarlanm hazr bir formu otomatik olarak uygulamanza katabilirsiniz. Existing butonu seilecek olursa, nceden oluturulmu bir form seilerek uygulamaya dahil edilebilir. VB Data Form Winzard, otomatik olarak lokal veya uzak veri kaynaklarna bal nesneler ieren formlar retmek iin kullanlr. Bu winzard (sihirbaz) ile herhangi bir veri tabanndaki tablo veya tablolardan istediiniz alanlar seerek herhangi bir kod yazmakszn kayt etme, gncelleme, silme, vb. gibi en temel veri taban fonksiyonlarn ieren formlar oluturulabilir. Bu pencerede About Dialog formu seilecek olursa aadaki gibi bir About MyApp (Uygulamam Hakknda) balkl bir form elde edilebilir.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.18 Project/Add Form mens ile frmAbout un eklenmesi Add MDI Form Bu men alternatifi ile bir Multiple Document Inter face (ok Sayda Dokman eren Arayz) oluturulabilir veya mevcut bir MDI formu uygulamaya ekleyebilirsiniz. Bu proje sadece bir MDI form ierebildiinden, ayet uygulamanz MDI form ieriyor ise bu men komutu kullanlamaz. Bu yap iinde, bir pencere iinden ona bal baka pencerelere dallanma yaplabilir. ekil 1.19 da bir MDI Formu grlmektedir. Bu konu da kitabn ilerdeki blmlerinde ayrntl olarak verilmitir.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.19 MDI Formu Add Module Visual basic in bir form ya da nesneye bal olmayan ve uygulamann tm bileenleri tarafndan kullanlabilen kodlarna modl ad verilmektedir. Bu men seenei bu tr modl oluturmak iin kullanlmaktadr. Bu men seenei arlrsa, ekil 1.20 deki Add Module penceresi gelecektir. Bu pencerede Module ikon bulunur. Module ikonu projeye bir modl eklemek iin kullanlr.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.20 - Add Module penceresi ekil 1.21 Modl oluturma penceresi Bu pencere iine modl oluturulacak olan bilgisayar program(kodu) girilmelidir.

VISUAL BASIC LE YAZILIM GELTRME Add Class Module Bu men alternatifi ile Snf Modl (Class Module) denilen zel tipte bir modl oluturmak mmkn olmaktadr. Snf modlnde, projenin tm bileenleri tarafndan kullanlabilecek bir snf ile ilikili tanmlar bulunabilir. Bu men seilecek olunursa aadaki Add Class Module diyalog penceresi gelir. Bu diyalog penceresinden Class Module ikonuna tklayarak projenize bir snf modl ekleyebilirsiniz. Veya Class Builder ikonunu seerek, bu ii daha pratik bir ekilde gerekletirebileceiniz Class Builder yardmc tasarm ekranndan yararlanabilirsiniz. Class Builder Visual Basic in standart tasarm ortamnda olmayan fakat Add-In Manager ile tasarm ortamna sonradan dahil edilebilecek hazr bir ADDIN bamsz yazlm modldr. ADDIN ikonu ile de bir ADDIN projesi iin yardmc olabilecek baz kod satrlar ieren bir snf modl projenize dahil edebilirsiniz. Aadaki ekilde bir Class Module penceresi grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Add User Control Sadece kendi projenizde kullanabileceiniz. ActiveX kontrolleri oluturmak iin kullanlr. Oluturduunuz ActiveX kontrollerini uygulamanzdan bamsz olarak baka Visual Basic projelerinde veya baka tasarm ortamlarnda da kullanmak iin projenizi ActiveX Control olarak balatmanz gerekir. Bu men komutu kullanlrsa aadaki gibi bir pencere alr.

VISUAL BASIC LE YAZILIM GELTRME Add Proper ty Page Oluturduunuz Acr tiveX kontrolleri iin zellik sayfas olarak isimlendireceimiz, Proper ty Page ler oluturmak iin kullanlr. zellik sayfalar bir kontroln ok sk kullanlan zelliklerini pratik bir ekilde dzenlemek iin kullanlr. lgili kontroln zerinde iken sa mouse tuuna basldnda alan men penceresinden Properties seenei seilirse zellik sayfalar almaya balar. Add User Document Bu men komutu Standart EXE modl dndaki proje modlleri ile beraber kullanlrlar. Projeye yeni bir ActiveX dkman eklemek iin kullanlr. ActiveX dkmanlar Internet Explorer program ile beraber alrlar. Add DHTML Page Dinamik HTML uygulamalarmza yeni dinamik HTML sayfalar eklemek iin kullanlr. Standart EXE uygulamalarna dinamik sayfa

VISUAL BASIC LE YAZILIM GELTRME eklenemez. Aadaki ekranda dinamik HTML uygulamasna eklenen DHTML sayfas tasarm penceresini grebilirsiniz. Add Data Repor t Veritaban uygulamalarna Data Repor t eklemek iin kullanlr. Data report, raporlarn hazrland ve gsterildii tasarm ekranlardr. Aadaki ekranda uygulamaya eklenen bo bir rapor tasarm penceresi grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Add WebClass IIS(Internet Information Server ) uygulamalarna WebClass nesnesi eklemek iin kullanlr. WebClass nesnesi taraycnn gnderilen web elemanlarn ierir. WebClass nesnesi web server zerinde bulunur ve taraycya gnderilecek HTML formatndaki sayfalarn hazrlanmas iin Visual Basic kodlarn kullanr. Add Microsoft UserConnection Uygulamaya UserConnection nesnesi eklemek iin kullanlr. Data Environment nesnesine benzer fakat UserConnection nesneleri RDO (Remote Database Object) iin kullanlr. Mor e ActiveX Designers Projenize ekleyebileceiniz ActiveX tasarmlarn, ilerinden birisini semeniz iin listeler. Bu men komutunu kullanabilmeniz iin

VISUAL BASIC LE YAZILIM GELTRME Project\Components ile alan Components penceresinden Designers butonu ile listelenen tasarmlar seerek belirlemelisiniz. lk deer olarak Data Environment nesnesi seili olarak gelir. Add File Daha nceden hazrlanm genel maksatl modller , formlar , snf modller i ve kaynak dosyalar gibi bileenleri, o esnada aktif olan projenizin iine katma imkan salar. Bu men seenei arlrsa aadaki diyalog penceresi gelir. Bu pencerenin bileenleri ve kullanmlar tamamen Save File, Save Project pencerelerindekine benzer ekildedir. Remove <Dosya ismi> Aktif projenizin iindeki bir dosyay bu proje iinden karma imkan salar. karlan dosya diskten silinmez. Aadaki ekilde Form1 ve Form2 adl iki tane form dosyas grlmektedir. Ikl izgi(krsr) Form2 nin zerinde iken Project/Remove Form2 seenei kullanlrsa Form2 projeden karlacaktr.

VISUAL BASIC LE YAZILIM GELTRME Refer ences Projeniz iersine baka uygulama programlar ya da nesne ktphanelerinden nesneler katma imkan salar. arld taktirde aadaki pencere gelir. Bu pencere iinden katlmak istenen nesne grubu mouse yardm ile seilir. Components Visual Basic te kullanabileceiniz kontrol nesneler inin say ve eidini arttrmak ve DLL uzantl tasarmlar projeye eklemek amac ile kullanlr.

VISUAL BASIC LE YAZILIM GELTRME Kullanc bu pencerede, listedeki kontrol nesne gruplarn mouse yardm ile iaretleyerek projesi iine katabilir. Proje iinde kullanlmayan btn kontroller uygulamadan karmak iin aada gelen diyalog penceresinde SHIFT tuuna basldktan sonra OK butonunu tklaynz. Project Proper ties Visual Basic projesi ile ilgili dzenlemeler yapmak iin kullanlr. Diyalog penceresinin balk ubuu, Project Explor er penceresinde seili aktif projenin ismini gsterir. Aadaki diyalog penceresinde de grld gibi General, Make, Compile, Component ve Debugging seeneklerinden oluur.

VISUAL BASIC LE YAZILIM GELTRME Project Type kutusu proje trn gsterir. Proje trn herhangi bir proje trne dntrebilirsiniz. Bir projenin trn deitirdiinizde ilgili deiiklikler Visual Basic tarafndan otomatik olarak yaplacaktr. Fakat projeniz, yeni proje tr iin uygun olmayan zellikler ieriyorsa Visual Basic bu konuda sizi uyaran mesaj grntler. Star tup Object kutusunda, Visual Basic projesi bellee yklendiinde, ilk olarak aktif formun veya Sub/Main in hangisi olduu belirtilir. Project Name proje ismini gsterir. Windows Registry( pencere kaydedici) ve Object Browser (Nesne gz atcs) iinde sizin bileenlerinizi (component) tanmlar. Bu nedenle uygulama iinde ayn isimde baka bir proje ismi olamaz. Proje ismi bileeniniz iin kullanlan ktphane tipinin ismidir. Ktphane tipi veya TypeLib bileeniniz iin salanan arayzlerin ve nesnelerin tanmlarn ierir. Help File Name kutucuu projeniz ile kullanmak istediiniz yardm dosyasn belirmek iin kullanlr. Project Help Context ID, Nesne Gzatcsnda (Object Browser) uygulamann nesne ktphanesi(Object Library, kullanlabilir nesneler ile ilgili bilgiler ieren .obl uzantl bir dosyadr. Nesne ile ilgili bilgiler edinmek iin Nesne ktphanesinin ieriini Nesne Gzatcsn kullanarak

VISUAL BASIC LE YAZILIM GELTRME irdeleyebilirsiniz. Seili iken kullanc ? balkl butona tkladnda zel bir yadm kutusu iin kullanlan ierik numaralarn listeler. Project Description kutusunda proje ile ilgili aklayc bilgiler yazlr. Bu kutucua yazlan aklamalar Nesne Gzatcsnn aklama panelinde grntlenir. ActiveX Control projesi iin yaptnz. Aklamalar Components diyalog kutusunda ve ActiveX EXE veya ActiveX DLL projeleri iin yaptnz aklamalar da Refer ences diyalog kutusunda grntlenir. Upgrade ActiveX Controls ActiveX kontrollerin gncellenmesini salar. ActiveX kontrolleri reten bir proje lisans numaras gerektirir. Oluturduunuz *.vbl uzantl lisans dosyalarnn, bileenlerin kullanlaca makinaya kaydedilmesi gerekir. Setup sihirbaz *.vbl uzantl lisans dosyalarnn kaydn yapar. Project Proper ties penceresinde Make butonu seilirse diyalog kutusu aadaki gibi deiir. Bu pencerede projede oluturulacak exe dosyas ile ilgili ayarlamalar yaplr. Ver sion Number etiketli grupta proje iin versiyon numaras oluturur. Her bir versiyon numaras 0 ile 9999 arasnda olabilir. Auto Incr ement

VISUAL BASIC LE YAZILIM GELTRME seilirse bu proje iin Make Project komutu her altrldnda revizyon( projenin yeniden gzden geirilmesi) says otomatik olarak bir arttrlr. Application kurusunda ise uygulamann bal ve ikonu belirtilir. Version Information kutusunda da projenizin aktif srm ile ilgili aklayc bilgiler ifade edilir. Uygulama altrlrken , ona komut satr argmanlar gndermek iin Command Line Arguments kullanlr. Argman gnderebilmek iin uygulamanz masa stndeki Star t\Run mens ile altrmanz gerekir. Conditional Compilation Arguments ise uygulamaya artl derleme iin sabit bildirimi gndermek amac ile kullanlr. Format mensnn alt menleri aadaki gibidir. ekil 1.22 - Format Mens FORMAT MENS

VISUAL BASIC LE YAZILIM GELTRME Align Form zerindeki seilmi nesnelerin pozisyonlar, en son seilen nesneyi referans alacak ekilde aadaki alternatifler baz alnarak hizalandrlr. Hizalama ilemi iin referans alnacak nesne, seilmi nesnelerin zerine mouse yardm ile tklanarak deitirilebilir. Bu nesne kat renkli(solid color) ereve iine alnarak dier seilmi nesnelerden ayrt edilir. Tm nesneleri seme ilemi birka ekilde yaplabilir; ilk olarak Ctrl tuu basl halde nesneleri tek tek tklayarak, ikinci yol ise bu ilemi Shift tuuna yaparak tekrarlamak, nc yol ise mouse imlecini formun bo bir yerinde tklatp mouse sol tuuna basl olarak mouse imlecini nesnelerin zerine ekmektir. Lefts: Seilen nesnelerin yatay pozisyonlar referans alnan nesnenin en sol ke noktasna gre ayarlanr. Yani, btn seilmi nesnelerin sol ke noktas koordinatlar en son seilmi nesne ile ayn yaplr. Center s: Seilen nesnelerin sol ve sa ke noktalar, orta noktalar en son seilmi nesne ile akacak ekilde ayarlama yaplr. Rights: Lefts men seeneinin tam tersi bir hiza ayarlamas yaplr. Burada, seilen nesnelerin sa ke noktalar en son seilmi nesnenin sa ke noktas ile ayn yaplr. Tops: Seilen nesnelerin dey pozisyonlar referans alnan nesnenin en st ke noktasna gre ayarlanr. Yani, Btn seilmi nesnelerin st ke noktas koordinatlar en son seilmi nesne ile ayn yaplr. Middles: Seilen nesnelerin st ve alt ke noktalar, orta noktalar en son seilmi nesne ile akacak ekilde ayarlama yaplr. Bottoms: Tops men seeneinin tam tersi bir hiza ayarlamas yaplr. Bu defa seilen nesnelerin alt ke noktalar seilmi nesnenin alt ke noktasyla ayn yaplr. to Grid: Seilen nesnelerin st sol ke noktas koordinatlar en yak gridin st sol ke noktas ile akacak ekilde ayarlama yaplr. Nesnelerin boyutlarnda bir deiiklik yaplmaz. Make Same Size Bu men alternatifi ile seilen nesnelerin boyutlarnda ayarlama yaplr. Bu ayarlama ii iin referans alnacak nesne yukarda anlatlan men seeneklerinde olduu gibi belirlenir. Nesnelerin sol st ke noktas koordinatlar deimez. Nesnelerin boyutlarndaki ayarlamalar aadaki alternatifler baz alnarak yaplr.

VISUAL BASIC LE YAZILIM GELTRME Width : Seilmi nesnelerin genilikleri referans alnan nesne ile ayn yaplr. Height: Seilmi nesnelerin uzunluklar referans alnan nesne ile ayn yaplr. Both: Seilen nesnelerin boyutlar referans alnan nesne ile ayn yaplr. Size to Grid Bir Form zerinde seilen nesnelerin boyutlarn, otomatik olarak formun en yakn grid noktalarna yerletirir. (Yani, seilen kontroln ke ve kenar izgilerini, form zerindeki noktalarla alr hale getirir.) Bu nesneleri otomatik olarak grid noktalarna yerlemesi iin, Tools/Options mensnde, Gener al seeneindeki Align Controls to Gr id seenei iaretlenmi olmaldr. Horizontal Spacing Seilen nesnelerin kendi aralarndaki yatay boluklar aadaki alternatiflere gre ayarlanr. Aadaki ekilde nesnelerin kendi aralarndaki yatay boluklar gsterilmektedir.

VISUAL BASIC LE YAZILIM GELTRME Make Equal: Seilen nesnelerin kendi aralarndaki yatay boluklar eit hale getirilir. Bu ilem srasnda en sondaki nesnenin pozisyonu deimez. Incr ease : Seilen nesnelerin kendi aralarndaki yatay boluu, kabul edilen bir grid hcresinin eni kadar arttrr. Bir Grid hcresinin eni ve boyu Tools/Options men diyaloundaki General seeneinden ayarlanabilir. Decr ease : Bu sefer, seilen nesnelerin kendi aralarndaki yatay boluu, kabul edilen bir grid hcresinin eni kadar azaltr. Remove : Seilen hcrelerin kendi aralarndaki yatay boluklar kaldrr. Ver tical Spacing Yukardaki men seeneine edeer bir fonksiyonu vardr. Burada sz konusu boluk ayarlamalar dey noktalarda yaplr.

VISUAL BASIC LE YAZILIM GELTRME Center in Form Form zerinde seilmi nesne grubu, bu grubun iindeki en d nesnelere gre form zerinde ortalanr. Horizontaly: Seilmi nesne grubu iinde en sol dtaki nesne ile en sa dtaki nesnenin, sras ile sol ve sa ke noktalarna gre tm seilmi nesneleri yatay olarak ortalar. Ver ticaly: Bu defa, seilmi nesne grubu iinden en st dtaki nesne ile en alt dtaki nesnenin, sras ile st ve alt ke noktalarna gre bir ayarlama yaplr. Order Order men seenei, Br ing to Front ve Send to Back men balkl iki alternatif sunmaktadr. Br ing to Front Seilmi olan nesneyi, formda mevcut dier nesnelerin nne getirir. Send to Back Seilmi olan nesneyi, dier nesnelerin arkasna yerletirir. Lock Controls Form zerindeki kontrolleri, bulunduklar pozisyonda kilitler; yle ki, kontroller bu komuttan sonra form zerinde hareket ettirilemezler. Bu durumun iptali iinse, tekrar Lock Controls mens seilerek sol tarafndaki kilit resmini eski haline getirmek gerekir

VISUAL BASIC LE YAZILIM GELTRME Aadaki ekilde bu men alternatifinin alt menleri grnmektedir: ekil 1.23 Debug Mens Step Into Tasarm esnasnda, Visual Basic kodundaki o esnada kr srn iar et etmi olduu komutu altrr . Step Over Step Into komutuna benzer. En nemli fark, icra edilen aktif komut, bir prosedr arma komutu ise, o prosedr tek bir komut gibi btn ile icra edildikten sonra, esas koddaki bir sonraki deime geilir. Step Out O esnada icra edilen fonksiyonun iinde krsrn iaretlenmi olduu komuttan itibaren btn komutlar altrlr ve fonksiyonun arld esas kodda bir sonraki deime geilir. DEBUG MENS

VISUAL BASIC LE YAZILIM GELTRME Run To Cur sor Gene sadece tasarm annda kullanlabilecek bir komuttur. Programn icras durmu iken (Break mode) icray yeniden balatarak bir sonraki durma noktasnn hangi komut olacan belirler. Durma noktasn belirleyen ey krsrn komutudur. Add Watch Bir deiken ya da ifadenin programn icras esnasnda hangi deerleri aldn izlemek zere bir gzlemci mekanizma kurar. arlrsa aadaki diyalog penceresi gelir: Burada Expr ession kutusuna gzleme tabi tutulacak ifade(deiken)yerletirilir. Bu ifadenin hangi form, modl ve proje ile ilikili olduu da ekilde grld gibi ilgili kutularda belirtilir. Watch Type (Gzlem tipi) ise farkl ekilde olur:

VISUAL BASIC LE YAZILIM GELTRME 1)Watch Expr ession seenei iaretlenirse, sadece ifade gzlenecektir. (deeri izleniyor) 2)Br eak When Value is True seenei(Deer doru olduu zaman dur) iaretlenirse, gzlenen ifadenin deeri true(doru) olunca program geici olarak duracaktr. (Break moduna geilecektir) 3) Br eak When Value is Changes (Deer deiince dur) seenei iaretlenirse, gzlenen ifadenin ierii deitii anda br eak moduna geilecektir. Edit Watch Gzlemci tanm ile ilikili deiiklik ya da dzeltme yapmak gerektiinde kullanlr. arlrsa aadaki diyalog penceresi gelir: Bu pencerenin biimi ve kullanm aynen Add Watch ta olduu gibidir. Quick Watch Breake modda krsrn zerinde durduu deikenin, zelliin veya baka bir ifadenin deerini gsteren bir diyalog penceresi grntler. Bu men seenei kullanlrsa aadaki gibi bir diyalog penceresi gelir.

VISUAL BASIC LE YAZILIM GELTRME Toggle Br eakpoint Tasarm esnasnda kullanlabilen bir komuttur. Kod zerindeki durma noktalarn belirlemek iin kullanlr. Clear All Breakpoints Toggle breakpoint komutu ile yerletirilmi olan btn durma noktalarn iptal eder. Set Next Statement Sadece Br eak modunda kullanlabilir. Br eak moduna u durumlarda eriilir: 1) Programda nceden yerletirilmi(Toggle Breakpoint) bir durma noktas ile karlalmas 2)cra esnasnda Ctr l+Br eak tularna baslmas veya Run mensnden Break in seilmesi. 3) Bir Stop deyiminin icras

VISUAL BASIC LE YAZILIM GELTRME Bu komut Break modundan icraya gelince, icra edilecek ilk deyimi belirler. Show Next Statement Gene Sadece break modda kullanlabilecek bir komuttur. cra edilecek bir sonraki deyimi gsterir. Aadaki ekilde Run mensnn seenekleri grlmektedir. Star t Gelitirdiiniz projeyi icra etmek amac ile kullanlr. Edeeri F5 tuudur. Sadece tasarm (design) zamannda mevcuttur. cra esnasnda bunun yerine Br eak komutu geer. Star t With Full Compile Start komutu ile Visual Basic sadece aktif kodu ve ilikili ksmlar derler ve altrr. Belli bir anda projenizin tmnn derlenerek altrlmasn istiyorsanz bu altenatifi semelisiniz. Br eak Normal akn srdren program durdurur ve programn almas breake modda srdrlr. Bu men altenatifi sadece Run Time da kullanlabilir. Breake modda programn kaynak kodunda yaplan baz deiikliklerin icra edilebilmesi iin programn yeniden balatlmas gerekir. F5 tuu ile veya Continue eklinde deien Start men altenatifi ile program tekrar normal akna geri dndrlebilir. End cra edilen program durdurarak Visual Basic in kulland tm sistem kaynaklarn iade eder. RUN MENS

VISUAL BASIC LE YAZILIM GELTRME Restar t cras durdurulmu olan programn yeniden icra edilmesini salar. Query (Sorgu) veya View (Gr) tasarm penceresi ak iken bu men seenekleri aktif olur. Query veya View tasarm penceresi adndan da anlalaca zere sorgu veya gr oluturmak veya mevcut sorgu ve grler zerinde gncelleme yapmak iin kullanlan tasarm pencereleridir. Bu pencerelere Data View ekranndan ulaabilirsiniz. Data View ekranna ise ToolBar ara ubuunda bulunan Data View Window ksa yolundan ulaabilirsiniz. Aada bir veritaban uygulamasndaki Data View penceresi grlmektedir. Bu penceredeki herhangi bir tablo veya gr zerinde ift tklarsnz sorgu tasarm penceresi alacaktr. Yukardaki rnekte kitaplar isimli tablonun stnde ift tklanrsa aadaki gibi bir pencere ile karlalr. Bu btn ksmlar grnr olmayan bir sorgu penceresidir. Daha nce QUERY MENS

VISUAL BASIC LE YAZILIM GELTRME View men komutlarn aklarken sorgu penceresinin ksmlar anlatlmtr. View penceresinde Show Panel alt mensnden Diagram, Grid, ve SQL de seilecek olursa sorgu tasarm penceresi aadaki konumunu alr.

VISUAL BASIC LE YAZILIM GELTRME Query mens ve seenekleri aadaki gibidir. Run Sorgu tasarm penceresinin SQL ksmnda yazlan SQL ifadesini altrr ve sorgunun sonucu Results ksmnda listeler. Clear Results Sorgu tasarm penceresinin Results ksmn boaltmak iin kullanlr. Bu men komutu altrlacak olursa sorgu tasarm penceresi aadaki grnm alr.

VISUAL BASIC LE YAZILIM GELTRME Ver ify SQL Syntax SQL ksmndaki SQL ifadesinin doruluunu bu ifadeyi altrmadan kontrol eder. Group By Tasarm ekrannn grid ksmna Group By stunu ilave eder. Bu ekilde grid kullanlarak kmeleme fonksiyonlar seilebilir. Kmeleme fonksiyonlar sadece gruplandrlm veriler zerine uygulanabilecei iin normal SQL gridinde bu stun bulunmaz. Bu men komutu seilecek olursa eklenen Group By stunu aadaki gibi olur.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki grid deitiinde SQL ifadesi deiir. Ayn ekilde SQL ifadesini deitirdiinizde grid da bu ifadeye uygun grnm alacaktr. rnein yukardaki SQL ifadesini aadaki ile deitirip Query/Run men komutunu seecek olursanz tasarm penceresinde aadaki grnm alacaksnz SELECT COUNT(*) AS gruped_by_konu,konu FROM kitaplar GROUP BY konu

VISUAL BASIC LE YAZILIM GELTRME Change Type Change Type men komutu SQL in trn deitirmek iin kullanlr. Select ile balayan SQL ifadeleri seme trnden SQL ifadeleridir ve raporlama amaldr. stenen kriterlere uygun kaytlar listelemek iin kullanlr. Bunun dnda kayt eklemek (Inser t Values) , silmek (Delete) , gncellemek( Update) veya mevcut SQL sonularn ekran yerine baka bir tabloya eklemek (Inser t) veya bu sonular ile yeni bir tablo oluturmak (Make Table) amac ile kullanlan SQL ifadeleri mevcuttur. te tasarlayacak olduumuz SQL ifadesinin trn belirlemek iin bu alt men kullanlr. Seilirse aadaki men seenekleri alr.

VISUAL BASIC LE YAZILIM GELTRME Add To Output Diyagram ksmnda mouse ile bir tablo alan seecek olursanz bu men komutu aktif olur ve seilen tablo alannn listeye dahil edilmesini salar. SQL trne gre bu men komutu Add To Inser t , Add To Update gibi deiecektir. Sor t Ascending , Sor t Descending Bu men komutu da yine diyagram ksmnda bir tablo alan seildiinde aktif olur ve hazrlanacak olan listenin seilen tablo alanna gre kkten bye (Ascending) veya bykten ke (Descending) gre sral olarak listelenmesini salar. Remove Filter Varsa SQL ifadesindeki szgeci kaldrmak iin kullanlr. SQL ifadesinde kt wher e ifadesine gre szlerek hazrlanr. SQL e szge eklemek iin grid ksmnda Criteria(lt) stunu kullanlabilecei gibi dorudan SQL ifadesinde where cmlecii de kullanlabilir. Aadaki ekranda szge ieren bir SQL ifadesi grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Select All Rows From <Table A> SQL ifadesinde birden fazla tablo kullanldnda bu tablolarn arasndaki iliki mouse ile seildiinde bu men komutu aktif olur. Bu men komutu ile ilikinin trn belirtir. Oluturulacak listeye ilikilendirilen tablo alanlarndaki verileri ayn olan satrlarn yannda seilen tablonun dier satrlarnn da eklenmesi iin kullanlr. Diagram mens, veritaban diagram penceresi ile allrken kullanlr. Veritaban diagram penceresi, veri tabanndaki tablolarn ve bu tablolara arasndaki ilikilerin grafiksel gsterimi iin kullanlan bir tasarm penceresidir. DIAGRAM MENS

VISUAL BASIC LE YAZILIM GELTRME Aadaki ekilde Tools mensnn alt menleri grlmektedir. Add Procedur e Kod penceresi iine bir prosedr yerletirmek amac ile kullanlr. Bu men seenei arlrsa ekil 1.24 daki pencere gelecektir. Bu pencere oluturulacak prosedrn ad Name penceresine girilir. Ayrca prosedrn bir Sub bir Function bir Property ya da Visual Basic 5.0 ile gelen yeni bir zellik olarak Event m olduu opsiyon butonlar ile iaretlenir. Son olarak ta prosedrn Pr ivate m yoksa Public mi olaca belirlenir. Prosedrler hakknda, kitabn ilerdeki blmlerinde detayl bilgi verilecektir. TOOLS MENS

VISUAL BASIC LE YAZILIM GELTRME ekil 1.24 Add Procedure Resmi Procedure Attibutes Belirtilen her bir zellik veya metod iin ayarlamalar yapabileceiniz veya mevcut attribute leri(nitelikleri) gzlemleyebileceiniz bir diyalog penceresi grntler. Menu Editor Gelitirdiiniz uygulama iinde Visual Basic ve Windows un menlerine benzer ekilde menler oluturmak istediinizde Men Editr size byk kolaylk salayacaktr. arlrsa aadaki pencere gelecektir:

VISUAL BASIC LE YAZILIM GELTRME Bu konu kitapta ayr bir blm olarak ilendii iin burada detaylara inilmeyecektir. Options Bu men seenei kullanlrsa Visual Basic ortamnda alrken mevcut olan eitli sistem parametrelerini deitirmek imkan salayan diyalog penceresi karnza gelecektir. Bu diyalog penceresinde Editor , Editor Format (editr ile iliki) , General(genel) , Docking ,(alt pencerelerle ilgili) , Environment (ortamla ilikili) ve Advanced (ileri seviyede) sistem parametrelerini deitirebileceiniz imkanlar mevcuttur. ekil 1.25 de Editor ile ilikili parametreler grlmektedir. Bu parametreler ile kod ve proje pencerelerinde ayarlamalar yaplr.

VISUAL BASIC LE YAZILIM GELTRME Code Settings kutusu iindeki seenekler, programcnn kod yazmasn daha kolay ve seri hale getirecek alternatifler sunar. Auto Syntax Check seenei seilirse Visual Basic kod penceresine her Visual basic ifadesini yazdnzda, bu ifade, Visual Basic yazl kurallarna uygunluk bakmndan otomatik olarak kontrol edilir. Requir e Var iable Declaration seenei seilirse, Visual Basic te zorunlu olmayan deikenlerinin tiplerinin belirtilmesi eylemi zorunlu hale getirilmi olur ve herhangi bir modln General Declar ations ksmna bu amala Option Explicit komutu eklenir.

VISUAL BASIC LE YAZILIM GELTRME Auto List Member s seenei seilecek olursa kod penceresine yazlan her uygun ifadenin ardndan bu ifadeden sonra yazlabilecek mmkn dier ifadeleri ieren bir kutu grntlenir. Yukardaki rnekte, Command1. fadesinden sonra yazlabilecek seenekleri ieren bir yadm kutucuu gzkmektedir. Quick Info le kullanlan fonksiyonlar ve bu fonksiyonlarn parametreleri ile ilgili bilgiler ieren yadm kutucuklarnn otomatik olarak grntlenmesini salayabilirsiniz. Auto Data Tips alternatifi ile de breake modda ekran gstergesini deikenler zerinde gezdirdiinizde ieriklerini otomatik olarak gzlemlemek mmkndr. Her yeni kod satrnda krsr iin varsaylan balang noktasnn bir nceki satr ile ayn yerden balamas iin Auto Indent seenei seilmi olmaldr. Aksi takdirde her ENTER tuuna bastnzda krsr bir sonraki satrn en bana gelecektir. Window Settings Balkl grup iindeki seenekler ile o esnada code penceresindeki aktif kod ile ilgili ayarlamalar yaplr. Drag-and-Drop Text Editing seenei ile aktif kodunuz iindeki deikenleri Windows ortamlarnn bir zellii olarak srkle ve brak (drag and drop) eylemi ile Immediate ve Watch pencerelerine tayabilirsiniz. Default to Full Module View ise btn modln ve sadece o anki aktif prosedrn code penceresinde grntlenmesi iin kullanlr. ayet bu alternatif seilmi ise ( ilk deer olarak defaultseilmi gelir.) Procedur e Separator ile prosedrler arasndaki izgilerin grnp grnmeyeceini belirtebilirsiniz. Editr ile ilgili bir dier options ekran ekil 1.26 da ki gibidir.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.26 Tools/ Options/ Editor Format penceresi Options/Editor Format penceresinde ise, kod penceresine yklenecek olan Visual Basic kodu ile ilikili olarak, kullanlacak yaz fontu(Font), yaznn bykl(Size) ,kod iinde eitli durumlar iin kullanlabilecek renkler (Code Color s) ve ayrca n plan ve zemin renkleri (Foreground, Background) belirtilebilir. Options mensnde Gener al seenei seilirse ekil .127 deki diyalog penceresi ekran grnr. Bu ekranda genel amal ayarlamalar yaplr. Form Gr id Settings kutusu iindeki seenekler, form zerindeki gridlerin grnm ile ilikilidir. Show Grid seenei iaretlenirse, bu durumda, form zerindeki noktalardan oluan gridler grntlenir. Bu seenek iaretlenmezse, form gridsiz olarak grntlenir. Ayrca Width ve Height seenekleri ile de, gridlerin genilik ve ykseklikleri ayarlanabilir. Align Controls To Grid seenei iaretlenirse, form zerine yerletirilen kontrol nesnelerinin ke noktalar gridle akr. Grid Units ise form iin kullanlan grid birimini gsterir. Show ToolTips seenei iaretlenirse, bir Visual Basic tool u zerine ekran gstergesi gtrlrse,

VISUAL BASIC LE YAZILIM GELTRME o tool un ne ie yarad konusunda ngilizce bir aklama ifadesi grntlenir; iaretlenmezse bu aklamalar grntlenmez. Er ror Tr apping (hata yakalamak) grubu iindeki alternatiflerle Visual Basic tasarm ortamnda hatalarn nasl yakalanaca belirtilir. Br eake on All Er r ros seenei seilecek olursa, uygulama alrken herhangi bir hata ile karlatnda kodun snf modlnde olup olmadna veya error handler n( hata tutucu) aktif olup olamadna bakmakszn breake moda geer. Br eake in Class Module seenei seilecek olunursa snf modlnde (class module) tanmlanamayan( unhandled) bir hata olutuunda uygulama normal akn hataya sebep olan program satrnda keserek breake moda geer. Br eak on Unhandled Er rors seenei ile de retilen hatalar, ayet hata tutucusu( error handler) aktif ise breake moda geilmeksizin yakalanr. Aksi takdirde retilen hatalar uygulamanzn breake moda gemesine sebep olur. Compile bal altndaki ayarlamalar projenizin nasl derlenecei ile ilgilidir. Compile on Demand seenei iaretlenirse, projeniz altrlmadan nce tmyle derlenmez. lgili ksmlarn derlenmesi gereksinim duyulduunda gerekletirilir. ayet Run/Star t With Full Compile men alternatifi kullanlrsa Visual Basic bu tanmlamay gz ard eder ve projenizi tmyle derledikten sonra uygulamanz altrr. Bu takdirde uygulamanzn almaya balamas projenizin byklne bal olarak gecikecektir. Background Compile ise projenizin derlenmesi eyleminin uygulamanzn almas srasnda bitirilmesi iin kullanlr. Derleme iin uygulamanzn o esnada aktif bir faaliyet yrtmedii zaman dilimi seilir. Bu seenek Compile on Demand alternatifi seilmi ise yrtlr.

VISUAL BASIC LE YAZILIM GELTRME ekil 1.27 Tools/Options/General penceresi Options mensnde Docking seenei ile listelene pencere isimleri seilirse bu pencere tasarm ortamnda MDI modda ana pencerenin erevesi ile birletirilirler. Bu pencereler birbirinden bamsz olmalarna karn tek bir pencerenin ksmlar gibi grnrler. stenen alt pencerenin bykl ve ekrandaki pozisyonu ekran gstergesi yardm ile ayarlanabilir. ekil 1.28 - Tools/Options/ Docking penceresi

VISUAL BASIC LE YAZILIM GELTRME ekil 1.29 da Environment (ortam) ili ilikili parametreler grlmektedir. Bu parametreler ile Visual Basic tasarm ortamna ait zellikler belirtilir. Visual Basic her altrldnda bu diyalog penceresinde tespit edilen zelliklere gre tasarm ortamn dzenler. ekil 1.29 - Tools/Options/ Environment penceresi When Visual Basic starts kutusu iindeki Prompt for project seenei seilecek olursa Visual Basic her altrldnda uygulamada hangi trde projenin kullanaca size sorulacaktr. Aksi takdirde Visual Basic standart EXE modl ile alr. When a program starts bal altnda, dosyalarn saklanmas ile ilikili eitli seenekler sunulmaktadr. Save Changes seenei ile uygulama altrldnda projede deiiklik yaplm ise bu deiiklikler kullancya sorulmakszn kaydedilir. Projeniz iinde yeni oluturulmu bir dosya mevcut ise dosya ismi ve yerini belirtebileceiniz Save As diyalog kutusu grntlenir. Prompt To Save Changes seenei ile sisteme icradan nce dosyann saklanmas iin gerekli uyary ver denilmektedir. Don t Save Changes seenei ile uygulama altrlmadan nce deiiklikler kaydedilemez ve Visual Basic uygulamay altrmak iin o esnada hafzada ykl

VISUAL BASIC LE YAZILIM GELTRME projenizi kullanr. Show Templates For grubu iindeki seenekler ile de projenize bu grup iindeki bileenlerden birini katmak istediinizde, bu bileenler iin daha nceden oluturulmu olan kalplar hazr bir ekilde projenize dahil edebileceiniz diyalog penceresi grntlenir. Templates Dir ectory etiketli saha ise template ( kalp) dosyalarn disk zerindeki yerlerini gsterir. Tools / Options diyalounun son seenei Advanced (ileri seviyede) penceresi ekil .130 daki gibidir. Bu penceredeki parametreler ile o esnada aktif Visual Basic projesi ile ilgili ileri seviyede ayarlamalar yaplr. ekil 1.30 - Tools/Options/Advanced penceresi Background Project Load alternatifi ile Visual Basic kodunu yklenmesi iine arka fonda devam edilir. Bu ilem kontroln tasarmcya gemesini hzlandrr. Notify when changing shar ed project items alternatifi seilirse, bir proje iinde kullanlan bileen (form veya modl gibi) zeride yaplan deiiklikler kaydedilmek istendiinde bu bileenin baka proje veya projelerde de kullanlp

VISUAL BASIC LE YAZILIM GELTRME kullanlmad kontrol edilir. ayet kullanlyorsa bu bileenin dier projelerdeki kopyalarnn gncellenmesi iin kullancdan onay alnr. SDI Development Environment seenei ile de Multiple Document Inter face modda alan(default olarak) Visual Basic tasarm ortam Single Document Inter face moda dntrlr. (Tek Sayda Dokman eren Arayz) Fakat bunun iin Visual Basic ten kmak gerekir. Sour ce Files Aadaki Visual Component Manager Publish Winzard diyalog penceresini aar. Yukardaki sihirbaz bir bileenin yeniden kullanlabilir olmas iin gerekli bilgilerin adm adm kullancdan alr. Bylece bileenin nerede ve nasl sakland, Visual Studio ve dier tasarm ortamlaryla etkileiminin nasl olduu ve dier tasarmclarn bileeni tanyabilecekleri anahtar kelimeler renilmi olur.

VISUAL BASIC LE YAZILIM GELTRME Aadaki ekilde, Add-Ins mensnn alt menleri grlmektedir: Add-Ins mensnn ilevi, bamsz programlama aralarn(tools) ,Visual Basic iine sokmak ya da karma imkan salamasdr. Visual Data Manager Bu men alternatifi, Visual Basic iine, veri tabanlarn ynetimi konusunda ok yetenekli bir yazlm modl olan Visual Data Manager n (Grsel Veri Yneticisi) eklemesini salar. Bu konu, kitabnzn Veri Tabanlar ile ilikili blmnde ayrntl olarak anlatlmtr. Add-In Manager Bamsz yazlm modllerinin Visual Basic ortamna katlmasn ya da bu ortamdan karlmasn saalar. Bu alternatif arlrsa, ekil .125 teki ekran gelir. Bu ekranda, Available Add-Ins penceresinde iaretlenmi olan modller, Visual Basic iine katlr, iaretlenmemi olanlar ise karlr. ADD-INS MENS

VISUAL BASIC LE YAZILIM GELTRME ekil 1.31- Add-In Manager penceresi Windows mens ak pencerelerden birini semek veya MDI modda ana menye bal alt menleri ekranda dzenli bir ekilde yerletirmek iin kullanlr. Window men seenekleri aadaki ekildeki gibidir. Split Sadece kod penceresi(programn yazld pencere) ak iken aktif olur. Kod penceresini yatay olarak iki yarm paraya ayrr. Kod penceresini eski haline getirmek iin Split men seenei tekrar kullanlr. WINDOW MENS

VISUAL BASIC LE YAZILIM GELTRME Tile Hor izontally MDI modda, ak pencereleri yatay olacak ekilde eit pencere boyutlarnda ekrana yerletirir. Tile Ver tically Yukardaki men seenei ile edeerdir. Farkl olarak pencere ayarlamalar dey olacak ekilde gerekletirilir. Cascade MDI modda , ak pencerelerin ekrandaki yerlerini st ste cascade bir tarzda yeniden ayarlar. Ar r ange Icons MDI modda minimize edilmi pencere ikonlarn ana pencerenin alt sol kesine gre yeniden dzenler. Window List Btn ak pencereleri listeler. Aktif yaplmak istenen pencere seilirse ilgili pencere isminin sol yannda o esnada aktif pencereyi gsteren iareti gzkr. Help (Yardm) mens, her dzeydeki programcnn her zaman gereksinim duyaca bir olanaktr. Help mensnn alt menleri aadaki gibidir: HELP MENS

VISUAL BASIC LE YAZILIM GELTRME Visual Basic 6.0 yardm dosyalar, dier Visual Studio yazlm gelitirme uygulamalarnn da yardm dosyalarn iinde barndran MSDN ktphanesinin yklenmesi ile kullanlr hale gelebilir. Bu ktphanenin kurulum dosyalarn Visual Studio dan ayr olarak edinmek mmkndr ve Visual Studio dan bamsz olarak sisteminize kurabilirsiniz. Contents Help mens iinde iindekiler sekmesini aktif yaparak bilgileri snflandrm olarak listeler. (ekil 1.32) Burada, Visual Basic programlama dili ve ortamnn kullanm ve Visual Basic in bileenleri konusunda eitli balklar listelenmitir. Bu balklardan herhangi biri zerine mouse gstergesini gtrp double-click yaparsanz, bu konu ile ilgili bilgiler ekrana gelecektir. rnein Visual Basic Star t Page (Visual Basic in Balang Sayfas) bal doubleclick ile seilirse, ekil 1.33 deki pencere ekrana gelir. Bu pencerede de gene ayn ekilde, ilgi duyulan bir alt balk seilerek devam edilir. Yardm mens iinden, belirli bir konu ya da szck ile ilikili bilgi alnmak istenirse,o takdirde, Index altenatifi seilmelidir. Bu durumda yardm penceresi daha nceden ak deilse Dizin sekmesi seilmi bir halde alr. ayet daha nceden ak ise bu durumda yardm penceresi Dizin sekmesi seilmi olarak aktif yaplr. Burada Bulmak iin anahtar szc yazn kutusuna , aradnz szc ya da ilk birka harfini yazmalsnz. rnein Redim szc hakknda bilgi almak isteyelim. ekil 1.32 Help/Contents (iindekiler) men penceresi

VISUAL BASIC LE YAZILIM GELTRME ekil 1.33 Visual Basic penceresi Bu durumda ekil 1.34 deki gibi bilgi girmeliyiz. Help bu szckle ilgili satr iaretler ve seer. Bu durumda Grntle(Display) butonu seilirse, Redim szc ile ilikili bilgi ekrann sa tarafndaki pencerede grntlenecektir. (ekil 1.34) ekil 1.33 Redim szcn arama

VISUAL BASIC LE YAZILIM GELTRME ekil 1.34 Redim deyimi iin Help ten alnan bilgiler Sear ch Yardm mensnden Search men komutu seilecek olursa yadm penceresindeki Ara sekmesi seilmi olarak ekrana gelir. (ekil 1.35) ekil 1.35 - Yardm penceresinde Ara sekmesinin seilmesi

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda Aranlacak kelimeyi yazn kutusuna aranmak istenen kelime yazlr. Yukardaki rnekte Event yazlmtr. Daha sonra konular listele butonu tklanarak veya ENTER tuuna baslacak olursa yardm penceresi iinde Event geen konular ieren bir liste hazrlayacaktr. (ekil 1.36) Bu konulardan istenilen seilerek arzu edilen bilgiye ulalm olunur.( Bu ilem bilgisayarnzn kapasitesine gre fazla zaman alabilir.) Srekli olarak eritiiniz yardm konular ise Sk Kullanlanlar sekmesinde kaydedecek olursanz bu konular her defasnda bulmak iin zaman kaybetmemi olursunuz. Technical Suppor t men seenei seilirse size daha fazla destek olabilecek Microsoft destek birimlerine ulaabilmenizi salayacak bilgileri ieren bir yardm penceresi alr. Yalnz bu destek birimleri bir cret karlnda ve sadede Birleik Devletler ile Kanada da geerlidir.

VISUAL BASIC LE YAZILIM GELTRME ayet internette eriim imkannz varsa Microsoft on the Web men komutunu seerek Visual Basic ile ilgili internet sayfalarndan da yararlanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 2 FORMLARLA ALIMAK

VISUAL BASIC LE YAZILIM GELTRME PROJELER VE BLEENLER Visual Basic te bir uygulama gelitirmek proje denilen yap ierisinde gerekletirilir. O halde her yeni bir uygulama yeni bir proje oluturmay gerekli klacaktr. Bir Visual basic projesi, formlar , formlar zerine yer letirilen kontrol nesneler i, nesneler e bal kodlar (event procedur es-olay prosedrleri) ile bamsz modllerden oluur . Visual Basic te proje dosyalarn uzantlar .mak ya da .vbp eklindedir. . vbp uzants Visual basic 6.0 , 5.0 ve 4.0 a zgdr. .mak uzants ise Visual Basic in daha nceki versiyonlarnda kullanlan proje dosyalarnn uzantsdr. Fakat bu tip dosyalar Visual Basic 6.0 ca da tannr. Windows 95/98 ile birlikte dosya isimlerinin uzunluu iin bir kstlama yoktur. Visual basic 6.0 yklendii zaman karnza ekil 2.1 deki pencere gelir. ekil 2.1 Balang penceresi ekil 2.1 de grlen balk satr o anda aktif olan projenin adn gstermektedir.

VISUAL BASIC LE YAZILIM GELTRME Men satr Visual Basic 6.0 n ana men balklarn gsteren satrdr ve daha nce de ayrntl olarak aklanmtr. Ar a Satr ise, men ierisinde yer alan baz ilemleri, kullancnn daha hzl gerekletirebilmesi iin kullanabilecei ikonlar ierir. Mouse yardm ile ekran gstergesini bu ikonlardan herhangi biri zerine gtrrseniz, bu ikonun gerekletirecei men seeneinin ne olduunu grebilirsiniz. rnein, ilk ikon iin belirlenen mesaj Add Standar t EXE Project szcdr ve bu ikon File/Add Project men admlarnn gerekletirdii ilemi gerekletirmekte yani uygulama iine yeni bir proje eklemektedir. zellikler penceresi, o esnada ilgi oda olan(seilmi,aktif) nesneye ait zellikler ve o andaki deer lerini listeler. Ekranda bu pencere yoksa, View/Proper ties Window men admlar ile arlabilir. Proje penceresi ise, o esnada aktif durumda olan proje ile ilikili dosyalarn listesini grntler. Bu dosyalar projeye ait nesneler (form,kontroller vb.) ya da bamsz modllere ait dosyalardr. Proje penceresi o esnada ekranda yoksa View/Project Explorer men admlar ile ekrana getirilebilir. Proje penceresindeki View Object butonu, pencerede o esnada seilmi olan dosya ile ilikili formu grntler. View Code butonu ise, seilmi olan dosya ile ilikili bilgisayar programn(kodu) listeleyecektir. Ar alar kutusu ise, Visual Basic uygulamasn gelitirirken oluturduumuz projede kullanabileceimiz Visual Basic kontrol nesnelerini iermektedir. Visual Basic ilk aldnda aralar kutusu ekranda grnmyor olabilir. Belirli bir anda, aralar kutusu ekranda grnmyorsa, View/Toolbox men admlar ile onu ekrana getirebilirsiniz. imdi zellikler penceresi ve nesne zellikleri konusunda biraz daha detayl bilgi vereceiz. ZELLKLER PENCERES zellikler penceresi, o esnada ilgi oda olan (seilmi, aktif) nesnenin sahip olduu zellikleri ve bu zelliklerin o andaki deerlerini grntler. zellikler penceresini View/Proper ties Window men yolu ile ya da F4 tuuna basarak ekrana getirmek mmkndr.(ekil 2.2) ekildeki zellikler penceresinin bal Form1 dir Form1 balk satrnn bir alt satrnda ise Form1 Form ibaresi grlmektedir. Bunun Anlam

VISUAL BASIC LE YAZILIM GELTRME Form1 balkl nesnenin Form trnde bir nesne olduudur. zellikler penceresi bir kontroln zelliklerini iki farkl dizili srasnda listeleyebilir. Bunlardan ilki Alphabetic seeneidir. Adndan da anlalaca gibi penceresindeki zellikleri alfabetik olarak takip etme imkan salar. Categor ized seenei ise zellikleri, Appearance(grn), Behavior (davran), DDE,Font vb. baz ortak gruplar altnda listelemek iin kullanlr. zellikler penceresine dikkat edilirse, iki stuna sahip olduu grlecektir. Bu stunlardan soldaki, zelliklerin adlarn(Caption, name,height vb.), sadaki ise, bu zelliklerin o esnada sahip olduu deerleri gstermektedir. ekil 2.2 zellikler penceresi Nesneye ait zelliklerin bazlarna tasarm esnasnda, bazlarna ise projenin icras esnasnda deer atanabilir. Baz zellikler ise, hem tasarm hem de icra esnasnda deer kabul eder. rnein aktif formun baln deitirmek istersek bu konuda bize yardmc olacak zellik Caption zelliidir. ekil 2.3 tekil gibi, mouse yardm ile Caption zelliinin sandaki deer kutusunu seerek buraya

VISUAL BASIC LE YAZILIM GELTRME BORDRO yazp enter a basarsanz, formun balnn BORDRO olarak deitiini greceksiniz. Caption zellii ile formun balnn deitirilmesine karn, yazlacak program(kod) iinde, forma referans vermek iin kullanlan formun ad.(Name zellii) hl eski deerini korumaktadr. Formun adn da deitirmek istiyorsanz, Name zelliinin sa tarafn seerek klavye ile yeni ad yazp enter a basmalsnz. (ekil 2.4) Bir form iin, baka iki nemli zellik MaxButton ve MinButton zellikleridir. Bu zellikler mantksal deerler alabilir. Mantksal deerler ya True(doru) ya da False(yanl) olabilen deerlerdir. ekil 2.5 te her iki deer de true dur. ekil 2.3 Form baln deitirme

VISUAL BASIC LE YAZILIM GELTRME ekil 2.4 - Formun adn (Name zellii)deitirme ekil 2.5 - Formun MaxButton ve MinButton zellikleri

VISUAL BASIC LE YAZILIM GELTRME MaxButton zellii True ise Maximize butonu, MinButton zellii True ise de Minimize butonu form zerinde grnecektir. (ekil 2.5) imdi her iki zellii de False(yanl) haline getiriniz. (ekil 2.6) Bu ilem 3 farkl ekilde yaplabilir. 1)MaxButton veya MinButton zelliklerinin deer ksm seilmiken F tuuna basmak. 2)Ayn durumda iken double-click yapmak. 3)Deer hanesinin yanndaki butonu mouse yardm ile kullanarak False semek (ekil 2.6) MaxButton zelliinin False deerini almas il, icra esnasnda formun Maximize butonu grnmeyecektir . MinButton zelliinin False deerini almas da Minimize butonunu icra esnasnda grnmez hale getirecektir. Bu durumu grebilmek iin bo formdan oluan projemizi altralm(icra (run) edelim). Projenin icras 3 farkl yol ile gerekletirilebilir: 1)Run mensnden Start semek 2)F5 tuuna basmak 3)Veya Ar alar satrndan(Toolbar) Start aracn(tool) semek (ekil 2.7) ekil 2.6 Maxbutton ve MinButton zelliklerini False a evirme

VISUAL BASIC LE YAZILIM GELTRME ekil 2.7 Maximize ve Minimize butonlar olmayan form FORMLARDAK EN NEML ZELLKLER Form zelliklerinden Caption,Name,MaxButton ve MinButton zelikleri yukarda tantlmtr. Bu blmde bunlara ilave olarak bir form kullanrken en sk olarak bavurulan zelliklere tantlacaktr. HEIGHT ZELL Formun yksekliini twip cinsinden gsterir.(1 inch=144 twip ve 1cm= 567 twip). Bu zellik tasarm esnasnda da deitirilirse, formun hemen yeni boyutunu ald gzlenir. Ayrca, ara ubuu hareketli bir pencere iine alnacak olunursa, formun belirli bir andaki genilik ve ykseklii ekil 2.8 de grld gibi ara ubuunun sa st kesinde grntlenir. znrl 640*480 den fazla olan ekranlarda formun genilik ve ykseklii dorudan ara ubuunun zerinde grntlenecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil 2.8 Height(Ykseklik) ve Width(Genilik) zellikleri WIDTH ZELL Bir formun geniliini twip cinsinden saklar.(Twip bir nceki zellikte tanmland). (ekil 2.8) LEFT VE TOP ZELLKLER Bu zellikler, formun st ve sol kenar ile ekran arasndaki mesafeyi belirler. Top parametresi 0 ise, formun st sol kenar, ekrann st kenar ile akr; Left parametresi 0 ise, formun sol kenar, ekrann sol kenar ile akr. Left ve top parametrelerinde yaplacak deiiklikler Height ve Width zellikleri gibidir. APPEARENCE ZELL Form zerine yerletirilmi olan kontrol nesnelerinin 3 boyutlu grnme sahip olup olmayacaklarn belirler. nceden atanm(default) deer 1 dir. Appearance deerinin 1 olmas, nesnelerin 3-Boyutlu grnme

VISUAL BASIC LE YAZILIM GELTRME sahip olmas demektir. Appearance deeri 0 yaplrsa, form zerindeki kontrol nesneleri 2.Boyutlu grnme sahip olacaktr. CONTROLBOX ZELL ControlBox zellii, projenin icras esnasnda etkisi grnebilecek olan bir zelliktir. ControlBox zellii, mantksal bir byklk olup, deeri True ya da False olabilir. ControlBox zelliinin deeri True ise, icra esnasnda formun balk satrnn sol kenarnda, iletim sistemine zg bir kontrol mens kar. (ekil 2.9) ControlBox zellii False yaplmsa, icra esnasnda bu kontrol mens ortaya kmayacaktr. BORDERSTYLE ZELL Formun icra esnasndaki grnm ve baz fonksiyonlarn belirleyen bir zelliktir. ekil 2.10 da grld gibi 6 farkl deer alabilir. ekil 2.9 ControlBox deeri True iken icra esnasndaki mouse click ilemi ile kan kontrol mens

VISUAL BASIC LE YAZILIM GELTRME ekil 2.10 BorderStyle zelliinin deerleri Bu deerlere gre, formun zellikleri aada anlatld gibi olacaktr. BorderStyle = 0 ise cra esnasnda formun bal mevcut olmayacaktr ve formun boyutu mouse yardmyla deitirilemez. (ekil 2.11) ekil 2.11 cra esnasnda balk satr olmayan sabit boyutlu form

VISUAL BASIC LE YAZILIM GELTRME BorderStyle = 1 ise Formun, icra esnasnda bal ve ekil 2.12 de grlen kontrol mens mevcut olacaktr. Formun boyutu ise, icra esnasnda deitirilemeyecektir. BorderStyle = 2 ise Formun, icra esnasnda bal ve ekil 2.13 te grlen kontrol mens mevcut olacaktr. Bu parametre deeri iin, icra esnasnda, form boyutu mouse yardmyla deitirilebilir. ekil 2.12 BorderStyle = 1 deeri iin form BorderStyle = 3 ise Formun icra esnasnda bal olacak, kontrol mens olmayacak ve boyutu deitirilmeyecektir. Daha ziyade, diyalog kutular tasarmnda kullanlr. BorderStyle = 4 ise Formun bal vardr. Kontrol mens yoktur ve boyutu sabittir. Windows 3.x ve NT 3.51 ve nceki versiyonlarda bu parametre

VISUAL BASIC LE YAZILIM GELTRME deeri ile 1 parametre deeri arasnda bir fark yoktur. Windows 95 te ise Close butonuna sahip formlar oluturmak iin kullanlr. BorderStyle = 5 ise Windows 3.x ve Windows Nt 3.51 altnda, 2 parametresi gibi alr. Windows 95 altnda ise, 4 parametresi gibi alr. Yani Close butonu olan formlar oluturmak iin kullanlr. Balk satrndaki metin kltlm tarzda grntlenir ve Windows 95 i satrnda(Taskbar) grnmez. ekil 2.13 BorderStyle = 2 deeri iin form ENABLED ZELL True(doru) ve False(yanl) ekilde iki farkl deer alabilen mantksal bir byklktr. Enabled zellii True olursa, form meydana gelen olaylara(events) duyar ldr ; Enabled zelliinin False olmas ise, formun meydana gelen olaylara kar duyar sz olmas sonucunu verecektir. Bu zellik, kod iinde de deitirilerek, formun belirli olaylara kar dinamik olarak cevap vermesi salanabilir. RNEK Formun Enabled zelliini False yaparak run ediniz. imdi mouse yardm ile, Ekran gstergesini sol st keye getirerek mouse sol tuunu

VISUAL BASIC LE YAZILIM GELTRME bir kez tklatnz(mouse-click). Normal olarak almas gereken kontrol mens kmayacaktr; yani form, click(tklatma) olayna kar duyarsz hale gelmitir. FONT ZELL Bu zellik ile ilikili parametreleri ayarlayarak, form zerinde grntlenecek yazlara ait formlar (MS Sans Serif, Courier vb. ), yazl stilleri (italic,bold vb.) ve yaz boyutlar (size) belirlenebilir. Formun font zelliinin yanndaki ... sembol mouse gstergesini getirip click(bir kez tklama) yaparsanz ekil 2.14 teki diyalog penceresi karnza gelecektir. ekil 2.14 Font penceresi Burada yaz fontu, stili ve boyutu (size) ile ilikili arzu edilen deerler seilip Ok butonuna baslrsa, form zerindeki grntlenme, belirlenen parametrelere gre yaplacaktr. MOUSEPOINTER ZELL cra esnasnda, form zerinde grntlenecek mouse gstergesinin (ekran gstergesi) biimini belirler. Bu zellik, 17 farkl deer alabilir. Bu deerler 0 ile 16 arasnda olabilen deerlerdir.

VISUAL BASIC LE YAZILIM GELTRME Her deer farkl bir mouse gstergesi biimini belirler. Ayrca MousePointer zellii 99olarak atanrsa, kullanc MouseIcon zellii yardm ile ekran gstergesi olarak bir ikon(icon) seebilir. Bunu geekletirmek iin: 1)MousePointer zellii 99 yaplr. 2)Mouse gstergesi, MouseIcon zellii yanndaki ... sembol zerine getirerek mouse click yaplr. (ekil 2.15) ekil 2.15 - MouseIcon zelliini set etme Karnza ekil 2.16 daki diyalog penceresi gelecektir. Bu pencerede, daha nceden ikonlarn yklenmi olduu dizini ve bu dizinde arzuladnz ikon dosyasnn adn seiniz. (rnekte bu C:\WINDOWS\CURSORS dizini ve bu dizin iinde HAND-L.CUR adl ikon dosyas olarak seilmitir.) Open (A)butonunu seiniz. 3)imdi Run mensnden Start2 seiniz. Bu durumda, icra esnasnda, start ekran gstergesi yerine, HAND-L.CUR adl ikon dosyasnn belirledii ikon gelecektir.(ekil 2.17)

VISUAL BASIC LE YAZILIM GELTRME ekil 2.16 - kon semek amac ile gelen diyalog penceresi ekil 2.17- HAND-L.CUR dosyas ile belirlene ikon

VISUAL BASIC LE YAZILIM GELTRME VISIBLE ZELL Formun, projenin icras esnasnda, ekranda grnr olup olmayacan belirler. Visible zellii True deerini alrsa (nceden atanm (default) deer de budur.) form icra esnasnda grnr; Visible zellii False deerini alrsa, form icra esnasnda grntlenmeyecektir. SCALEMODE ZELL Scale szc ile balayan zellikler form zerinde yaplacak lekleme ilemleri ile ilikilidir. ScaleMode zellii, form zerinde kullanlacak koordinat sistemi iin bir birim belirlemek imkan salar. ekil 2.18 de grld gibi, bu zellik iin 8 farkl deer kullanlabilir ekil 2.18 - ScaleMode zellii

VISUAL BASIC LE YAZILIM GELTRME ScaleMode Deer i Bir im Edeeri 0 Kullanc tarafndan belir lenmi 1 Twip 1/1440 Inch 2 Nokta(Point) 1/72 Inch 3 Pixel Ger ek r esim noktas 4 Karakter Yatay 1 20 Twip Dey 240 Twip 5 Inch 6 Cm 7 Mm Tablo 2.1 - ScaleMode zellii deerleri SCALETOP, SCALELEFT ZELLKLER Form zerine nesneler yerletirilirken, gz nne alnacak olan koordinat ekseninin balangcn belirleyen parametrelerdir. nceden atanm(default) deerler her ikisi iin de 0 dr; yani koordinat ekseni balangc (0,0) noktas formun sol st kesidir. Bu zelliklere pozitif deerler atanmas ile, koordinat ekseni balangc sola, yukarya doru olacaktr. Negatif deerler alnd takdirde de koordinat ekseni formun iine doru kayacaktr. SCALEHEIGHT, SCALEWIDTH ZELLKLER Kullancn formu leklemek iin kendi birimlerini kullanmak istemesi durumunda kullanlabilecek zelliktir. rnein kullanc ScaleHeight = 150 atamas ile form ykseklii 150 birim ve ScaleWidth = 150 atamas ile de form genilii 150 birim olarak belirlenecektir. Bu durumda koordinat eksen balangc (75,75) noktas olacaktr. ScaleLeft, ScaleTop,ScaleHeight ve ScaleWidth zelliklerine bir atama yaplnca, ScaleMode zellii otomatik olarak 0 yaplr.

VISUAL BASIC LE YAZILIM GELTRME BACKCOLOR ZELL Formun zemin rengini belirleyen zelliktir. Formun zellikler(Properties) penceresinde BackColor zelliinin sa tarafndaki deere bakarsanz bir hegzadesimal(ondalk sistemde verilmi) say ile karlaacaksnz; &H8000000F&. (ekil 2.19) Gerekten de Visual Basic, renkleri 16 lk sistemdeki saylarla temsil edilmektedir. Teorik olarak, 16 lk kodlama ile 16.777.216 farkl renk oluturulabilir. ekil 2.19 BackColor (Zemin rengi) zellii Fakat, tasarm esnasnda renk atamas yaplrken 16 lk sistemde say yazmak yerine, Visual Basic in bu ama iin salad yardmc renk diyalounu kullanmak daha kolay bir yoldur. Formun zemin rengi iin Visual Basic in renk paketindeki renkleri veya Control Panelinde tanmlanm sistem renklerini kullanabilirsiniz. ayet bu atama iin sistem renklerinden bir renk seilmise bu renk iin tahsis edilen 3 byte tan, yksek seviyeli byte sfr deerini alr. Renk paketinden yaplan btn renk atamalar iin bu byte n deeri sfrdan farkl olur. Hegzadesimal saynn yanndaki buton, mouse yardm ile tklatlrsa

VISUAL BASIC LE YAZILIM GELTRME ekil 2.19 da grlen yardmc renk diyalou ekrana gelir. Buradan mouse yardm ile seilecek olan bir renk, formun zemin rengi olarak atanacaktr. FORECOLOR ZELL Bu zellik, formun n-plan rengini belirler. Kullanm ve renk seimi BackColor zelliindeki gibidir. KULLANICININ KEND RENKLERN BELRLEMES Renk zelliklerini belirlerken, kullanc default (nceden belirlenmi) renk paletini kullanabilecei gibi, temek rengin (Krmz,yeil,mavi) karm ile kendisi de zel bir renk belirleyebilir. Bunu gerekletirmek iin nce View mensnden Color Palette zellii seilir. (Veya Alt+V+L tularna birlikte baslr) Bu ilem sonucunda ekil 2.20 deki palet gelir: ekil 2.20 Renk Paleti

VISUAL BASIC LE YAZILIM GELTRME Bu palette mouse yardm ile bo renk kutularndan oluan bir nesne seilecek olursa Define Colors butonu aktif duruma geecektir. imdi Define Colors butonunu seiniz. ekil 2.21 deki ekran gelecektir: ekil 2.21 Kullanc rengini tanmlama Define Colors penceresinde temel renklerin(krmz-r ed, yeil-gr een,mavi-blue) sa tarafnda bulunan kutulardaki saylar deitirerek renginizi belirleyebilirsiniz. Hue, Sat, Lum kutular ile de nokta younluunu ve kglge durumlarn ayarlayabilirsiniz. Ayarlar bitince Add Color butonunu seerek belirlediiniz rengi pakete katnz. WINDOWSTATE ZELL Projenin icras esnasnda, formun nasl grneceini belirleyen bir zelliktir. 3 farkl deere sahiptir. Deeri 0 ise, bilinen normal form grnts elde edilir. Deeri 1 ise, form bir ikona indirgenecektir. Deeri 2 ise, form en byk eklini alr yani maksimize edilir. WindowState zellii de ,genellikle icra esnasnda deitirilir.

VISUAL BASIC LE YAZILIM GELTRME OLAYLAR VE FORMUN DAVRANII Bir formun bir olay(event) alglayabilmesi iin, Enabled zelliinin True deerini alm olmas gerektiini biliyoruz. Bu zellik True ise, form rnein mouse u ift tklatma(double-click), mouse u tek tklatma(click), mouse tuunu basl tutma(mouse down) gibi pek ok olay alglayabilir. Fakat, pratikte faydas olabilecek projeler gelitirmek iin bu kadar yetmez. Formun(veya baka bir kontrol nesnesinin) bir olayn meydana geliini alglamas kadar, bunu alglad zaman ne yapacann da belirlenmi olmas gerekir. Bir kontrol nesnesinin, bir olay alglad zaman, hangi ilemleri yapacan belirleyen ey, bu kontrol nesnesine bal olarak gelitirilen koddur (bilgisayar programdr). Bu tr, olaylara duyarl kodlara event procedure(olaya bal prosedr) ad verilir. rnein, eklindeki ok basit kod, bir event procedure rneidir. Burada Form zerinde bir mouse u iki kez tklatma (mouse double click) olay meydana gelirse, ekrana ; Meydana gelen olay Mouse u iki kez tklatmaktr mesaj yazlacaktr. Yani yazlan kodun amac, formun, double click olayn alglamas halinde,yukardaki mesaj aktarmaktadr. imdi bu kodun nasl oluturulup altrlacan anlatalm: 1)Form ekranda grnyor iken, ekran gstergesi form zerinde bulunduu srada mouse sol tuunu iki kez tklatnz. ekil 2.22 deki kod penceresi ekrana gelecektir. (Ayn ilem menden View/Code admlar

VISUAL BASIC LE YAZILIM GELTRME ile de gerekletirilebilir.) Ekran gstergesini stne getirdiinizde Procedure mesajn veren kutunun sa tarafndaki butonu mouse yardm ile aktif ederek DblClick olayn seiniz. (ekil 2.23) ekil 2.22 Kod Penceresi ekil 2.23 DblClick olaynn seilmesi 2) imdi ekil 2.24 te grlen kodu giriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil 2.24 Event procedure n yazl 3)Run mensnden Start seerek kodu(projeyi) altrnz. ekil 2.25 ekran gelir. ekil 2.25 Formun icra esnasndaki ilk grnm

teki

VISUAL BASIC LE YAZILIM GELTRME 4)imdi, ekran gstergesi form zerinde iken , mouse sol tuunu iki kez tklatnz. (Double Click) Her Double Click olaynda, kod iinde Print komutlar iine yazlm mesaj, forma aktarlacaktr. (ekil 2.26) ekil 2.26 Olay alglayan form, kod yardm ile mesajn aktaryor. ekil 2.27 Bir Olaya bal prosedrn(Event Procedure) alma Prensibi

VISUAL BASIC LE YAZILIM GELTRME Yukarda, adm adm almasn izlediimiz kodun alma prensibi, ekil 2.27 de zet olarak verilmitir. Nesne(Burada form) bir olay alglamaktadr. (Burada olay iki kez tklatma-double click olaydr). Nesne ve alglad olay ile ilikili olarak yazlm olan kod ise, olay nesne tarafndan alglanr alglanmaz icra edilmekte ve ilevini ekrana getirmektedir(Burada ekrana mesaj yazdrma). KOD PENCERES Bir olayn meydana gelmesi sonucu yerine getirilmesini istediimiz ilemleri Bir kod ( program) ile anlatabileceimizi biliyoruz. Bu kodu nereye yazacamz akla gelen ilk sorudur. Yukardaki rnekte bunun iin ipucu elde ettik. Kodu yazacamz yer kod penceresidir. Burada, kod penceresini daha ayrntl olarak ele alacaz., Kod penceresini ekrana getirmenin 3 farkl yolu vardr: 1. Tasarm esnasnda, ekran gstergesi form zer inde herhangi bir konumdayken mouse sol tuunu iki kez tklatmak. Bu ilem sonucunda, kod penceresi ekrana gelecektir. (ekil 2.28) ekil 2.28 Kod penceresi 2. F7 tuuna basmak.

VISUAL BASIC LE YAZILIM GELTRME 3. View mensnden Code seeneini semek. ekil 2.28 deki kod penceresine daha dikkatli olarak bakarsak aadaki noktalar tespit edebiliriz: Object (nesne) kutusu iinde (pencerenin solundaki kutu) o anda seilmi olan nesnenin ad grnr. Form zerine henz baka bir kontrol nesnesi yerletirilmemi ise, burada Form ve General szckleri grnecektir. General szc, bir olaya bal olmayan ve modl ad verilen kodlarn oluturduu seenei belirler. Form nesnesi seilirse, Procedure kutusu iinde ( pencerenin sandaki kutu), form nesnesinin alglayabildii olaylarn bir listesi grntlenecektir.(ekil 2.29) ekil 2.29 Form nesnesinin alglayabildii olaylar grme Form nesnesi, 25 deiik olay alglayabilir. Bu olaylar aada listelenmitir. Activate Dr agDrop KeyDown LinkEr ror Click Dr agOver KeyPr ess LinkExecute DblClick GotFocus KeyUp LinkOpen Deactivate Initialize LinkClose Load LostFocus Paint Unload MouseDown QueryUnload MouseMove Resize MouseUp Terminate

VISUAL BASIC LE YAZILIM GELTRME Bu olaylarn anlamlar ve onlarla ilikili rnek kodlar kitabn ilerdeki blmlerinde verilecektir. imdi bunlar iinden, pratikte en ok kullanlan olaylardan biri olan Load olayn inceleyelim. Nesne(Object) penceresinden Form ve Prosedr (Procedur e) Penceresinden de Load seilirse aadaki kod ablonu karmza gelir: Form Load Pencere Resmi Burada, Form nesnesi Load olayn alglad zaman ne yaplacan anlatan kodu oluturmak iin bir ablon sunulmutur. Load olay, formun ilk kez yklenmesi esnasnda oluan olaydr. Form_Load prosedr ile, genellikle proje ilk kez yklendii zaman yaplmas gereken ilemler tanmlanr. rnein aadaki gibi bir kod yazlm olsun: Pr ivate Sub Form_Load Caption= BORDRO MousePointer = 11 Width = 4000 Height = 3000 End Sub

VISUAL BASIC LE YAZILIM GELTRME Bu kod iinde, Formun bal BORDRO olarak tanmlanm, mouse gstergesi iin 11 parametresine kar gelen kum saati sembol seilmi, Height ve Width ile, formun ykseklik ve genilii twip cinsinden tanmlanmtr. (Bir nceki blmde bu kavramlar aklanmt) imdi Run/Star t mens seilirse veya F5 tuuna baslrsa, proje icra edilecek ve Form yklenince yukardaki Form_Load kodundaki zellikler atanacak ve Form yeni parametreleri ile ekil 2.30 daki gibi grnecektir. ekil 2.30 Form_Load Prosedrnn icras UNLOAD OLAYI Bir formun ekrandan silinmesi ile meydana gelir. rnein bir formu Unload deyimi ile ekrandan uzaklatrmak mmkndr. Form1.Unload Form ekrandan uzaklatrlrken yaplmas gereken ilemler, Form_Load olay prosedr iine yarletirilmelidir.

VISUAL BASIC LE YAZILIM GELTRME BLM 3 KONTROL NESNELER

VISUAL BASIC LE YAZILIM GELTRME KONTROL NESNELER Gelitirilen uygulamann kullanc asndan kolay kullanlr ve sempatik grnmde olabilmesi iin, kullancnn uygulama ile kar karya kalaca diyalog pencerelerinin zen tasarlanmas gerekir. Belirli bir deneyim sonucu oluacak bu beceride, programcya en nemli destek, kontrol nesnelerinden gelecektir. Kontrol nesneleri, standart kontroller ve dardan eklenen kontroller olarak iki gruba ayrlabilir. Standar t kontrol nesneler i, Visual Basic in yklenmesi ile hemen kullanlabilecek olan kontrol nesneleridir. Dardan eklenen kontroller ise, standart nesnelerin salad imkanlar n tesine geebilen, Microsoft firmasnca ya da baka irketler tarafndan retilmi ve Visual Basic uygulamasna sonradan herhangi bir zamanda eklenebilecek nesnelerdir. Her iki tip kontrol nesnesinin de mterek zellii, daha nceden kendilerini yklenmi belirli zelliklere sahip olmalardr. Ayrca daha sonra grlebilecei gibi, ve sadece Visual Basic e zg olarak, kullanc tar afndan da mevcut kontrol nesneler ine yeni zellikler eklenebilir . Tasarmc ya da programc asndan en nemli husus, bu kontrol nesnelerinin zellikler ini, duyarl olduklar olaylar ve bu nesneler zerine uygulanabilecek metotlar zmsemi olmaktr . Ancak bu sayede daha etkin programlar, daha ksa sreler iersinde gelitirilebilir. FORM ZERNE KONTROL NESNES YERLETRMEK Form zerine kontrol nesneleri yerletirmek, olduka kolay olarak gerekletirilen bir ilemdir. Aadaki ekilde gerekletirilir: 1)Form zerine yerletirilecek olan kontrol nesnesi , mouse- click(sol tuu bir kez tklatma) ilemi ile ara kutusundan(Toolbox) seilir.(ekil 3.1) 2)Mouse yardm ile, ekran gstergesi form zerine getirilir. Mouse sol tuu basl tutularak mouse hareket ettirilerek kontrol nesnesinin form zerinde arzu edilen bykle erimesi salanr. Bu gereklendikten sonra mouse sol tuu serbest braklr. (ekil 3.2)

VISUAL BASIC LE YAZILIM GELTRME ekil 3.1 Ara kutusundan kontrol nesnesinin seilmesi ekil 3.2 Form zerine yerleen kontrol nesneleri

VISUAL BASIC LE YAZILIM GELTRME STANDART DII KONTROL NESNELERN FORM ZERNE YERLETRME Form zerine standart d bir kontrol nesnesi yerletirmek isterseniz, aadaki admlar izlemelisiniz. 1)Project mensnden Components seeneini seiniz. Bu men seenei edeeri Ctrl ve T tulardr. Karnza Components balkl pencere gelecektir. (ekil 3.3) ekil 3.3 Components penceresi 2) Burada Controls seenei ile kontrol nesnelerini, Designers (Tasarmlar) seenei ile DLL tasarm dosyalarn ne Inser table Objects (eklenebilir nesneler) seenei ile de imaj nesneleri ile ilgili dosyalar listeleyebilirsiniz. Bunlardan arzu ettiiniz birini ( Mesela Controls seenei ile listelenen kullanlabilir kontroller iinden Microsoft Comm Control- Microsoft Haberleme Kontrol Nesnesi) iaretleyiniz. OK butonunu seiniz. aretlediiniz kontrol nesnesi ara kutusunda grntlenecektir. (ekil 3.4)

VISUAL BASIC LE YAZILIM GELTRME ekil 3.4 Standart d kontrollerden haberleme nesnesinin yklenii 3)imdi bu kontrol nesnesini yukarda standart kontrol nesneleri blmnde anlatld gibi form zerine yerletirebilirsiniz. (ekil 3.4) NOT: Yukardaki standart d kontrol nesnesi C:\WINDOWS\SYSTEM dizininde MSCOM32.OCX dosya ad ile yklenmitir. Eer baka dizinlerden ykleme yapmak isterseniz, Browse butonunu seerek ilgili dizin ve dosyay iaretlemelisiniz. KONTROL NESNESNN ZELLKLERN GRMEK Bunun iin aadaki ilemleri yapmalsnz. 1) zelliklerini grmek istediiniz kontrol nesnesini seiniz.( Ekran gstergesini kontrol nesnesi zerine gtrp mouse sol tuunu tklatarak)

VISUAL BASIC LE YAZILIM GELTRME 2)View mensnden Properties Window seeneini seiniz.(veya F4 tuunu kullannz.) Bylece o nesneye ait zellikler penceresi grntlenecektir. rnekte Text(Metin) kutusu nesnesine ait zellikler grntlenmitir. (ekil 3.5) ekil 3.5 Text kutusuna ait zellikler penceresinin grntlenmesi FORM ZERNDEK BR KONTROL NESNESN SLMEK Form zerindeki bir kontrol nesnesini silmek iin aadaki admlar izlenmelidir: 1)Mouse-Click ilemi yardm ile kontrol nesnesi seilir. 2)Edit mensnden Delete seenei seilir.(veya Cut seenei seilir)

VISUAL BASIC LE YAZILIM GELTRME STANDART KONTROL NESNELER VE LEVLER GSTERGE Form zerine aktarlp grntlenemeyen yegane kontrol nesnesidir. Form zerine izilmi bir kontrol nesnesinin boyutunu deitirmek veya bu kontrol nesnesini hareket ettirmek gerektii zaman yararlanlr. Ara kutusundan gstergeyi semi iseniz, sadece form zerinde mevcut bir nesnenin boyutunu deitirme ya da nesneyi baka yere aktarma gibi ilemleri yapabilirsiniz. Ara kutusundan bir kontrol nesnesi seilmise, gsterge yardm ile form zerine bu nesneyi aktarabilirsiniz. Form zerine kontrol nesnesi aktarldktan sonra, gsterge otomatik olarak aktif hale gelecektir. RESM KUTUSU(PICURE BOX) Resim kutusu nesnesi yardm ile form zerinde grafikleri grntlemek mmkndr. Ayrca, program(kod) iinde grafik izdirmek amac ile de resim kutusundan yararlanlabilir. Resim kutusu iine, diskinizin herhangi bir dizini iinden aracanz bir bitmap, ikon(icon) ya da metafile ykleyebilirsiniz. Ayrca, resim kutusu, Visual Basic ile animasyon oluturmak amac ile de kullanlr. RNEK : Tasarm faznda iken, r esim kutusuna bir resim yer letirmek Bu amala, aadaki admlar izleyiniz: 1)Mouse yardm ile resim kutusunu form zerine yerletiriniz ve seiniz(ekil 3.6) 2)View/Proper ties Window men admlarn seiniz. Properties penceresinde, Picture zelliinin yanndaki butonu tklaynz. (ekil 3.7)

VISUAL BASIC LE YAZILIM GELTRME ekil 3.6 Resim kutusunu forma yerletirme ve seme ekil 3.7 Resim kutusunun Picture zelliini seme 3)Karmza ekil 3.8 de grlen pencere gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil 3.8 fil.bmp dosyasn seme Bu pencerede, C:..\VB98 dizini iinden fil.bmp dosyasn seiniz. (Veya kendi bilgisayarnzda herhangi bir resim dosyasn seebilirsiniz) A butonunu seiniz. 4)ekil 3.9 da grld gibi, resim kutunuz iine seilen resim dosyasnn yerletiini greceksiniz. ekil 3.9 Resim dosyas ierisine yerleen fil.bmp adl resim dosyas

VISUAL BASIC LE YAZILIM GELTRME ETKET (LABEL) Etiket kontrol nesnesi, kullanc tarafndan deitirilemeyecek bir metni grntlemek ya da icra esnasnda uygulama tarafndan deitirilecek bir metni grntlemek amac ile kullanlabilir. Herhangi bir ilemi gerekletirirken , ilemin devam sresince, ilem hakknda aklamalar yapp bunlar ekranda grntlemek gerekiyorsa etiket kontrol nesnesi bu ama iin de kullanlabilir. RNEK: Bir etiket kontrol nesnesine tasarm esnasnda bir mesaj yerletirmek Bu amala , aadaki admlar izleyiniz: 1)Form zerine bir etiket kontrol nesnesi yerletiriniz ve bu nesneyi seiniz. (ekil 3.10) ekil 3.10 Form zerine yerletirilen etiket kontrol nesnesi 2) View/Proper ties Window men admlarn seiniz. Properties penceresinde Caption zelliini seiniz. (ekil 3.11). Label1 yazl olan kutuya klavye yardm ile , KOPYALAMA SRYOR ifadesini yaznz.

VISUAL BASIC LE YAZILIM GELTRME ekil 3.11 Caption zelliinin deitirilmesi 3)imdi Properties penceresinden Font zelliini seiniz. Font zelliinin sa tarafndaki butonu tklatnz. Burada ekil 3.12 deki diyalog penceresi karnza gelecektir. ekil 3.12 de grlen seimleri yaparak ok butonunu seiniz. ekil 3.12 Font zelliinin seilmesi 4)ekil 3.13 te grlen sonucu elde edeceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil 3.13 Etiket kontrol nesnesine yerletirilen mesaj METN KUTUSU (TEXT BOX) Metin kutusu kontrol nesnesi, iki ayr ama iin kullanlabilir: 1)Kullanc tarafndan, uygulamann icras esnasnda, bilgi girii amac ile 2)Uygulama tarafndan retilen bilgilerin ekranda, form zerinde grntlenmesi amac ile Metin kutusu iersinde, birden ok sayda satr grntlenebilir: gerekirse, sayfa kaydrma ilemi de(scrolling) gerekletirilebilir. Metin kutusu iinde birden ok satr yazlmas iin Multiline zellii True haline getirilmelidir.(ekil 3.14)

VISUAL BASIC LE YAZILIM GELTRME ekil 3.14 Multiline zelliinin True yaplmas EREVE (FRAME) ereve nesnesi,form zerine yerletirilecek kontroller iin grsel ve fonksiyonel anlamda bir grup oluturma imkan salar. Bu anlamda, ereve iine alnan kontroller,dierlerinden kolayca ayrt edilirler. Bir ereve iine, opsiyon butonlar yerletirerek, bir opsiyon butonlar grubu oluturabilirsiniz. ereve iine yerletirilen kontrollerin en nemli zellii, erevenin hareketi ile tmnn de birlikte hareket etmesidir. KOMUT BUTONU (COMMAND BUTTON) Komut butonu, kullanc tarafndan seildii zaman, belirli bir ilemi yerine getirir. Bu ilem, kendisine bu olaya bal olarak yklenmi olan kod ile gerekletirilir.

VISUAL BASIC LE YAZILIM GELTRME Komut butonu iin, tipik kullanm, butonu mouse yardm ile bir kez tklatma(click) ilemi ile ya da mouse ile butonu seip klavyeden SPACEBAR ubuunu kullanmakla gerekletirilebilir. eitli diyalog pencerelerinde karmza kan Ok ve Cancel butonlar komut butonlarna rnektir. Komut butonuna balanan bir kod yardm ile, istenirse, buton seildii zaman baka bir formun almas da salanabilir. KONROL KUTUSU (CHECK BOX) Kontrol kutusu, ama ya da kapama gibi yada seme ve iptal gibi ikili bir kontrole ihtiya duyulan uygulamalarda kullanlr. Kullanc, belirtilen seenei seerse, kutu iinde bir sembol grntlenir. Kontrol kutular, sonu olarak, kullancya Evet/Hayr ya da Doru/Yanl gibi seenekler vermek iin kullanlr. OPSYON BUTONU (OPTION BUTTON) Opsiyon butonlar, grup halinde kullanlrlar. Bu grup iersinde, her buton bir seenei temsil eder. Kullanc setii seenei, ilgili opsiyon butonunu iaretleyerek belirtir. Kontrol kutusu nesnesinden farkl olarak, bir opsiyon butonlar grubunda sadece bir tanesi seilebilir. rnein, iki uluslar aras kurulu arasnda, yazma dilini semeyi gerektiren bir arayz iinde opsiyon butonlar grubu kullanlabilir. Opsiyon butonu seildii zaman, butonun merkezi siyah bir renk alacaktr. KOMBNE KUTU (COMBO BOX) Bir kombine kutu, metin kutusu(text box) ve liste kutusunun (list box) zelliklerini bir araya toplar. rnein, kullanc metin kutusu gibi iine

VISUAL BASIC LE YAZILIM GELTRME metin yazlabilir ya da liste kutusu gibi, kutu iine yerletirilmi isimlerden istediklerini seebilir. LSTE KUTUSU (LIST BOX) Listeleme kutusu, kullancnn iinden bir ya da daha fazla isim seebilecei bir liste ierir. Listeye yeni isimler eklenebilir ya da listedeki baz isimler kartlabilir. Scrolling (sayfalama) ilemi mmkndr. rnein, bir liste kutusu ile eitli lke isimlerini listeleyebilirsiniz. Kullanc bir isim seince, o lkenin zellikleri listelenebilir. YATAY HAREKET UBUKLARI (HORIZONTAL SCROLL BARS) Kullancya, listeler iinde veya byk miktarlarda bilgi boyunca yatay hareket imkan salar. Ayrca saysal deerlerin grntlenmesi iin grafik bir imkan oluturur. Bu anlamda, bir fonksiyonun deerlerinin grntlenmesini, bir yatay hareket ubuunun hareketi ile ilikili olarak gerekletirebilirsiniz. DEY HAREKET UBUKLARI (VERTICAL SCROLL BARS) Dey hareket ubuklar, yatay hareket ubuklar iin sylenen ilemleri dey olarak gerekletirirler. ZAMANLAYICI (TIMER) Uygulamann almas esnasnda, zamana bal olarak belirli aralklarla, belirli eylemlerin gerekletirilmesini denetlemek amac ile kullanlr.

VISUAL BASIC LE YAZILIM GELTRME SRC LSTELEME KUTUSU (DRIVE LIST BOX) cra esnasnda, geerli srclerin bir listesini sunmak ve srcler arasnda gei yapmak iin kullanlr. Src listeleme kutusu, bir dosyay bellee yklemek (amak-open) amac ile oluturulan bir diyalog penceresinin bir paras olarak kullanlabilir. DZN LSTELEME KUTUSU (DIRECTORY LIST BOX) cra esnasnda, aktif durumdaki srcnn yolunu(path) ve dizinlerini (Directories) grntler. Bu kontrol nesnesi, kk dizinden(root directory) seilmi bir yolu izleyerek hiyerarik olarak dizin listesini grntlemek amac ile kullanlabilir. Ayn zamanda, doal olarak, bir dosya ama diyalog penceresinin bir paras olarak ta kullanlabilir. DOSYA LSTELEME KUTUSU (FILE LIST BOX) Verilen bir dizin iindeki tm dosyalar listeler. Kullanc, listelenmi dosyalar iinden bir dosya seebilir. Bu kontrol nesnesi de, bir dosya ama diyalog penceresinin bir paras olarak kullanlabilir. EKL (SHAPE) Tasarm(desing) zamannda grnr olan bir kontrol nesnesidir. Tasarm esnasnda, form zerine, kare, daire, elips, dikdrtgen, gibi ekiller yerletirmek amac ile kullanlr.

VISUAL BASIC LE YAZILIM GELTRME ZG (LINE) izgi kontrol nesnesi, tasarm esnasnda, form zerine yatay, dey ya da eik izgi yerletirmek amac ile kullanlr. izgi kontrol nesnesi, bir formu paralara ayrmak amac ile kullanlabilir. GRNT(IMAGE) Bir resmi grntleyebilen grafik tipte bir kontrol nesnesidir. Bu adan, resim kutusuna (picture box) benzer. Fakat, resim kutusuna oranla daha az sistem kayna kullanr. Mouse ile clicklendii zaman, komut butonuna benzer zellik gsterir. Uygulamada, rnein bir firma, firmann logosunu grnt nesnesi iine yerletirerek, resim zerime mouse ile click ilemi gerekletirildiinde de firma hakknda baz bilgiler listeleyen bir tantm yazlm oluturulabilir. VERYE ERM (DATA ACCESS) Sistemde mevcut olan veri tabanlarna erierek, bilgi gncelleme, edit ya da bilgi grntleme ilemlerinin yaplabilmesine olanak salar. OLE STEMCS (OLE CLIENT) Object Linking and Embedding (Nesneyi Balama ve Yerletirme) yntemi, Windows iletim sistemince kullanlan yeni bir teknolojidir. Bu teknoloji sayesinde, bir Windows uygulama progr am (Mesela Visual Basic 6.0) ile gelitir ilen bir proje iine baka bir Windows uygulama programndan (Mesela Word 7.0 veya Excel 7.0 ) nesneler aktarmak mmkndr . Bylece Visual Basic 6.0 program

VISUAL BASIC LE YAZILIM GELTRME alyorken, bunun iinde bir Word dkman zerinde deiiklik yapmak ya da Excel grafik nesnesi ile ilem yapmak mmkn olmaktadr. OLE kontrol nesnesi, Windows kkenli uygulamalardan Visual Basic uygulamanza gelen veriyi grntlemek imkan salar. cra esnasnda, bir OLE kontrol nesnesi iinde, mesela bir Excel uygulamasna ait olan verileri edit edebilirsiniz. Edit ilemi tamamland zaman, Excel uygulamas kapatlsa bile, gncellenmi veri , OLE kontrol nesnesi iinde grnecektir. GRID (MSFLEXGRID) Tablolama programlarnn(spreadsheets) sayfalarna(sheets) benzer ekilde, satr ve stun izgilerinin kesimesi ile olumu bir hcreler(cells) kmesi grntler. Grid nesnesindeki bir hcre, bir resim ya da grafik ierebilir. Uygulamanzda, tablolar zerine veriler yerletirerek, tablolarla allacaksa, bu kontrol nesnesi ok byk bir kolaylk salayacaktr. GENEL DYALOG (COMMON DIALOG) Genel diyalog kontrol nesnesi, eitli trdeki diyalog kutularnda, bilgiyi grntlemek amac ile kullanlr. Bu diyalog kutular Open(A), Save As (...Ad ile Sakla), Pr int(Yaz), Color (Renk) ve Font (Font) balkl diyalog kutulardr. Formunuz zerine, bir genel diyalog kontrol nesnesi yerletirirseniz, bu nesne otomatik olarak kendisini boyutlandracaktr.

VISUAL BASIC LE YAZILIM GELTRME GRAFK (MSFLEXCHART) Visual Basic uygulamanz iinde, her eit grafik oluturmak amac ile kullanlr. GSTERGE (GAUGE) Visual Basic uygulamalar iinde, bir analog gsterge grntsne gereksinim duyulduu durumlarda son derece faydal olan bir kontrol nesnesidir. Bu anlamda, bir termometre, bir yakt gstergesi, bir basn gstergesi gibi tasarmlarda kullanlabilir. Pictur e zellii yardm ile iine resim yerletirilebilir. Style zellii yardm ile de, gsterge tasarmnda mmkn olan 4 farkl durumdan biri seilebilir. (ekil 3.15) ekil 3.15 Gstergenin tasarm stilleri

VISUAL BASIC LE YAZILIM GELTRME GELKN METN KUTUSU (RICH TEXTBOX) Pek ok fonksiyonu bakmndan metin kutusu nesnesine benzer. Fakat metin kutusunda Text zelliinin kapasitesi maksimum 64K ile snrl iken, RichTextBox ta bu snr yoktur. Ayrca, kitabmzn dosyalar blmnde akland zere, RichTextBox ile dosyalar arasnda dorudan bilgi alverii mmkndr. Yukarda aklanan kontrol nesnelerinden bazlar standart olarak Toolbox iinde olmayabilir. Bu durumda bu kontrol nesnelerini kullanabilmek iin Project/Components men komutu ile arlan diyalog penceresinden bu kontrol nesneleri seilir. ayet aradnz kontrol nesnesi listede yoksa ilgili dosyalarn hangi dizin iinde olduu Windows Explorer veya File Maneger ile arandktan sonra bu dosya Project/Components mens ile, Toolbox iine katlmaldr. rnein mschrt20.ocx isimli grafik kontrol nesnesinin Project/Components mens ile gelen diyalog penceresinde olmadn dnelim. Bu kontrol nesnesini Toolbox iine katmak iin kullanlacak ayrntl admlar aadadr. 1) Windows Explorer ykleyerek mschrt20.ocx in varln aratrnz. Bunun iin, Explorer n Tools/Find/Files or Folder s (Aralar/Bul/Dosya veya Klasrler) men admlarn seiniz. Named(Ad) penceresine mschr t20.ocx yazarak Find (imdi Bul) butonunu seiniz. (ekil 3.16) 2) mschr t20.ocx mevcutsa, ekil 3.17 deki gibi bulunacaktr. (C:\windows\system dizini iinde) 3) Visual Basic in Project/Components mensn seiniz. Karnza ekil 3.18 deki pencere gelecektir 4)Bu pencerede Browse butonunu seiniz. ekil 3.19 daki ekran gelecektir. Bu ekranda C:\windows\system dizini mouse yardm ile mschr t20.ocx i seiniz. Ok butonunu seiniz. 5) karnza tekrar Components penceresi gelecektir. Burada de Ok butonunu seiniz. Bylece grafik nesnesi, ara kutusu(Toolbox) iine yklenecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil 3.16 Explorer da mschrt20.ocx i arama ekil 3.17 mschrt20.ocx, C:\windows\system dizini iinde bulundu

VISUAL BASIC LE YAZILIM GELTRME ekil 3.18 - Components penceresi ekil 3.19 mschrt20.ocx nesnesinin iaretlemesi

VISUAL BASIC LE YAZILIM GELTRME Bu blmde ele alnmayan kontrol nesneleri ile ilikili olarak genellikle kitabmzda ayr blmler mevcuttur. Ayrca, Kitabmzn Kontrol Nesneleri Uygulamalar balkl blmnde, kontrol nesnelerinin hemen hemen tm ile ilikili rnekler ve aklamalar sunulmutur.

VISUAL BASIC LE YAZILIM GELTRME BLM 4 VISUAL BASIC NDE INTERNET UYGULAMALARI (WebBrowser KONTROL)

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC VE INTERNET Internet artk hemen hemen bilgisayar olan tm kullanclarn bal olduu bir bilgi otoban olarak yazlm gelitiricilere yeni yaklamlar sunmaktadr. Internet ad ile ok sk tekrarlana bir dier kavram da gezgin ya da gz atc diye Trkeletirdiimiz Browser kavramdr. Gezginler internet ortamnda HTML biimindeki belge dosyalarn bizim alk olduumuz Web sayfalar olarak grntleyen programdr. Visual Basic 5.0 ile yazlm gelitirme ilemi, Visual Basic kullanclar iin, internet ortamna sram ve 6.0 srm ile internet, yaygn bit uygulama platformuna dnmtr. Bu sebeple bu blmde anlatlacak olan WebBrowser kontroln bir nceki blmmzde anlattmz standart Visual Basic kontrollerinden ayrma ihtiyac hissettik. Visual Basic in yazlm gelitirmede salad kolaylklar ve getirdii yenilikler ile ok sk kullanlan Internet Explorer veya NetScape Navigator kullanmak yerine, sadece kendimize ait gezgin tr programlar yazma ansna sahibiz. WEBBROWSER KONTROL Bu blmde ki amacmz bu tr bir gezgini oluturabilmek iin gerekli olan WebBrowser kontrolnn zelliklerini aklamak olacaktr. WebBrowser kontroln kullanabilmemiz iin internet balantmzn olmas gerekir. Evinizde, Windows 95 veya NT iletim sistemlerindeki evrim ii balant(dialup ) ile modeminiz kullanarak bir servis salaycs zerinden veya iyerinizden veya okulunuzdan network aracl ile internete balanabilirsiniz. WebBrowser kontroln kullanarak oluturacamz gezginimizin alabilmesi iin bu balantnn gerekletirilmi olmas gerekmektedir. WebBrowser kullanmaya balamadan nce bu kullanl kontroln ne ie yaradn u ekilde admlandrabiliriz. 1.) Belirttiiniz adrese gider 2.) Oradaki HTML belgesini alr ve 3.) Bu HTML belgesini gstermeye altmz Web sayfalarna dntrr. HTML , Hypertext Markup Language kelimelerinin ba harflerinden oluan bir akronimdir. Web sayfalar HTML biimlerinde yazlan sayfalardr. WebBrowser kontrol ise Internet ten veya irketinizin

VISUAL BASIC LE YAZILIM GELTRME iindeki Intranet ten ite bu HTML sayfalarn alarak sizin iin otomatik olarak Web sayfalarna dntren bir taycdr. (Container) WebBrowser kontrolnn yapabildikleri sadece bunlarla snrl deildir. Bu kontroln zelliklerini ve metodlarn kullanarak sadece yazacak olduunuz birka satr kodla bir uygulamay mekanizmanza ekmek iin(download) veya kullancnn ziyaret ettii sayfalarn listesini kullanarak bu sayfalar arasnda ileriye veya geriye ynlendirme yapmak iin kullanabilirsiniz. ayet Internet Explorer n 3 veya daha sonraki srmn mekanizmanza kurmusanz WebBrowser kontrolne de sahipsiniz demektir. WebBrowser kontrol Microsoft un internet kontrolleri iinde bulunur. Ctrl+T ksa yol tuu ile veya Project/Components men komutu ile Components ileti penceresini aacak olursanz bu ekranda aadaki Microsoft Internet Controls seeneini seerek ara kutusuna dahil edebilirisiniz. Yukarda Microsoft Internet Controls seilip OK butonuna tklandktan sonra WebBrowser kontroln ara ubuunuzda grebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Navigate Metodu WebBrowser kontrolnn en nemli metodu Navigate metodudur. Bu metod, bilgi olarak, tek bir argman alr; bu argman, WebBrowser n grntlenmesini istediimiz lokasyonun adresini belirten bir stringten oluur. Form zerine yerletirdiiniz WebBrowser nesnesinin ad, webBrowser1 ise, bu metod aadaki gibi kullanlr: WebBrowser1.Navigate(.federal.com.tr) Burada www.arabul.com.tr ile belirtilen, eriebilmek istenen internet lokasyonunun adresidir. Bu adresin, http://.federal.com.tr eklinde yazlmasna gerek yoktur. nk, WebBrowser kontrol nesnesi, gerekli ksm kendisi eklemektedir. Aadaki rnek, form aldnda Federal n sayfasna balanacaktr.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki formda WebBrowser kontrol Federal in sayfasn hem almakta hem de alabildii kadarn ekranda grntlemektedir. Sayfa ekrana smad iin de kaydrma ubuklar grntlenmektedir. Yukardaki WebBrowser kontrolne form yklenirken sabit bir deer verdik. Bu sayfann yklenmesi bittikten sonra formumuz srekli olarak ayn sayfay grntleyecektir. Halbuki bizim amacmz formumuzun yani zerine yerletirdiimiz WebBrowser kontrolnn istediimiz adresleri grntlemesini salamak olmaldr. Bu ama iin formun stne aadaki gibi bir tane metin kutusu ve komut butonu ve bu kontrolleri WebBrowser kontrolnden ayrmak iin de bu kontrolleri iine alacak ereve kontroln (Frame)yerletirelim. Metin kutusunun ismini txtAdres ve butonun ismini cmdGoster, balklar ise sras ile http://federal.com.tr ve Gster olarak deitirelim.

VISUAL BASIC LE YAZILIM GELTRME Formumuzun tasarm anndaki grnts yukardaki gibi olacaktr. imdi komut butonunun click olayn aadaki Visual Basic kodunu girelim. Pr ivate Sub cmdGoster_Click() On Error Resume Next WebBrowser1.Navigate txtAdres.Text End Sub Bylece metin kutusuna bir internet adresi yazp Gnder balkl butona tkladmzda WebBrowser kontrolmz belirttiimiz adresteki anan sayfay alp grntleyecektir. Aadaki ekranda formumuzun baland adres ve bu adresteki sayfann WebBrowser tarafndan dntrlen web sayfas grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Balanmasn istemediiniz sayfalar varsa bunu Gster balkl butonun komut click olay prosedrn aadaki gibi deitirerek kontrol edebilirsiniz. Pr ivate Sub cmdGoster_Click() On Error Resume Next If InStr("sex.com", txtAdres.Text) Then MsgBox "Bu sayfa ok seksi bir sayfadr balanamazsnz" Else WebBrowser1.Navigate txtAdres.Text End If End Sub WebBrowser un Navigate metodunu kullanmadan nce On Error Resume Next ifadesini belirtmelisiniz. Aksi takdirde balantnn kopuk olduu srada programnz altrrsanz hata mesaj ile programnz krlacaktr. Navigate metodunun genel yazlm aadaki gibidir.

VISUAL BASIC LE YAZILIM GELTRME WebBrowserKonrolsmi.Navigate URL [Bayraklar,] [Hedef ereve smi,] [PostData,] [Balklar] URL, Uniform Resource Locator (Biimli Kaynak Yeri Saptaycs) kelimelerinin ba harflerinden oluan bir akronimdir. Grntlemek istediiniz yerin adresi iin kullanlr. Navigate metodunun tek zorunlu argmandr. Bayr aklar , (Flags) parametresinin kullanm istee baldr. Bu parametre kullanld takdirde, Internet te srf yaplrken uranlan yerin, bu srfe ait gezi tarihesinde(history list terimi iin gezi tarihesi demeyi uygun grdk) yer alp alamayacan belirler. Bayraklar (Flags) parametresi kullanld takdirde aadaki Tablo Int.1 deki deerleri alr: Tablo Int.1- Bayraklar (Flags) parametresinin deerleri SEMBOLK SABT DEER ANLAMI NavOpenInNewWindow 1 Lokasyon veya dosyay yeni bir pencere kullanarak aar NavNoHistory 2 Yeni eriilen lokasyonu gezi tarihesine eklemez NavNoReadFromCache 4 Cache bellekte saklanan bir kopya varsa, bu kopyay okumaya teebbs etme! NavNoWriteToCache 8 HTML sayfasn, lokal Cache bellek zerine yazma! Hedef er eve smi, (Target Frame Name) parametresi, kullanm istee bal olan bir dier parametredir. Kullanld takdirde, istenilen HTML sayfasnn yeni bir ereve(frame) iinde grntlenmesini salar. PostData, bu parametre de kullanm istee bal olan bir parametredir. HTML formlar ile alld takdirde kullanlr. Bu parametre kullanlmad takdirde , Navigate metodu, HTML GET metodunu kullanr, URL, bir Web sayfas deilse, bu parametre ihmal edilir.

VISUAL BASIC LE YAZILIM GELTRME Balklar , kullanm istee bal olan dier bir parametredir. Internet zerinde, kendisinden yklemek istediiniz Web sayfasn tayan HTML sunucusuna(server) ilave bilgi gnderilmesini salar. ayet eritiiniz HTML sunucusu, URL bilgisi ile belirlenmi dier eylemlere izin veriyorsa, bu parametre de kullanlabilir. LocationName ZELL WebBrowser kontrol nesnesinin o esnada grntlemekte olduu World Wide Web (WWW) e ait HTML sayfasnn baln grntler. ayet, lokal bir HTML sayfasna baklyorsa, bu durumda, LocationName zellii, dizin ya da dosyann tm yol adn gsterecektir. Form zerine yerletireceiniz bir metin kutusunun Text zelliini aadaki gibi atayarak, LocationName zelliinin ieriini grntleyebilirsiniz: Text1.Text=WebBrowser1.LocationName LocationURL ZELL WebBrowser kontrol nesnesinin o esnada grntlemekte olduu World Wide Web (WWW) e ait HTML sayfasnn adr esini (URL ini) vermektedir. ayet, lokal bir HTML sayfasna baklyorsa, bu durumda, LocationURL zellii, dizin ya da dosyann tm yol adn gsterecektir Gezginimizi daha ilevsel bir hale getirebilirsiniz. Bunu iin formunuza durum ubuu (Status bar) ekleyelim. Bunun iin Statusbar n Simple Text zelliine aadaki deerleri atamamz yeterli olacaktr. Pr ivate Sub Form_Load() StatusBar1.SimpleText = WebBrowser1.LocationURL End Sub Programmz altrp formun stne tkladmzda aadaki kty elde ederiz.

VISUAL BASIC LE YAZILIM GELTRME Fakat bu sonucu elde etmek iin formun stne tklatmak yerine WebBrowser n tetikledii olaylar kullanmamz daha uygun olacaktr. WebBrowser kontrol bir sayfaya balanmadan nce BeforeNavigate olay alr. Sayfa yklenmeye balamadan nce ilemi iptal etmek iin Cancel argmanna False deerini atamak gerekir. Bu olay prosedrnn dier parametreleri URL, Flags(Bayraklar), TargetFrameName(Hedef ereve ismi) ve Header s(Balklar) daha nce izah edilmiti. Ykleme ii devam ettii sre iinde ise ProgressChange olay belli aralklarla srekli olarak altrlr. Progress ve Progr essMax isimli iki parametresi bulunur. Progress parametresinin 1 olmas ilemin sona erdiini gsterir. Ykleme ilemi bir ilerleme ubuu ile kullancya aktarlmak istenirse aadaki forml kullanlabilir. Progress*100/progressMax Ykleme ii sona erdiinde de DownloadComplate olay alr. ler yolunda giderse ilem sona erdiinde alr. Fakat ykleme ii

VISUAL BASIC LE YAZILIM GELTRME kesildiinde veya bir hata olutuunda da alr. Bu olay NavigateComplate olay ile benzermi gibi grnse de ondan farkldr. NavigateComplate olay sadece WebBrowser kontrol belirtilen URL adresine baarl bir ekilde ulatnda alr. Ykleme esnasnda kullancya programn ykleme ii ile megul olduunu gsteren mouse gstergesi bu olay prosedr iin deitirilebilir. imdi aadaki kod satrn programnza ekleyelim. Pr ivate Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Var iant, Flags As Var iant, TargetFrameName As Var iant, PostData As Var iant, Headers As Var iant, Cancel As Boolean) On Error Resume Next StatusBar1.SimpleText = "Sayfaya balanyor..." & URL MousePointer = vbHourglass End Sub Pr ivate Sub WebBrowser1_DownloadBegin() On Error Resume Next StatusBar1.SimpleText = "Ykleniyor..." End Sub Pr ivate Sub WebBrowser1_DownloadComplete() On Error Resume Next StatusBar1.SimpleText = "Aktif sayfa:" & WebBrowser1.LocationName & "URL =" & WebBrowser1.LocationURL MousePointer = vbDefault End Sub Pr ivate Sub WebBrowser1_NavigateComplete2(ByVal pDisp As Object, URL As Var iant) On Error Resume Next StatusBar1.SimpleText = WebBrowser1.LocationURL End Sub Programmz altrrsak aadaki grnmleri elde edebiliriz.

VISUAL BASIC LE YAZILIM GELTRME Programmz yeni bir adrese balanyor. Durum ubuunda Ykleniyor... ifadesi grnebilir. Aada ise ykleme iinden sonraki durum ubuu grlebilir.

VISUAL BASIC LE YAZILIM GELTRME Bu ilavelerden sonra hemen hemen btn tarayclarda bulunan ara ubuundaki butonlar programmza ekleyebiliriz. Bunlar bir ara ubuu veya buton eklinde tasarlamak, butonlara resimler ilave etmek tamamen size kalm bir itir. Ayrca WebBrowser kontrolnn boyutlarn da formun deien boyutlarna gre ayarlamak gerekir. Butonlar frButonPanel adndaki ereve nesnesinin iine, metin kutusunu ve Gster balkl butonu ise frURLPanel isimli ereve nesnesinin iine yerletirelim. Bu arada formun adn da frmGezgin olarak deitirmeyi unutmaynz. Pr ivate Sub cmdDur_Click() On Error Resume Next WebBrowser1.Stop End Sub Pr ivate Sub cmdGer i_Click() On Error Resume Next WebBrowser1.GoBack End Sub Pr ivate Sub cmdGoster_Click() On Error Resume Next WebBrowser1.Navigate txtAdres.Text End Sub Pr ivate Sub cmdHome_Click() On Error Resume Next WebBrowser1.GoHome End Sub Pr ivate Sub cmdIler i_Click() On Error Resume Next WebBrowser1.GoForward End Sub Pr ivate Sub cmdYenile_Click() On Error Resume Next WebBrowser1.Refresh End Sub Pr ivate Sub cmdAr a_Click() On Error Resume Next WebBrowser1.GoSearch End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Form_Resize() StatusBar1.Height = 1.2 * TextHeight("I") WebBrowser1.Left = 0 WebBrowser1.Top = frURLPanel.Top + frURLPanel.Height WebBrowser1.Width = frmGezgin.ScaleWidth WebBrowser1.Height = frmGezgin.ScaleWidth - frButonPanel.Height frURLPanel.Height - StatusBar1.Height End Sub GoBack METODU Web sayfasn dolarken, bulunduunuz sayfadan bir nceki Web sayfasna geri dner. GoForward METODU Web sayfalarn dolarken, daha nceden eriilmi bir Web sayfalar dizisinde, bulunulan sayfadan bir sonraki sayfaya geii salar. GoHome METODU Internet iindeki Web sayfalar gezintisinde, gezinin balad ilk sayfaya dn salar. GoSear ch METODU Web zerinde arama ilemlerinin gerekletirilebilecei sayfaya gidii salar Programn son hali aadaki gibidir.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda <- balkl butona basacak olursak bir nceki web sayfas ekrana gelecektir. Ayn zamanda formun boyutlarn deitirecek olursanz form zerindeki kontroller de yerlerini ve byklklerini yeni boyutlarna gre dinamik olarak ayarlayacaklardr.

VISUAL BASIC LE YAZILIM GELTRME BLM 5 VISUAL BASIC TE VER TPLER

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC TE VER YAPILARI VE TPLER Her programlama dilinde olduu gibi Visual Basic te de eitli veri yaplar ve veri tipleri mevcuttur. Programcnn dilin imkanlarna daha iyi hakim olabilmesi iin bu yaplar tanmas zorunludur. SABTLER(CONSTATS) Program iinde deeri deitirilemeyen, eitli veri yaplardr. rnein : 1234 eklindeki bir sabit, Visual Basic asndan bir tam say sabittir. 56666 sabiti veya Trkiye sabiti ise String tr sabitlere rnektir. String tr sabitler, ift trnak sembolleri iinde yazlrlar ve matematiksel ilemlere sokulamazlar. Visual Basic te ou kez, sabitlere bir isim atanarak, program boyunca, bu isimle armak ta yaygn bir uygulamadr. Bu i iin Const bildiri szcne ihtiya vardr. rnein:C onst PiSayisi:3.14159 tanm ile PiSayisi ad verilen ve deeri 3.14159 olan bir sabit tanmlanmaktadr. Sabit tanmlama szcnn bana Pr ivate ya da Public szckleri konularak, sabitin sadece tanmland modlde ya da modllerde tannmas salanabilir: Private Const BnSabit=60 Public Const BxSabit=80 Public tr bildiriler, sadece standart modllerin Gener al ksmnda tanmlanabilir. Private sabitler ise, her tr modln General ksmnda tanmlanabilir. Visual Basic in ayrca kontrol nesneleri ya da sistemle ilikili olarak kulland, nceden tanmlanm ok sayda sabit vardr. rnein: vbCrLf sabiti enter tuuna basarak krsr satr bana alma ilemine kar gelir. (CHR$(13)+(CHR$(10) fonksiyonlar. CHR$ fonksiyonuna baknz.) vbNullChar sabiti, boluk karakterine kar gelir. (CHR$(10) fonksiyonu) vbLf sabiti, yeni satr bana gei ilemini simgeler. (CHR$(10)) vbBack sabiti ise, Back Space tuunu simgeler. (CHR$(8))

VISUAL BASIC LE YAZILIM GELTRME Visual Basic in nceden tanmlanm sabitleri hakknda bilgi almak iin aadaki yolu izleyebilirsiniz: 1)Help/Index i seiniz. ekil S.1 deki ekran gelir: ekil S.1 - Help Mens erikleri 2)Bu ekranda Bulmak iin anahtar szc girin etiketli kutuya constants, Visual Basic ifadesini yazp Grntle butonunu tklaynz. lgili dokman help penceresinin sa tarafnda grntlenecektir. (ekil S.2)

VISUAL BASIC LE YAZILIM GELTRME ekil S.2 Visual Basic sabitlerinin tam bir listesi ekil S.2 teki ekranda, Visual Basic sabitlerinin tam bir listesi bulunmaktadr. Kullanc bu listede ilgilendii gruba tklayarak o konudaki sabitlerin listesine eriebilir. rnein, Color Constants (Renk Sabitleri) seilmi olsun. Bu durumda, ekil S.4 teki, renk sabitleri listesine eriilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil S.3 Renk Sabitleri listesi DEKENLER(VARIABLES) Programn ak iersinde, deerleri srekli olarak deiebilen veri yapsdr. rnein: x=23 y=12 x=x+3 y=y+x eklindeki atama ifadeleri ile, x deikeninin deeri nce 23 ve y deikeninin deeri 12 olarak atanmtr. Sonra x in deeri 26 ve y nin deeri ise 38 olmutur. Atama ifadesinde, = sembolnn sa tarafndaki ifade hesaplanr ve bulunan sonu sol taraftaki deikenin bellekteki yer ine atanr . Bu anlamda, bir deikene yeni bir deer atanrsa, bu deikenin nceki deer i silinecektir .

VISUAL BASIC LE YAZILIM GELTRME DEKENLERE SM VERME Visual Basic de deikenlere isim vermek iin, aadaki kurallara geerlidir: 1) Deiken isminin ilk karakteri bir harf olmaldr. 2) Deiken ismi oluturulurken, dier karakterler, harf, rakam, ya da alt izgi ( ( _ ) sembol olabilir. 3) Kullanlan harflerin kk ya da byk harf olmasnn nemi yoktur. 4) Deiken isim uzunluklar 255 karaktere kadar olabilir. 5) Deiken isimleri iinde dier semboller ( + , -, / ,boluk vb) bulunmamaldr . RNEK: Geerli Deiken simler i MAAS Yas1 NetMaas Genel_Toplam Geersiz Deiken simleri 1X A-1 Brut Maas Deikenlere isim verirken, deikenin saklayaca bilgi ile ilikili deiken isimleri semekte, pratik olarak byk fayda vardr. rnein, bir deikende maa bilgisi saklanacaksa, bu deikene A adn vermek yerine MAAS adn vermek daha anlaml ve faydal olacaktr. DEKEN TRLER Bu blmde, Visual Basic deikenleri iin kullanlabilecek veri trleri tantlacaktr. INTEGER(TAM SAYI) Bir deikenin sonunda % sembol varsa ya da DefInt bildiri deimi ile tanmlanmsa, bu deikenin tr Integer olacaktr. Integer deikenler, bellekte 2 Byte yer kaplar ve alacaklar deerler 32768 ile +32767 aralnda olabilir. Integer tr deikenler ile daha hzl hesaplama yaplabilir.

VISUAL BASIC LE YAZILIM GELTRME rnek: DefInt A,B D%=5678 A=789 B=50000 Hatal atama LONG INTEGER(UZUN TAM SAYI) Sonundaki sembol & sembol olan ya da DefLng szc ile tanmlanm olan deikenlerdir. Bellekte 4 Byte yer kaplarlar. Alabilecekleri deerler, -2,147,483,648 ile + 2,147,483,647 aralnda olabilir. rnek: DefLng A-C a=234555566 b=567777777 Bu rnekte, DefLng ile, ilk harfi A,B, ve C olan tm deikenler Long Integer olarak tanmlanmtr. SINGLE PRECISION (TEK DUYARLIKLI) Deikenin sonunda ! sembol varsa, veya DefSng bildiri deimi ile tanmlanmsa bu deiken tek duyarlkl (Single Precision) tipte bir deikendir. Bu tip deikenler, bellekte 4 Byte yer kaplar. Deer aral negatif saylar iin 3.402823E38 ile -1.401298E-45 arasndadr .Pozitif saylar iinse bu aralk 1.401298E-45 ile 3.402823E38 arasndadr. Bu tipte deikenlerde tutulan say, 7 haneye kadar hassastr. Yani, X!=12390638.234 eklindeki bir atamada, sondaki 8.234 ksm yuvarlatlacaktr. Tek duyarlkl saylarla bilgisayardaki hesaplamalar, integer ve long integer tipindekilere gre daha yava olacaktr. DOUBLE PRECISION(FT DUYARLIKLI) smin sonundaki sembol # sembol olan ya da DefDbl bildiri szc ile tanmlanm olan deikenlerdir. IEEE nin 64-bit (8-byte) kayan noktal say formatna gre, negatif saylar iin 1.79769313486232E308 ile -4.94065645841247E-324

VISUAL BASIC LE YAZILIM GELTRME arasnda ve pozitif saylar iin 4.94065645841247E-324 ile 1.79769312486232E308 arasnda deerler alabilirler. lk 16 haneye kadar hassastrlar; daha sonras yuvarlatlr. STRING(KARAKTER ZNCR) Sonunda $ sembol bulunan ya da DefStr bildiri szc ile tanmlanm olan deikenler, string tr deikenlerdir. String tr deikenler, iinde metin tr bilgi bulunan deikenlerdir ve dolays ile bunlarn matematiksel ilemler iinde grlmesi hataldr. ki eit string vardr: Bunlar sabit uzunluklu ve deiken uzunluklu string veritipleridir. Sabit uzunluklu string veritipi deikenlerin uzunluu yaklak 1-65400 aralnda olabilir. Deiken uzunluklu string veritiplerinde ise bu uzunluk, yaklak olarak 0-2000000000 arasndadr. rnek: X$=Text12.Text eklindeki bir komutla, Text12 adl metin kutusunun iindeki metin bilgisi, X$ adl string deikenine atanmaktadr. CURRENCY (PARASAL FORMAT) Deiken ismi sonundaki sembol @ sembol olan ya da DefCur bildiri szc ile tanmlanm olan deikenlerdir. Bunlar 8 Byte uzunluundadr. Ondalk noktalardan nce 15 ve ondalk noktalardan sonra 4 hane olacak ekilde formatlanmlardr. Buna gre: - 922,337,203,685,477.5808 ile 922,337,203,477.5807 arasnda deerler alabilirler. DATE(TARH) Tarih ve zaman trndeki bilgileri saklamak iin kullanlan deikenlerdir. Bellekte 8 Byte uzunlukta yer kaplarlar. 1 Ocak 100 ile 31 Ar alk 9999 arasndaki zamanlar iin kullanlabilir. DefDate bildiri szc ile tanmlanrlar. Tarih tr deikene, bir tarih bilgisi atanacaksa, bu bilgi # sembolleri arasna alnmaldr. rnek: DefDate T Tar=#February 3,1996#

VISUAL BASIC LE YAZILIM GELTRME Bir tarih bilgisi iinde zaman belirtilmezse, zamann gece yars olduu kabul edilir. BYTE Byte deiken tr, Visual Basic 5.0 ile gelmi bir yeniliktir. 0 ile 255 arasndaki iaretsiz tam saylar saklamak iin kullanlr. DefByte bildiri szc ile tanmlanr. BOOLEAN Boolean tipi deikenler DefBool bildiri szc ile tanmlanrlar. Sadece True(doru) ve False(yanl) deerlerinden birini alabilirler. Bellekte 2 Byte lk yer igal ederler. Print ile ekrana aktarlrlarsa True veya False olarak grntlenirler. Write# gibi bir komutla dosyaya aktarlrlarsa #True# ya da #False# eklinde aktarlrlar. Boolean tipte bir deiken, nmerik bir deikene atanarak tip dnm yaplrsa, True deeri 1 e ve False deeri de 0 a dnr. VARIANT Variant veri tipi PC-Basic te mevcut olmayan ve Visual Basic e de 2.0 versiyonundan itibaren eklenmi olan bir veri tipidir. Variant tipindeki deikenler iin, DefVar bildiri szc ile bildirimde bulunulabilir. Bir deiken iin hibir tip bildiriminde bulunulmamsa, tipi Variant olarak kabul edilir. Bu anlamda, Variant tipte bir deikene her tr bilgi(Date,nmerik,string) yklenebilir. Variant veri tipi en az 16 Byte yer kaplar. Variant tipi bir deiken iine hangi tip veri yklendii ise IsNumer ic, IsDate vb. gibi tip kontrol fonksiyonlar ile kontrol edilebilir. KULLANICI TARAFINDAN BELRLENEN VER TP(USER DEFINED TYPES) Visual Basic iinde, standart PC-Basic te mevcut olmayan bir olanak daha vardr. eitli tipten deikenleri bir araya getirerek tek bir isim

VISUAL BASIC LE YAZILIM GELTRME altnda toplamak! Elde edilen bu yeni veri tipine Kayt(Record) ad verilir. Bu tip bir veri yaps C ve Pascal gibi dillerde de mevcuttur. Bir kayt tanmlamak iin nce bir kod modlnn Declarations ksmna aadaki gibi bir bildirimde bulunulur: Type PerKayit Sicil As Integer Ad As Str ing*10 Soyad As Str ing*12 Brut As Double Adres As String*50 End Type Daha sonra herhangi bir form ya da modln Declarations ksmna Private Per As PerKayit veya Public Per As PerKayit eklinde bildirimde bulunulursa, PerKayit ile tanmlanm bir ablon veri yaps trnden Per adl gerek bir veri tanmlanm olur. stenirse bir prosedrn iinde de Static PerBil As PerKayit eklinde bir tanmlama da yaplabilir. Tanmlanan kayt tipi veri yapsn oluturan bileenlere erimek iinse aadaki trde ifadeler kullanlabilir: Per.Sicil = 123 Per.Ad = Ahmet Per.Soyad = Caner Per.Brut = 123000000 Per.Adres = Cumhuriyet Caddesi 45-Manisa TP BLDRM N DIM DEYM yi bir program oluturmak iin, deikenlerin tiplerini nceden bildirmek faydal bir alkanlktr. Tip bildiriminde bulunulmazsa, deikenin tipi Variant olarak kabul edilir ve bu durumda gereksiz yere daha fazla bellek kullanlacaktr. Deikenlerin tipini belirtmek iin alternatif bir yol Dim deyimini kullanmaktr: Dim x As Integer Dim y As Currency Dim z As String

VISUAL BASIC LE YAZILIM GELTRME Bildirimleri x,y ve z deikenleri sras ile, Integer , Cur r ency ve String tipleri atanmtr. Dim a,b,c,d As Double eklindeki bir ifade, sadece d yi Double olarak atayacak, a,b ve c deikenleri ise Variant olarak kalacaktr. Doru kullanm ise Dim a As Double, b As Double, c As Double, d As Double eklinde olmaldr. ZORUNLU TP BLDRM Visual Basic te deikenler iin tip bildirimi zorunlu deildir. Fakat yazlmc isterse bunu zorunlu hale getirebilir. Bunu iin u admlar izlenmelidir. ( Tools/Options mensn seip karmza kan pencerede Editor seenei seeriz, burada Code Settings erevesi iindeki Require Variable Declar ation seenei seilirse, Visual Basic te zorunlu olmayan deikenlerinin tiplerinin belirtilmesi eylemi zorunlu hale getirilmi olur ve herhangi bir modln General Declar ations ksmna bu amala Option Explicit komutu eklenir.) a)Kod penceresi alr. b)Gener al, Declarations ksm seilir. c) Bu blme Option Explicit ifadesi girilir. Bu durumda aadaki kod altrlrsa, ilk karlalan deikende, Variable Not Defined (Deiken Tanmlanmam) eklinde hata mesaj alnacaktr. Deikenler iin bildirimde bulunulmad iin bu mesaj gelmektedir.

VISUAL BASIC LE YAZILIM GELTRME DEKEN SMLERNE GRE TP ATAMA Def tip bildirimi komutlar aadaki rneklerdeki gibi kullanlrsa, deikenlere isimlerinin zelliklerine gre tip atanabilir. rnek: DefInt A-D Bu ifade ile, ismi A,B,C,D harfleri ile balayan tm deikenler Integer olarak tanmlanmtr. rnek: DefDate S,T S ve T harfleri ile balayan deikenler Date trnde tanmlanmaktadr. DEKENLER GEERLLK BLGES Aksi belirtilmedii srece, Visual Basic te tanmlanan deikenler, sadece kullanld prosedr iinde geerlidir. Baka bir deyile, deikenler, bulunduklar prosedrler iin lokal(local) deikenlerdir. PROSEDRLER ARASI MTEREK DEKENLER Baz deikenlerin, prosedrler arasnda mterek kullanm gerekebilir. Bunu salamak mmkndr. Bu tip mterek kullanlabilen deikenlere form dzeyinde veya modl dzeyinde deikenler denir. Form dzeyinde deiken tanmlamak iin, formun General ,Declar ations blmne, bu deikenleri Dim deyimi ile yerletirmek gerekir. rnein, eklinde bir tanmlama ile, x ve y deikenleri formun tm prosedrleri tarafndan tannacaktr. Ayn deiken, hem form dzeyinde hem de lokal olarak tanmlanmsa, lokal olarak kabul edecektir. PRIVATE SZC Visual Basic 4.0 la gelen ve 5.0-6.0 srmnde de olan yeniliklerdendir. Pr ivate szc ile, form dzeyinde deikenler belirleyebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Formun General,Declarations ksmna Dim yerine Pr ivate szcn kullanarak ta deikenleri form dzeyinde geerli klabilirsiniz. Gerekte, Dim deyimi ile Pr ivate deyimi birbiri ile deitirilebilir ekilde kullanlabilmektedir. STATK VE DNAMK DEKENLER Default olarak (aksi belirtilmedike nceden atanan durum) tm lokal deikenler dinamiktir ; yani olay prosedrnn her arlnda, bir nceki arl sonunda hesaplanm deerlerini saklamazlar; bunun yerine prosedr iinde ilk atanan deerleri ile yeniden ileme balarlar. Lokal deikenleri, prosedrn her arlnda, bir nceki arl sonunda hesaplanm olan deerlerini salar hale getirmek iin, Static szc ile tanmlanmalar gerekir. rnein: Static s As Integer eklinde tanmlanan bir s deikeni, prosedrn yeni bir arlnda, bir nceki deerini saklam olarak ilem grecektir. RNEK: 1) Form zerine bir komut butonu yerletiriniz. Caption zelliini STATK olarak deitiriniz. Bu komut butonuna bal olarak aadaki kodu giriniz. Pr ivate Sub Command1_Click() Dim x As Double x = x + 10 MsgBox x End Sub 2)Run/Start ile altrnz. STATK isimli butona her tklattnzda ekranda aadaki ekildeki gibi 10 deerini greceksiniz. nk, Dim ile tanmlanan x deikeni dinamiktir.

VISUAL BASIC LE YAZILIM GELTRME 3) imdi Dim szcn Static ile deitirerek kodu aadaki hale getiriniz: Pr ivate Sub Command1_Click() Static x As Double x = x + 10 MsgBox x End Sub 4)Run/Start ile kodu altrnz. Bu kez, STATC butonuna her tkladnzda, x in deerinin, bir nceki deerin 10 fazlas olarak deitiini greceksiniz. 3. tklatma sonucu, x in deeri, aadaki ekilde grld gibi, 30 olacaktr. STRIG TR DEKENLER String tr deikenler, matematiksel ilemlere sokulmayan deikenlerdir. String tr deikenler arasna konulan + sembol ise, ekleme anlamndadr. rnein, X$= stanbul Y$= niversitesi Z$= Bilgisayar Mhendislii Blm C$=X$+Y$+Z$ ifadeleri sonucunda, C$ n deeri stanbul niversitesi Bilgisayar Mhendislii Blm eklinde oluacaktr.

VISUAL BASIC LE YAZILIM GELTRME SABT UZUNLUKLU STRINGLER Sabit uzunluklu string tanmlamak, baz uygulamalar iin gerekli olabilir. rnein: Dim Ad As String * 8 eklinde bir tanmlama ile Ad isimli deiken, string trnse ve 8 karakter uzunluunda tanmlanmtr. Bu durumda Ad= Nizamettin eklinde bir atama ile, Ad deikenine sadece Nizamett paras atanacaktr. Yine, Ad= Aye atamas sonucunda da Ad deikeninde saklanacak olan ey ise, Ad= Aye eklinde drt boluklu bir string olacaktr. BRDEN OK FORM LE ALIMA Uygulamanzn kapsam geniledike, tek form zerinde tasarm yapmak imkansz hale gelebilir. Bu durumda, doal olarak projenize yeni formlar eklemeniz gerekecektir. Bu ilemi gerekletirmek iin Project mensnden Add Form seeneini kullanmanz gerekecektir. Visual Basic, aktif proje iindeki formlarn listesini Project penceresi iinde, .FRM uzants ile gsterir: Her form ayr bir dosya iinde saklanr. Formlara ait dosyalarn nerede sakland bilgisi ise, .vbp uzantl proje dosyasnda tutulur. Visual Basic default olarak formlara Form1, Form2, Form3 vb eklinde isim verir. Gerekli duyulduu takdirde, formun ad Name zellii ile deitirilebilir. Genel olarak, bir form zerindeki kontrol nesnesine ait zellik deeri, FormAd.KontrolAd.zellik=Deer eklinde atanabilir. rnein: Form2.Command1.Text= PRESS eklinde bir atama, 2.Fromdaki Command1 adl komut butonun Text alanna PRESS deerini yerletirecektir. cra esnasnda, uygulamanz belli bir anda bir

VISUAL BASIC LE YAZILIM GELTRME formu grntleyecektir. Dier formlarn yklenebilmesi iin, bunun uygulamada kod iinde belirtilmesi gerekir. Balang formu(StartUp Form) genellikle Form1 dir. Bunu deitirmek iin, Project/Project Proper ties mensn seip General butonunu aktif hale getirip orada Star tUp kutusu yanndaki butonu tklayarak istediiniz formu yerletirmelisiniz. (ekil S.4) ekil S.4 StartUp formun belirtilii FORMLAR ZERNE UYGULANABLEN METOTLAR Bu blmde, zellikle ok sayda form kullanldnda, kullanlmas zorunlu olacak baz form metotlar aklanacaktr. SHOW METODU Formun ekranda grntlenmesini salar. Yazl biimi: FormAd.Show eklindedir.

VISUAL BASIC LE YAZILIM GELTRME LOAD METODU Formu belee ykler fakat ekranda grntlemez. Yazl biimi: Load FormAd eklindedir. HIDE METODU Formu ekrandan uzaklatrr fakat bellekten silmez! Yazl biimi : FormAd.Hide eklindedir. Form ekrandan silinse bile, kod iinde, formun zelliklerine referans verebilir. Fakat form dzeyindeki deikenlerin deerleri ekranda grntlenmez. O anda geerli olan formu gizlemek iin, form ad olarak Me szc kullanlabilir. Me.Hide UNLOAD METODU Formu bellekten siler. Bu durumda, form dzeyinde atam olan tm bilgi silinecektir. Yazl biimi: Unload.FormAd eklindedir. VISUAL BASIC TE SAYILAR VE ARTMETKSEL OPERATRLER Visual Basic te ondalk saylarn, ondalk ksm, tam ksmndan bir nokta ile ayrlr. Tam ksmndaki basamaklar birbirinden ayrmak iin de , sembol kullanlamaz. Bir tam say deikene, bir ondalk say atanrsa, otomatik olarak yuvarlatlr. rnein: Dim x As Integer x=123.789 atamas sonucu x deikenine 124 deeri atanacaktr String tr bir bilgi nmerik olarak kullanlacaksa VAL fonksiyonu ile dntrlr. rnein: x=12* 120 ifadesi hatal olmasna ramen

VISUAL BASIC LE YAZILIM GELTRME x=12*VAL( 120 ) ifadesinin sonucu ise 1440 olacaktr. VAL fonsiyonunun simetrii olan fonksiyon STR fonksiyonudur. Nmerik bir ifadeyi stringe evirir. Daha ziyade, saysal bilgiler zerinde string tr fonksiyonlar uygulayabilmek amac ile kullanlr. Pozitif saylar dntrrken nlerine bir boluk yerletirir. rnein: STR(1280) ifadesinin sonucu 1280 stringi olacaktr. Oysa, STR(-2340) ifadesi ise, -2340 eklinde dntrlecektir. FORMAT fonksiyonu ile, saylar belirli bir formata dntrlerek grntlenebilirler. rnein: S1$=Format(2457.9, ##,##0.00 ) ifadesi ile S1$ stringi, 2,457.90 eklinde, S2$=Format(876.9, ###0.00 ) ifadesi ile S2$ stringi 876.90 eklinde ve S3$ =Format(7, 0.00% ) ifadesi ile de S3$ stringi 700.00% eklinde elde edilecektir. ARTMETKSEL LEM OPERATRLER Visual Basic te aritmetiksel ilem operatrleri, ncelik sralarna gre aadaki tabloda grld gibidir: OPERATR TANIMLADII LEM ^ st alma * arpma / Blme \ Tam say blme MOD Tam say blmede kalan alma (modler ilem) + Toplama - karma Burada * ve / nin ncelikleri ayndr. Ayn ekilde + ve da ayn nceliktedir. 10/3 ifadesi, 3.333333 deerini verirken, 10\3 ifadesinin sonucu ise 3 olacaktr. 7 Mod 2 ifadesinin sonucu, 7 nin 2 ile blmnden kalan say yani 1 dir. rnein: 3 + 6 * 2 ^ 3 2 * 8 / 4 \ 3 Mod 3 ilemini sonucu 50 olarak hesaplanacaktr. nce 2^3 ifadesi 8 olarak hesaplanr ve ifade 3 + 6 * 8 2 * 8 / 4 \ 3 Mod 3 ekline gelir. Sonra * ve / ler hesaplanarak ifade

VISUAL BASIC LE YAZILIM GELTRME 3 + 48 4 \ 3 Mod 3 haline gelecektir. Sonra / ilemi yaplr ve 3 + 48 1 Mod 3 ifadesi elde edilir. Nihayet 3 + 48 1 ifadesi hesaplanarak 50 deeri bulunur. Parantezler kullanlarak nceliklere deitirilebilir. rnein: 3 + 10 / 4 + 1 ifadesinin sonucu 6.5 iken, 3 + 10 / (4+1) ifadesinin sonucu 5 olacaktr.; nk ikinci ifadede nce parantez ii hesaplanr. rrasyonel ifadelerin (kkl saylarn) hesaplanmas iin, bu saylarn stl ifadelerinden yararlanlr. rnein: matematikteki eklinde bir ifade, Visual Basic te (3+1/2)^(1/2) eklinde yazlarak hesaplanabilir. Geri karekk iin zel bir fonksiyon vardr. Bu SQR fonksiyonudur. Yani yukardaki ifade SQR(3+1/2) eklinde de hesaplanabilir. Fakat karekk dndaki irrasyonel ifadeler iin bu tr zel fonksiyonlar yoktur; yaplacak tek ey, ifadeyi stel forma evirerek hesaplamaktr. rnein : ifadesini hesaplamak iin, bu ifadeyi Visual Basic te (1+2/3)^(1/3) veya (1+2/3)0^.333333 eklinde yazmak gerekir. TARH TR DEKENLERLE LEMLER Tarih tr deikenler zerinde de matematiksel ileler tanmlanabilir. rnein: Dim tar As Date Dim bar As Date tar = Now bar = tar - 7 Print bar bar = tar + 7 Print bar print bar ifadeleri ile, tar deikenine, bulunulan gnn tarihi atanmakta, ilk print ile, bulunulan gnden 7 gn nceki ve ikinci print ile de, bulunulan gnden 7 gn sonraki gnn tarihi yazdrlmaktadr. TP DNM FONKSYONLARI Visual Basic te, bir matematiksel ifadenin sonucu, tip dnm fonksiyonlar kullanlarak, arzu edilen tipe dntrlebilir. Bu fonksiyonlar aadaki tabloda verilmitir: Fonksiyon levi CInt Matematiksel ifadeyi yuvarlatarak tam sayya dntrr. 3+1/ 2 3 1+ 2 / 3

VISUAL BASIC LE YAZILIM GELTRME CLng Matematiksel ifadeyi yuvarlatarak uzun tamsayya dntrr. CSng Matematiksel ifadeyi tek duyarlkl (single) tipe dntrr. CDbl Matematiksel ifadeyi ift duyarlkl (double) tipe dntrr. CCur Matematiksel ifadeyi parasal(Currency) formata evirir. CStr fadeyi stringe evirir. CVar fadeyi Variant trne evirir. CBool Matematiksel ifadeyi lojik (boolean) tre evirir. CByte Matematiksel ifadeyi Byte a evirir. CDate Uygun verilen bir ifadeyi tarih(Date) trne evirir. RNEK UYGULAMA : ifadesini, x in klavyeden girilecek deeri iin hesaplatp yazdran bir uygulama gelitiriniz. ZM: Aadaki admlar uygulaynz: 1)Form zerine bir komut butonu yerletiriniz. Bu butonu seerek Properties penceresine giriniz ve Caption zelliini seerek bu zellii HESAPLA olarak deitiriniz. (ekil S.5) ekil S.5 Komut butonunu yerletirme ve Caption zelliini atama 2)Komut butonunu zerine iki kez tklatarak (double-click) kod penceresini getiriniz ve ekil S.6 daki kodu giriniz: y = 3 x + 5 / (x + 8)

VISUAL BASIC LE YAZILIM GELTRME ekil S.6 Command1_Click Olay prosedr 3)Run mensnden Star t seiniz. HESAPLA butonunu mouse yardm ile tklatnz. ekil S.7 deki ekran gelir: ekil S.7- x deerinin girildii ekran 4) Dikdrtgen eklindeki kutuya x iin dndnz deeri giriniz. (rnekte12). OK butonunu seiniz. 5) ekil S.8 deki gibi y nin hesaplanarak ekrana aktarldn greceksiniz: ekil S.8- y nin hesaplanan deeri ekrana aktarlyor.

VISUAL BASIC LE YAZILIM GELTRME Bu uygulamada, bilgi girii InputBox ve ekrana bilgi aktarl da MsgBox fonksiyonlar ile gerekletirilmitir. Bu fonksiyonlar iin kitabn ilgili blmlerine bakabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 6 BLG GR VE IKII KONTROL KOMUTLARI

VISUAL BASIC LE YAZILIM GELTRME InputBox(Mesaj) FONKSYONU Visual BASIC programnn icras esnasnda, klavyeden bilgi girii yaplmasnn salayan bir fonksiyondur. Mesaj ksm kullanlmsa, bu ksm, bilgi giri penceresinde aynen grnecektir. Bilgi giri penceresinden girilen bilgi, string(karakter zinciri) trnde kabul edilir. Eer nmerik olarak kullanlacaksa VAL fonksiyonu ile nmerie dntrlmelidir. RNEK: Form zerine bir komut butonu yerletiriniz. Komut butonunu Caption zelliini BLG GR olarak deitiriniz ve kod penceresine double-click ile getirerek aadaki kodu giriniz: Yukardaki kod Run/Start ile altrlp komut butonu tklatlrsa, InputBox fonksiyonundan tr ekil G.1 deki gibi bilgi giri penceresi ekrana gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil G.1 Bilgi giri kutusu Burada, fonksiyondaki mesaj ksm aynen grnecek, bilgi giri kutusuna girilecek bilgi ise string olarak A$ deikenine atanacaktr. MsgBox Mesaj, Grnm, balk KOMUTU Bir programn almas sonucu elde edilen baz sonular ya da gerekli mesajlar ekrana aktarmak iin kullanlr. Grnm parametresinin kullanm zorunlu deildir. Kullanlrsa aadaki deerleri alabilir: Deer Kar gelen sembol 16 Stop sembol 32 Soru iar eti 48 nlem iareti 64 Bilgi sembol RNEK: Form zerine bir komut butonu yerletiriniz, Caption zelliini MESAJ olarak ataynz ve komut butonunu kod penceresine ekil G.2 deki kodu giriniz.

VISUAL BASIC LE YAZILIM GELTRME Run/Star t ile kodu altrnz, Komut butonunu clickleyiniz. st say limiti 10 olarak girmiseniz, Grnm parametresi 32 olarak olutuu iin ekil G.3 teki sonucu elde edeceksiniz. ekil G.3 Grnm parametresinin 32 olmas durumunda kt Grnm parametresi 64 olsa idi ekil G.4 teki kt elde edilirdi. ekil G.4 Grnm parametresinin 64 olmas durumunda kt

VISUAL BASIC LE YAZILIM GELTRME KULLANICI LE ETKLEML MESAJLAR MsgBox() FONKSYONU Pek ok uygulamada, ekrana yazdrlan mesaj sonucunda kullancnn mesaj pasif olarak izlemesinden ziyade mesaja aktif olarak cevap vermesi ve bu cevaba gre de bir ilem yaplmas sz konusu olmaktadr. Bu tr bir ilemi gerekletirebilmek iin MsgBox fonksiyonu kullanlr. Fonksiyonun yazl biimi aadaki gibidir: Cevap%=MsgBox(Mesaj$,Grnm%,Balk$) Mesaj$ ve Balk$ n fonksiyonlar yukarda MsgBox komutunda belirtildii gibidir. Grnm% parametresi ise MsgBox komutu ile verilen tablo deerlerini alabilecei gibi, Tablo 1, Tablo 2 ve Tablo 3 teki deerleri de alabilir. Ayrca Grnm% parametresinin deeri, bu tablolardan seilen nmerik deerlerin toplamna da eit olabilir. Tablo 1.Grnm% Parametresi Seenek Deerleri Deer Kar gelen seenek 1 Ok , Cancel 2 Abor t , Retry , Ignor e 3 Yes , No, Cancel 4 Yes , No 5 Retry , Cancel Tablo 2.Grnm% Parametresi ncelik Deerleri Deer ncelik deeri 0 Ekrandaki ilk seenek etkili 256 Ekr andaki ikinci seenek etkili 512 Ekr andaki nc seenek etkili Tablo 3.Grnm% le likili Modalite Deerleri Deer Modalite 0 Modal. Tulardan bir ine baslmad sr ece uygulama durur 4096 Sitem modal. Tulardan birine baslmad sr ece sistemdeki tm uygulamalar durur .

VISUAL BASIC LE YAZILIM GELTRME RNEK: 1)Form zerine yerletirilen komut butonunun kod penceresine, ekil G.5 teki kodu giriniz. ekil G.5- MsgBox fonksiyonu iin rnek 2)Run/Start ile uygulamay altrnz. Butonu clickleyiniz. Programn icras sonucu ekranda kts elde edilecektir. Grn parametresi bu programda 3+512 eklinde Tablo 1 ve Tablo 2 den alnm iki deerin toplam eklinde ifade edilmitir. 3 deerinden tr diyalog penceresinde Yes,No,Cancel tular grnecektir. 512 parametresinden tr de etkin tu 3.tu(Cancel) olacaktr. Bu durumda ekrana Cancel n etrafnn kesikli izgilerle evrilmesi ile grntlenmektedir. Tablo 3 te ise, Grnm% nin alabilecei farkl bir snfa ait deerler verilmitir. Tablo 3 ten kolayca anlalaca gibi, bu parametrenin kullanlmas, kullancy uygulamaya ait ekranda beliren tulardan birini aktif hale getirmeye zorlamaktadr. MsgBox fonksiyonunu gnderecei deer Cevap% deikenince saklanr. Cevap% nin olas deerleri 7 tanedir ve Tablo 4 te verilmitir:

VISUAL BASIC LE YAZILIM GELTRME Tablo 4.MsgBox fonksiyonunca gnderilen (Cevap% nin saklayaca) deerler. Deer Kar gelen buton(tu) 1 Ok 2 Cancel 3 Cancel 4 Retry 5 Ignor e 6 Yes 7 No Programc, MsgBox fonksiyonu parametrelerine gre ekranda beliren tulardan hangisinin kullanc tarafndan seildiini Cevap% deikeni program iinde kontrol ederek belirleyecek ve buna gre yaplmas gereken ilemi program iinde kodlayacaktr . RNEK: Aadaki admlar izleyiniz: 1)Form zerine bir komut butonu yerletiriniz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Baslik$ = "DKKAT" Mesaj$ = "PROGRAM SONA ERSN M?" Cevap% = MsgBox(Mesaj$, 4 + 32 + 0, Baslik$) If Cevap% = 6 Then Unload Me End Sub 2)Run/Start seiniz. Komut butonunu clickleyiniz. ekil G.6 daki kty elde edeceksiniz. ekil G.6 4+32+0 parametreleri ile MsgBox fonksiyonu kts

VISUAL BASIC LE YAZILIM GELTRME Kolayca anlalaca gibi MsgBox fonksiyonunda 4 + 32 + 0 parametreleri sra ile 4 Yes,No seeneklerini 32 ? semboln 0 lk tuun (Yes) etkin olmasn salamaktadr. MESAJLARA SATIR BAI KARAKTER EKLEMEK Gerek MsgBox komutu gerekse de MsgBox() fonksiyonunda Mesaj$ ifadesi iine satr ba (Carriage Return-CR) karakteri olan CHR$(13) (Ascii kod 13) ve yeni satra geme (Line feed-LF) karakteri olan CHR$(10) (Ascii kod 10) eklenirse, mesaj birden fazla satr kullanlarak aktarlabilir. RNEK: 1)Form zerine bir komut butonu yerletiriniz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Mesaj$ = "A srcsne" Mesaj$ = Mesaj$ + Chr$(13) + Chr(10) Mesaj$ = Mesaj$ + "Disket takld m?" Cevap% = MsgBox(Mesaj$, 4, "UYARI") End Sub 2)Run/Start ile kodu altrarak komut butonunu tklatnz. Aadaki kty elde edeceksiniz. Burada kolayca grld gibi mesaj iki satra yerlemitir.

VISUAL BASIC LE YAZILIM GELTRME PRINT METODU Form zerine bilgi aktarmak iin kullanabilecek bir metottur. Yazl biimi: FormAd.Pr int Yazdrlacakfade eklindedir. Form ad belirtilmezse, aktif form zerine yazlr. Bilginin hangi noktaya yazlacan formun Cur r entX ve Cur rentY zellikleri belirler. Kod iine, Cls(Clear Screen-Ekran sil) komutunun kullanlmas ile, CurrentX ve CurrentY zellikleri sfrlanr. Formun koordinatlar ile belirlenen bir yerine bilgi aktarmak isterseniz, bu noktann koordinatlarn aadaki gibi belirleyebilirsiniz: FormAd.Cur r entX=Deer1 (X koordinat) FormAd.Cur r entY=Deer1 (Y koordinat) Print metodunda, yazdrlan deikenlere arasnda virgl sembol kullanlrsa, her deikene 14 karakterlik bir blge ayrlarak bilgi buralara yerletirilir. Deikenlere arasnda, noktal virgl sembol bulunuyorsa, bu durumda da bilgi bitiik olarak(Nmerikler arasnda bir boluk, stringler tamamen bitiik.) aktarlr. Her Print yeni bir satra geer,Fakat Print listesi sonuna eklenecek bir virgl ya da noktal virgl, Bir sonraki Printin de ayn satrdan devam etmesini salar. TAB fonksiyonu ile de, bilginini kanc kolondan itibaren aktarlaca belirtilebilir. Bo Print, yeni bir satra geilmesini salar. RNEK: Form zerine bir komut butonu yerletiriniz. Komut butonunu formun sa st kesine yerletiriniz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Cls Print "Trkiye Cumhuriyeti" CurrentX = 1000 CurrentY = 800 Print "stanbul", "niversitesi" Print "Mhendislik"; "Fakltesi" Print Tab(18); "Bilgisayar", Print "Bilimleri"; Print "Mhendislii"

VISUAL BASIC LE YAZILIM GELTRME Print Print "Blm" CurrentX = (Form1.ScaleHeight - TextWidth(Chr$(192) + Chr$(195))) / 2 CurrentY = (Form1.ScaleWidth - TextHeight(Chr$(192) + Chr$(195))) / 2 / 2 Print Chr$(192) + Chr$(195) End Sub 2) Run/Star t ile kodu altrarak komut butonunu tklatnz. Aadaki kty elde edeceksiniz. Yukarda verilen bilgiler nda, bu kty yorumlaynz. YAZI KARAKTERLERN BELRLEMEK Formun, eitli zelliklerini kullanarak, form zerine aktarlacak yazy istediiniz biimde oluturabilirsiniz. Bu amala, formun, Proper ties penceresinde Font zelliinin yanndaki butonu clicklerseniz, aadaki pencere gelir:

VISUAL BASIC LE YAZILIM GELTRME Burada yaz Fontu, Fontun stili ve bykl, alt izili olup olmayaca(Underline) ile ilikili seimlere yapabilirsiniz. Properties penceresinde, FontTranspar ent zelliini False yaparsanz, yukardaki rnekte elde edilen kty aadaki biimde elde edeceksiniz: Font nesnesi ile ilikili tm deiiklikler, istenirse kod iinde de yaplabilir. rnein: KontrolNesnesiAd.Font.Size=16 KontrolNesnesiAd.Font.Bold=True KontrolNesnesiAd.Font.Italic=True eklinde, herhangi bir kontrol nesnesi ile ilikili olarak Font zellikleri kod iinde deitirilebilir. FORMAT KOMUTU Form zerine aktarlacak bir bilgiyi, nceden belirlenmi bir kalba gre aktarmak ta mmkndr. rnein, bu kalp saynn tam say ksm 3 er hane olarak virgllerle ayrlsn ve ondalk noktadan sonra da 2 hane olsun eklinde olabilir. Bu tip bir kt, Print Format(Say,Fromat Stringi) eklinde bir ifade ile gerekletirilebilir. rnein, Me.Print Format(234679,67432, ###,###,## ) eklinde bir ifade ile, verilen say aktif forma(Me) 234,679.64 olarak aktarlr. Burada, ondalk ksmda, 2.haneden sonra yuvarlatma yaplmaktadr. FormatStringi olarak, Visual Basic 45, ve 6, nceden belirlemi formatlarn kullanlmasna da olanak salamaktadr. rnein:

VISUAL BASIC LE YAZILIM GELTRME sayi=4567895432 print format(sayi, Currency) eklindeki bir ifade ile say parasal formatta yazdrlmaktadr. Aadaki rnekte dier hazr formatlar ve etiketleri belirtilmitir: RNEK: 1)Format zerine bir komut butonu yerletiriniz. Komut butonunu formun sa st kesine yerletiriniz. Komut butonunu kon penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() sayi = 23156789.326789 Print "General" Print Format(sayi, "General Number") Print "Currency" Print Format(sayi, "Currency") Print "Fixed" Print Format(sayi, "Fixed") Print "Standard" Print Format(sayi, "Standard") Print "Percent" Print Format(sayi, "Percent") Print "Scientific" Print Format(sayi, "Scientific") Print "Yes/No" Print Format(sayi, "Yes/No") Print "True/False" Print Format(sayi, "True/False") Print "On/Off" Print Format(sayi, "On/Off") End Sub 2)Run/Start ile kodu altrarak komut butonunu tklatnz. Aadaki kty elde edeceksiniz:

VISUAL BASIC LE YAZILIM GELTRME On/Off formatnda say 0 ise, Off aksi takdirde On deerini verir. Yes/No formatnda, say 0 ise No, aksi takdirde Yes ve True/False formatnda da, say 0 ise False, aksi takdirde True deerini alr. TARH TR BLGLER N HAZIR FORMATLAR Format fonksiyonunda, tarih trndeki bilgiler iin zel formatlar da kullanlabilir. Aadaki rnei inceleyiniz: RNEK: 1)Form zerine bir komut butonu yerletiriniz. Komut butonunu formun sa st kesine yerletiriniz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim sayi As Date sayi = Now Print "General Date" Print Format(sayi, "General Date") Print "Long Date" Print Format(sayi, "Long Date") Print "Medium Date" Print Format(sayi, "Medium Date") Print "Short Date" Print Format(sayi, "Short Date")

VISUAL BASIC LE YAZILIM GELTRME Print "Long Time" Print Format(sayi, "Long Time") Print "Medium Time" Print Format(sayi, "Medium Time") Print "Short Time" Print Format(sayi, "Short Time") End Sub 2)Run/Start ile kodu altrarak komut butonunu tklatnz. Aadaki kty elde edeceksiniz: PRINTER NESNES Yazcya bilgi aktarmak iin kullanlabilecek komutlardan biri Pr intForm komutudur. Uygulamanzda birden fazla form mevcutsa, bu durumda, formun tmn yazcya aktarmak iin: FormAd.Pr intForm eklinde bir komut uygulanabilir. Bu komut, form ieriini, bit, bit yazcya aktarr. Formun bal ve snrlar da aktarlr. Fakat genellikle, yazcdaki rezolsyon akrandan daha yksek olduu iin, bu komut bir ok durumda uygun olmayabilir. Yazcya bilgi aktarmak iin baka bir yol da, Print metodunu kullanmaktr. Bu metodun kullan biimi, Printer.Print Yazdrlacakfade eklindedir. Print metodu iin yukarda anlatlan bilgiler, yazc iin de geerlidir. Font ile ilikili zellikler de, yukarda anlatld gibi atanabilir.

VISUAL BASIC LE YAZILIM GELTRME YAZICI N BAZI ZELLKLER VE METOTLAR ColorMode Yazcya renkli mi yoksa siyah beyaz m bilgi aktarlacan belirler. ki sabit deeri vardr: vbPRCMMonochrome sabiti 1 saysal deerine sahiptir ve siyah-beyaz bask salar. vbPRMMColor sabiti ise 2 saysal deer ine sahiptir ve r enkli basky salar . Copies Yazcya bastrlacak bilginin ka nsha(kopya) olacan belirtmek iin kullanlr. Height, Width Yazcdaki kadn ykseklik ve geniliini belirtmek iin kullanlr. cra esnasnda atanamaz. Twip cinsinden llr. (Twip birimi iin grafikler blmne baknz.) EndDoc Widows a yazdrlacak dkmann bittiini bildirir. Kullanl biimi, Pr inter .EndDoc eklindedir. NewPage Yazcya, aktif sayfann bittiini ve yeni bir sayfaya geilmesi gerektiini belirtir. Kullanl biimi: Pr inter .NewPage eklindedir. Page Yazcya aktarlan sayfa saysn sayan bir sayatr . Printer.EndDoc ifadesiyle sona erer.

VISUAL BASIC LE YAZILIM GELTRME Pr intQuality Yazcya bastrlacak dkmann bask kalitesini belirtmek iin kullanlr. Kullanl biimi: Pr inter .PrintQuality=Deer eklindedir. Deer, vbPRPQDr aft ise (saysal olarak 1), msvette bask (dk kalite), vbPRQLow (saysal olarak 2) ise, dk rezolsyonlu bask, vbPRQMedium (saysal olarak 3) ise, orta rezolsyonlu bask ve vbPRQHight (saysal olarak 4) ise, yksek rezolsyonlu bask kalitesi salanacak demektir. KONTROL KOMUTLARI Bu tip komutlar, programlamay gerekletirmek iin en nemli unsurlar iinde yer alrlar. Koula bal ilemler, tekrarl ilemler, program iinde bir noktadan baka bir noktaya dallanma gibi ilemler hep kontrol komutlar yardm ile gerekletirilirler. Aada bu komutlar ayrntl olarak incelenmektedir. If Koul Then KOMUTU Kullanl biimi: If Koul Then ..... a Komutlar ..... End If eklindedir. Koul doru ise a ile gsterilen, If ve End If szckleri arasndaki komutlar icra edilecektir, sonra End If i izleyen ksma geilir; koul yanl ise, sz konusu komutlar icra edilmeksizin End If i izleyen komuta geer. Koul ifadesi iersinde aadaki karlatrma operatrleri kullanlabilir:

VISUAL BASIC LE YAZILIM GELTRME Operatr Anlam = Eit <> Eit deil < ..den kk > ..den byk <= Kk veya eit >= Byk veya eit Kou ifadeleri iinde ayrca aadaki tabloda verilen mantksal operatrler de bulunabilir: NOT OPERATR VE TABLOSU fade Not fade True False False True AND OPERATR VE TABLOSU fade 1 fade 2 fade 1 And fade 2 True True True True False False False True False False False False OR OPERATR VE TABLOSU fade 1 fade 2 fade 1 And fade 2 True True True True False True False True True False False False XOR OPERATR VE TABLOSU fade 1 fade 2 fade 1 And fade 2 True True False True False True False True True False False False

VISUAL BASIC LE YAZILIM GELTRME EQV OPERATR VE TABLOSU fade 1 fade 2 fade 1 And fade 2 True True True True False False False True False False False True IMP OPERATR VE TABLOSU fade 1 fade 2 fade 1 And fade 2 True True True True False False True Null Null False True True False False True False Null True Null True True Null False Null Null Null Null If Koul Then ... Else ...... KOMUTU Kullanl biimi: If Koul Then a Komutlar Else b Komutlar End If eklindedir. Koul doru ise a ile gsterilen komut grubu, koul yanl ise de b ile gsterilen komut grubu icra edilecektir. If Koul Then ... ElseIf ...... KOMUTU Yazl biimi: If Koul1 Then

VISUAL BASIC LE YAZILIM GELTRME a Komutlar ElseIf Koul 2 Then b Komutlar ElseIf Koul3 Then g Komutlar Else j Komutlar End If eklindedir. ElseIf ler istenilen sayda olabilir. Bilgisayar tarafndan u ekilde yorumlanr: Koul1 doru ise a grubu icra edilir ve sonra kontrol End If i izleyen komuta geer. Koul1 yanl fakat Koul2 doru ise bu kez sadece b grubu icra edilerek kontrol End If i izleyen ksma geecektir. Koul1 yanl, Koul2 yanl fakat Koul3 doru ise, bu kez sadece g grubu icra edilerek kontrol End If i izleyen ksma geecektir. Koul1,Koul2,ve Koul3 n tm de yanl ise bu kez de sadece j grubu icra edilecek ve sonra kontrol End If i izleyen ksma geecektir. RNEK: Gelir vergisinin aadaki kurallara gre belirlendiini varsayalm: Gelir<= 150,000,000 ise %25 Gelir<= 300,000,000 ise %30 Gelir<= 600,000,000 ise %35 Gelir<=1,200,000,000 ise %40 Gelir> 1,200,000,000 ise %50 Buna gre, bu bilgiler nda gelir vergisini hesaplayan bir Visual BASIC fonksiyonunu yazacaz. Aadaki admlar izleyiniz:

VISUAL BASIC LE YAZILIM GELTRME 1)Form zerine bir komut butonu yerletiriniz. Caption zelliini VERG olarak deitiriniz. Komut butonun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() f = InputBox("Gelir Miktar...", , "") gelir = Val(f) v1 = 150000000 * 0.25 v2 = 150000000 * 0.3 v3 = 300000000 * 0.35 v4 = 600000000 * 0.4 If gelir <= 150000000 Then Vergi = gelir * 0.25 ElseIf gelir <= 300000000 Then Vergi = v1 + (gelir - 150000000) * 0.3 ElseIf gelir <= 600000000 Then Vergi = v1 + v2 + (gelir - 300000000) * 0.35 ElseIf gelir <= 1200000000 Then Vergi = v1 + v2 + v3 + (gelir - 600000000) * 0.4 Else Vergi = v1 + v2 + v3 + v4 + (gelir - 1200000000) * 0.5 End If Print "Hesaplanan Vergi=", Format(Vergi, "Currency") End Sub 2)Run/Start ile kodu icra ediniz. Komut butonunu tklatnz. Aadaki pencere gelecektir:

VISUAL BASIC LE YAZILIM GELTRME Gelir miktarn 800000000 TL olarak giriniz ve OK butonunu seiniz. Aada grld gibi, vergi miktar, yukardaki kurallara gre hesaplanarak yazdrlacaktr: #If ... Then ... #Else YAPISI Visual Basic kodu iinde, baz kod paralarnn koullu olarak derlenmesini salayan bir yapdr. Yazl biimi: #If fade Then Deyimler [#ElseIf fade Then Deyimler [#Else Deyimler #End If eklindedir. RNEK: Bu rnek kod parasnda, alan Windows versiyonu kontrol edilmekte, eer 16 bitlik versiyonsa o versiyona ait komutlar derlenmekte, 32 bitlik versiyonsa 32 bite uygun komutlar ieren para derlenmektedir. Her ikisi de deilse baka bir iletim sistemi sz konusudur; bu durumda buna gre komutlarn yer ald blm derlenmektedir. #If Win16 Then . 16-bit lik versiyona ait komutlar . . #ElseIf Win32 Then . 32-bit lik versiyona ait komutlar . . #Else . Dier platform iin gerekli komutlar . .

VISUAL BASIC LE YAZILIM GELTRME #End If Select .... Case KONTROL YAPISI Yazl biimi: Select Case Deiken Case Deer1 a Case Deer2 b Case Deer3 c ............. Case Deer6 to Deer10 d Case Else e End Select eklindedir. Bu yap u ekilde alr: Deikenin deeri Deer1 e eitse bu durumda sadece a ile gsterilen komut grubu icra edilerek kontrol End Select i izleyen komuta geecektir. Deikenin deeri Deer2 ye eitse o takdirde sadece b ile temsil edilen komut grubu icra edilecektir. Deikenin deeri Deer6 ile Deer10 arasnda ise, bu durumda da sadece d ile simgelenen komut grubu icra edilecektir. Deikenin deeri listedeki deerlerden hibirine eit deilse bu durumda kontrol Case Else i izleyen e komut grubuna geecektir. Kolayca anlalaca gibi, bu kontrol yaps, ok sayda ElseIf kullanan uygulamalarda alternatif bir zm olarak kullanlabilir. DNG (EVRM-LOOP) YAPILARI Bu yap genel olarak bir ilemler grubunu ok sayda tekrarlatmak amac ile kullanlr.

VISUAL BASIC LE YAZILIM GELTRME For ..... Next EVRM Yazl biimi For Saya=Balang To Son Step Artm a Next Saya eklindedir. Sayac balang deerinden son deere kadar her seferinde artm kadar arttrlarak deitirilir: bu esnada Sayac n her bir deeri iin a ile gsterilen komut grubu icra edilir. RNEK: Aadaki admlar izleyiniz: 1) Form zerine bir komut butonu yerletiriniz. Komut butonunun Caption zelliini TOPLAM yapnz. Komut butonun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() n = Val(InputBox("say miktar", , "")) s = 0 For i = 1 To n sayi = Val(InputBox(Str(i) + " nci sayy giriniz...", , "")) s = s + sayi Next i MsgBox Str(s), , "GENEL TOPLAM" End Sub 2)Run/Start seiniz. TOPLAM adl komut butonunu tklaynz. Aadaki pencere gelecektir:

VISUAL BASIC LE YAZILIM GELTRME Burada say miktarn 3 olarak girerek Ok butonunu seiniz. Daha sonra gelen ekranda sras ile 30, 20, 300 saylarn giriniz. Program, sonuta aadaki gibi, bu saylarn toplamn bulacak ve listeleyecektir: Anlald gibi bu program, bilgisayara nceden miktar bildirilen saylara tek tek isteyerek bunlarn toplamn hesaplayan bir programdr.

VISUAL BASIC LE YAZILIM GELTRME Do ...... Loop EVRM YAPISI Visual BASIC te Do .... Loop szcklerini ieren 4 ayr tr evrim yaps mevcuttur: 1) Do ....... While Loop EVRM YAPISI Yazl biimi Do While Koul Komutlar a Loop eklindedir. nce koul kontrol edilir. Koul doru ise (TRUE), a ile gsterilen komutlar grubu icra edilecektir. Baka bir deyile, Do ... While Loop yaps, koul doru olduu srece sonsuz bir evrim tekil edecektir. RNEK: 1)Form zerine bir komut butonu yerletiriniz. Komut butonunu Caption zelliini TOPLAM yapnz. Komut butonun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() x = -1 z = 0 Do While x < 4 y = InputBox("Bir say giriniz...") z = z + Val(y) x = x + 1 Loop MsgBox z, , "TOPLAM" End Sub 2)Run mensnden Star t seiniz. TOPLAM adl komut butonunu tklatnz. 3) Karnza Bir say giriniz mesaj ieren bir pencere gelecektir. 10 saysn girerek Ok butonunu seiniz:

VISUAL BASIC LE YAZILIM GELTRME 4) Ayn ekr an 4 kez daha gelecektir . Sras ile 20,30,40,50 saylarn girerek her seferinde Ok butonunu seiniz. 5) Aadaki sonu elde edilecektir: Grdnz gibi bu program bilgisayara girilen 5 adet saynn toplamn hesaplamaktadr. 2) Do Until ....... Loop EVRM YAPISI Bu evrim yaps Do Until Koul a Komutlar Loop eklinde kullanlr. Koul doru ise, a hibir zaman icr a edilmez. Koul yanl ise, a komutlar grubu icr a edilir . a komutlar grubu, koul doru(True) deerini alana kadar hep icra edilecektir.

VISUAL BASIC LE YAZILIM GELTRME RNEK: 1) Form zerine bir komut butonu yerletiriniz. Komut butonunun Caption zelliini TOPLAM yapnz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() x = -5 y = 0 Do Until x > 0 z = InputBox("Bir say giriniz...", , "") y = y + Val(z) x = x + 1 Loop MsgBox y, , "TOPLAM" End Sub 2)Run/Start seiniz. TOPLAM butonunu tklatnz. 3)imdi aadaki ekran gelecektir: 4)Say olarak 1 girerek Ok butonunu seiniz. 5)Ayn ekran 5 kez daha gelecektir. Sras ile, 3, 5, 10, 15, 20 saylarn ayn ekilde giriniz. 6) Sonuta ekil G.7 de grld gibi, girilen 6 saynn toplam ekrana aktarlacaktr: ekil G.7- Girilen 6 saynn toplam

VISUAL BASIC LE YAZILIM GELTRME 3) Do ................ Loop While EVRM YAPISI Bu evrim yaps, evrim iindeki komutlarn, kouldan bamsz olarak balangta bir kez mutlaka bir kez almas isteniyorsa kullanlr. Yazl biimi: Do a Komutlar Loop While Koul eklindedir. a komut grubu mutlaka bir kez alr; sonra koul kontrol edilir. Koul doru olduu mddete a komut grubu icra edilecektir; koul yanl ise, evrimden klr. RNEK: 1) Form zerine bir komut butonu yerletiriniz. Komut butonunun Caption zelliini TOPLAM yapnz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() y = 0 Do z = InputBox("Bir say giriniz...", , "") y = y + Val(z) Loop While y < 500 MsgBox y, , "TOPLAM" End Sub 2)Run/Start seiniz. TOPLAM butonunu tklatnz. imdi ekil G.8 deki ekran gelecektir:

VISUAL BASIC LE YAZILIM GELTRME ekil G.8- Say giri ekran 3) say olarak 150 girerek Ok butonunu seiniz. 4) Ayn ekran girdiiniz saylarn toplam 500 den kk kald srece gelecektir. Sras ile 200,40,70,100 saylarn giriniz. 5)Sonu ekil G.9 da grld gibi, girilen 5 saynn toplam ekrana aktarlacaktr. nk 5. Saynn girilmesi ile toplam 500 aacak ve icra duracaktr. ekil G.9 Hesaplanan toplam deeri 3) Do ................ Loop Until EVRM YAPISI Yazl biimi: Do a Komutlar Loop Until Koul eklindedir.

VISUAL BASIC LE YAZILIM GELTRME a komut grubu, bir kez, koulsuz olarak icra edilir. Sonra koul kontrol edilir. Koul doru ise, evrimden klr; yanl ise a gene icra edilir. Koul yanl olduu srece a hep icra edilecektir. RNEK: 1) Form zerine bir komut butonu yerletiriniz. Komut butonunun Caption zelliini TOPLAM yapnz. Komut butonunun kon penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() y = 0 Do z = InputBox("Bir say giriniz...", , "") y = y + Val(z) Loop Until y > 500 MsgBox y, , "TOPLAM" End Sub 2) Run/Start mens yardm ile kodu icra ediniz. Komut butonunu tklatnz. 3)ekil G.10 daki ekran gelecektir: ekil G.10- Bilgi giri ekran 4) 200 saysn giriniz ve On butonunu seiniz. 5)Daha sonra 170 ve 140 saylarn seiniz. 6) ekil G.11 deki sonucu elde edeceksiniz:

VISUAL BASIC LE YAZILIM GELTRME ekil G.11- Toplamn hesaplanmas

VISUAL BASIC LE YAZILIM GELTRME BLM 7 VISUAL BASIC TE DZ YAPILARI

VISUAL BASIC LE YAZILIM GELTRME DZ (ARRAY) KAVRAMI Bellekte (Memory) ya da daha dorusu RAM(Random Access Memory) iine, ayn isim altnda toplanm deikenler kmesine dizi (arr ay ) ad verilir . Dizi tek boyutlu ise, liste olarak ta isimlendirilir. Visual Basic te dizi yaps kod iinde: DiziAd(ndis) eklinde gsterilir. ndis, doal olarak farkl dizi elemanlarn birbirinden ayrmak iin kullanlr. rnein, A(5) isimli dizinin 5. Elemann ve SOYAD$(3) ise, SOYAD$ adl string tr bilgiler ieren dizinin 3. elemann gstermektedir. DZ NE N GEREKLDR? Dizi yapsna, ayn trden bir veri grubunu tm ile bellekte sakl tutmann gerekli olduu uygulamalarda ihtiya duyulur. rnein, verilerin sralanmas, bir veri grubuna ait baz istatiksel bilgilerin hesaplanmas (standart sapma vb) gibi uygulamalar bu trde uygulamalardr. VISUAL BASIC TE DZ TRLER Visual Basic te 2 farkl trde dizi vardr: 1)STATK DZ: Bu tr dizilerde, dizi iin bellekte nceden ayrlacak yer says sabittir. rnein, form ya da standart modln General/Declarations ksmna: Dim A(14) As Integer eklinde bir bildiri deyimi koyarsanz, form boyunca (formda bildirilmise) ya da proje boyunca(standart modlde tanmlanmsa) tanml 15 elemanl bir A dizisine yer ayrlm olacaktr. Visual Basic, otomatik olarak ,A(0) iin de yer ayrr. ayet, yukardaki bildirimden nce Option Base 1 komutu kullanlsa idi, dizi indisi 1 den balayacak ve diziye 14 eleman ayrlm olacakt. Option Base komutu sadece 0 ya da 1 parametrelerini alabilir. Default durum, zaten diziye, 0 indisi ni atamak olduundan, Option Base 0 a gerek yoktur. Statik ya da sabit boyutlu dizi, bir prosedr iin de lokal olarak ta tanmlanabilir. Bu durumda Static szc kullanlabilir: Pr ivate Sub FonkHes() Static x(11) As Double ....... End Sub

VISUAL BASIC LE YAZILIM GELTRME Tm proje iinde tanml ve geerli olabilecek bir statik dizi, standart modln(kod modl) Gener al/Declarations ksmnda aadaki ekillerden birinde de tanmlanabilir: Public s(20) As String veya Global s(20) As String 2)DNAMK DZ: Bu tr dizilerde, eleman says bakmndan bir esneklik sz konusudur. nceden sabit bir deer atanmaz. Bir form ya da standart modln General/Declarations ksmnda, Dim s() as String eklinde bir ifade ile, dinamik bir dizi tanmlanabilir. Bu diziye, daha sonra, bir prosedr iinde gerek bir boyut atamak iin, ReDim deyimi kullanlr: Pr ivate Sub Fonk1() Dim n As Integer ReDim s(n) as String ....... End Sub ReDim ile diziyi yeniden boyutlandrrken,dizi iersinde nceden yklenmi veriler varsa bunlar silinecektir. Yeniden boyut atam esnasnda, dizide mevcut olan verilerin korunmas isteniyorsa, ReDim komutu iinde Pr eserve szc de kullanlmaldr: ReDim Preserve s(n) As Integer gibi. Tm proje iinde geerli olabilecek, global bir dinamik dizi tanmlamak iin, standart modln General/ Declarations ksmnda aadaki ifadelerden biri kullanlmaldr: Public x() As Integer veya Global x() As Integer Daha sonra bu diziye, yukarda belirtildii gibi, bir prosedr iinde, ReDim deyimi ile, gerek boyut atanabilir. RNEK UYGULAMA : BLGSAYARA KLAVYEDEN GRLECEK VER DZSNN BAZI STATKSEL ZELLKLERN HESAPLATMA 1)Form zerine bir komut butonu yerletirerek Caption zelliini STATKSEL UYG. Olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Double click ile komut butonunun kod penceresini getirerek aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim x(10) As Double Print "VER LSTES" For i = 1 To 10 y = InputBox(Str(i) + " nci veri...", , "") x(i) = Val(y) Print x(i) Next i mask = -1E+308 Min = 1E+308 s = 0 For i = 1 To 10 s = s + x(i) If x(i) > maks Then maks = x(i) If x(i) < Min Then Min = x(i) Next i ort = s / 10 ss = 0 For i = 1 To 10 ss = ss + (x(i) - ort) ^ 2 Next i ss = (ss / 10) ^ (1 / 2) Print "En byk say=", maks Print "En kk say=", Min Print "Aritmatiksel Ortalama=", ort Print "Standart Sapma=", ss End Sub 3) Formun General/Declarations ksmna Option Base 1 komutunu giriniz. 4)Run/Start ile program altrnz. Komut butonunu clickleyiniz. ekil D.1 deki ekran gelecektir. 5)Diziye ait verileri sra ile giriniz. Her ver giriinden sonra Ok butonunu seiniz. En son ekil D.2 deki ekran gelecektir. Son veriyi de girerek Ok butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME 6)ekil D.3 teki sonular elde edeceksiniz. ekil D.1- Diziye veri girilmesi ekil D.2- Veri giriinde son adm ekil D.3- statiksel uygulama sonular DZ NDS N SINIRLAR Visual Basic te kullanlacak olan dizininin indisi iin, gerekiyorsa alt ve st snr belirtilebilir. rnein, Dim A(1 To 20) As Integer

VISUAL BASIC LE YAZILIM GELTRME eklinde bir bildiri deyimi ile, A dizisinin indisi iin alt snr 1 st snr 20 olarak tanmlanmaktadr. Alt ve st snrlar 0 ya da negatif deerlerde olabilir. rnein: Dim X(-5 To 8) As String eklindeki bir ifade ile, X dizisinin, indisinin, -5 ile 8 arasnda deerler alabilecei bildirilmektedir. K VEYA DAHA FAZLA BOYUTLU DZLER Visual Basic te, istenirse, iki boyutlu ve hatta ikiden fazla boyutta diziler kullanlabilir. Bu durumda, her boyuta ait indis deeri, birbirinden virgllerle ayrlr. rnein : Dim T)3,4) As Integer eklinde bir bildirim ile, ayet, formun General/Declarations ksmnda Option Base 1 komutu kullanlmsa, birinci boyutta 3, ikinci boyutta 4 elemana sahip olan iki boyutlu bir dizi tanmlanmaktadr. ki boyutlu diziler, gnlk yaamdaki tablolar ya da matematikteki matr isleri bilgisayarda temsil etmek iin kullanlrlar. Birinci indis, tablo veya matrisin satr indisi, ikinci indis ise, tablo veya matrisin stun indisidir. Bu anlamda, yukardaki tanm, 3 satr ve 4 stunu olan bir tabloyu ya da matrisi tanmlamaktadr. LBOUND VE UBOUND FONKSYONLARI Kullanlan dizinin, belirtilen indisinin sahip olabilecei alt ve st snrlar tespit ya da kontrol etmek iin kullanlan fonksiyonlardr. rnein: Dim X(-3 To 4, 0 To 3, -1 To 8) As Integer tanm ile 3 boyutlu bir dizi tanmlanmtr. imdi, LBound(X,1)= -3 LBound(X,2)= 0 LBound(X,3)= -1 deerini verecektir. nk, burada, LBound(X,1) ifadesi X dizisinin 1 nci indisinin alt snrn bulmaktadr ki bu da 3 tr. Ayn ekilde, st snrlar iin de UBound(X,1)= 4 UBound(X,2)= 3 UBound(X,3)= 8 deerleri bulunacaktr. DZLER VARIANT TRNDE TANIMLAMAK: ARRAY FONKSYONU Baz uygulamalarda, bir diziyi Var iant trnde tanmlamak faydal sonular dourmaktadr. rnein:

VISUAL BASIC LE YAZILIM GELTRME Dim X as Variant X=Array(3,9,8,5) B=X(3) ifadeleri ile, X Variant trnde tanmlanm bir dizidir ve 3. Eleman olan 8 deeri, B deikenine atanmaktadr. Dizileri, Variant trnde tanmlamann en nemli faydas, iki dizinin elemanlarna birbiri ile yer deitirmek gerektiinde anlalabilir. Bu durumda nemli ilem zaman tasarrufu salanabilir. rnein: Dim X(10) As Integer, Y(10) As Integer For I = 1 To 10 X(I) = i Y(I) = I * I Next I Dim D1 As Variant, D2 As Variant, T As Variant D1 = X(): Erase X() D2 = Y(): Erase Y() T = D1 D1 = D2 D2 = T ifadeleri ile, X ve Y nin elemanlar, For/Next evrimlerine gerek kalmadan kolayca yer deitireceklerdir. RNEK UYGULAMA: 1)Form zerine bir komut butonu yerletiriniz. Caption zelliini DZDEM olarak ataynz. 2)Komut butonunun zerine double-click ilemi uygulayarak kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim X(10) As Integer, Y(10) As Integer Print "X", "Y" For i = 1 To 10 X(i) = i Y(i) = i * i Print X(i), Y(i) Next i Dim D1 As Variant, D2 As Variant, T As Variant D1 = X(): Erase X() D2 = Y(): Erase Y() T = D1 D1 = D2

VISUAL BASIC LE YAZILIM GELTRME D2 = T Print "X", "Y" For i = 1 To 10 Print D1(i), D2(i) Next i End Sub 3)Run/Start ile projeyi altrnz. ekil D.4 teki sonucu elde edeceksiniz: ekil D.4- ki dizinin elemanlarna karlkl olarak yer deitirme PROSEDRLERDE DZ ARGMANI KULLANMA Visual Basic, baka bir ok dilde olmayan bir esneklik salayarak, prosedrlerde, gerek boyut belirtilmeden dizi argman kullanma imkan vermektedir. rnein: Private Sub Hesap(A(), B(), C) eklindeki bir prosedr tanmnda, A tek boyutlu ve B iki boyutlu bir diziyi temsil ediyor olabilir. Bu prosedr arrken, Dim X(10),Y(2,4) bildirimi ile birlikte, Hesap X(),Y(),Z gibi bir ar komutu kullanlmaldr. Burada referans yolu ile ama metodu uygulanarak (Prosedrlerin arlmas blmne baknz), A dizisi yerine X ve Y dizisi yerine de B gemektedir.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: RASTGELE RETLM BR VER DZSNN, BAST SEME SIRALAMASI YNTEM LE SIRALANMASI 1)Form zerine bir komut butonu yerletiriniz ve Caption zelliini SIRALA olarak deitiriniz. Mouse ile komut butonu zerinde iki kez tklatma yaparak aadaki kodu giriniz. Pr ivate Sub Command1_Click() Dim a(10) As Integer For i = 1 To 10 a(i) = Rnd() * 1000 Next i SIRALA a(), 10 For i = 1 To 10 Print a(i) Next i End Sub 2)Formun kod penceresi ak iken, Tools/Add Procedur e yolunu izleyerek, ekil D.5 teki gibi SIRALA adl Sub prosedrn tanmlaynz. 3)Ok setikten sonra, kod penceresine ekil D.6 daki kodu giriniz. 4)Run/Start ile kodu icra ediniz. SIRALA butonunu clickleyiniz. ekil D.7 de grld gibi, rasgele retilmi verinin, arttan srada sralanm olduunu greceksiniz. Basit seme sralamasnn uygulad metot yledir: nce, dizinin ilk eleman sras ile 2,3,...n. elemanlarla mukayese edilir. Bu mukayeseler esnasnda, gerekli yer deitirmeler yaplr. lk geite, dizi iindeki en kk eleman ilk sraya yerletirilir. Daha sonra 2. Dizi eleman 3.,4.,...n. elemanlarla mukayese edilerek gereken yer deitirmeler yaplr. En son admda ise, n-1 nci eleman ile n. Eleman mukayese edilir. Basit seme sralamasnda, sralama zaman, veri miktarnn karesi ile orantl olarak artt iin, bu yntem byk miktarlarda verilerin sralanmasnda uydun deildir. rnein, veri dizsi 23,6,37,11,3 eklinde ise sralama admlar aadaki gibi olacaktr:

VISUAL BASIC LE YAZILIM GELTRME 1.Geite 4 2.Geite 3 3.Geite 2 4.Geite 1 adet mukayese yaplmtr. Veri miktar 5 tir. Genel olarak n adet veri iin 1.Geite n-1 2.Geite n-2 .... n-1 nci geite de 1 mukayese yaplacak ve toplam olarak Toplam Mukayese Says = eklinde bulunacaktr. Bilgisayar zaman mukayese says ile orantl olduundan, sralama iin geecek zamann veri miktarnn karesi ile orantl olduu kolayca kantlanm olur. ekil D.5- SIRALA adl prosedrn tanmlanmas 2 ( 1) 1 2 ....( 2) ( 1) + + - + - = n n n n

VISUAL BASIC LE YAZILIM GELTRME ekil D.6 Basit Seme Sralamas prosedr ekil D.7 Sralanm veriler KL ARAMA(BINARY SEARCH) Sralanm veriler iinde bir verinin mevcut olup olmadn aratrmak iin kullanlan bir arama yntemidir. kili arama ynteminde, aranacak eleman, nce, dizinin ortasndaki eleman ile karlatrlr. 3 durum sz konusudur: 1) Aranan eleman, ortadaki elemana eittir. Byle ise, ilem biter. 2)Aranan eleman, ortadaki elemandan daha byktr. Bu durumda, sralanm dizide arama yapld iin, aranan eleman imdi dizinin ikinci yarsnda aranmaldr. 3)Aranan eleman, ortadaki elemandan daha kktr. Bu durumda, sralanm dizide arama yapld iin, aranan eleman imdi dizinin ilk yarsnda aranmaldr. 4)lk ya da ikinci yardaki aramalar da nce ortadaki elemana baklarak balar.

VISUAL BASIC LE YAZILIM GELTRME Aadaki uygulama bu yntemi bilgisayarda gerekletiriyor. rnek uygulamada, arama 1,2,3,4,5,6,7,8,9,10 elemanlarna sahip olan tek boyutlu bir f dizisi iinde yaplyor. Bu dizinin elemanlar da For/Next evrimi ile, suni olarak retiliyor. Uygulamay gerekletirmek iin aadaki admlar izleyiniz: 1)Form zerine bir komut butonu yerletiriniz. Komut butonunun Caption zelliini BUL olarak deitiriniz. Komut butonunu iki kez tklatarak kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim f(10) For i = 1 To 10 f(i) = i Next i p = 1 c = Val(InputBox("aranacak eleman")) Call BINSRCH(f(), 10, p, c) If p = 0 Then Print "aranacak eleman bulunamad" Else Print "aranacak eleman bulundu" End If End Sub 2)kod penceresi ak iken Tools/Add Procedure mensn seiniz. Gelen Procedure balkl pencereyi aadaki gibi doldurunuz. Ok butonunu seiniz. 3) Karnza gelen kod penceresine aadaki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME Public Sub BINSRCH(ByRef f(), ByRef n, ByRef i, ByRef k) l = 1 u = n Do While l <= u m = Int((l + u) / 2) Select Case k Case Is > f(m) l = m + 1 Case Is = f(m) MsgBox "BASARI" Exit Sub Case Is < f(m) u = m - 1 End Select Loop i = 0 End Sub 4)Run/Start ile uygulamay altrnz. BUL butonunu clickleyiniz. nce aranan eleman yerine dizide bulunan bir eleman, mesela 7 yi giriniz. Ok butonunu seiniz. Aadaki sonucu alacaksnz: Ok butonu seilince de form zerinde aadaki mesaj grntlenir.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: K BOYUTLU DZYE(TABLO) KLAVYEDEN BLG GR VE ETL LEMLER 1)Form zerine bir komut butonu yerletirerek Caption zelliini TABLO olarak deitiriniz. Komut butonu zerinde double-click ilemini uygulayarak aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim tablo(3, 4) For i = 1 To 3 For j = 1 To 4 x = InputBox(Str(i) + " nci satr" + Str(j) + " nci stun eleman...", , "") tablo(i, j) = Val(x) Next j, i Print "TABLO ELEMANLARI.." For i = 1 To 3 For j = 1 To 4 Print tablo(i, j), Next j Print Next i Max = -1E+308: Min = 1E+308 t = 0 For i = 1 To 3 st = 0 For j = 1 To 4 st = st + tablo(i, j) t = t + tablo(i, j) Next j Print Print i, " nci satr toplam=", st Next i Print For j = 1 To 4 st = 0 For i = 1 To 3 st = st + tablo(i, j) If tablo(i, j) > Max Then Max = tablo(i, j) If tablo(i, j) < Min Then Min = tablo(i, j)

VISUAL BASIC LE YAZILIM GELTRME Next i Print j, " nci stn toplam=", st Next j Print Print "Tablo toplam=", t Print Print "Tablo aritmetik ortalamas=", t / 12 Print "Tablodaki en byk eleman...", Max Print "Tablodaki en kk eleman...", Min End Sub 2)Run/Start ile uygulamay altrnz. TABLO butonunu clickleyiniz. Tablo elemanlarn girmek zere gelecek olan giri penceresine, belirtilen tablo elemanlarn sra ile giriniz. (ekil D.8) ekil D.8 Tabloya bilgi girii 3) En son tablo eleman da girildikten sonra Ok butonu seilince, ekil D.9 daki sonular elde edilecektir. ekil D.9 Tablo iine yklenen bilgilere ait istatiksel sonular

VISUAL BASIC LE YAZILIM GELTRME BLM 8 HATA AYIKLAMA

VISUAL BASIC LE YAZILIM GELTRME HATA AYIKLAMA Kod iinde oluan hatalarn tespiti ve giderilmesi iin Visual Basic tarafndan eitli imkanlar salanmtr. Bu blmde bunlardan bahsedilecektir. Bu konuya girmeden nce, bir Visual Basic kodu ile ilikili olarak oluabilecek hata trleri hakknda baz eyler sylemek istiyoruz. Karlalabilecek hata trleri, 3 grupta toplanabilir. 1) Yazl kurallarna uymamaktan oluan hatalar. Kodun yazm esnasnda, Visual Basic dilinin yazl kurallar(Syntax Rules) ile ilikili olarak doan hatalar Syntax Er ror s adn alr. rnein, Print komutunu yanllkla Pr impt olarak yazma gibi. Bu tr hatalar eer ekil H.1 - Otomatik Syntax kontrol Tools/Options/Editor yolu izlenerek Auto Syntax Check seenei iaretlenmi ise, daha tasarm esnasnda kullancya bildirilir. 2)cra zaman hatalar(Run Time Er ror s). Baz ifadeler, yazl kurallarna uygun yazlmtr, fakat icra zamannda nceden fark edilmeyen hatalara neden olurlar. rnein, y=(x+1)/z ifadesinde, z nin deeri 0 ise, icra zamannda, Division By Zero(0 la blme) eklinde bir hata mesaj alnacaktr.

VISUAL BASIC LE YAZILIM GELTRME 3) Mantk hatalar. Program, Visual Basic kurallarna uygundur fakat hesaplanmak istenen eyi hatal hesaplyordur. rnein, programc, bordro hesab ile ilikili kurallar yanl uygulam olabilir. Bu tip hatalarda, bilgisayar ya da Visual Basic yazlm programcya yardmc olamaz. Hatay bulup dzeltmek, program listesini inceleyerek, programcya kalmtr. IMMEDIATE PENCERES (HATA AYIKLAMA PENCERES) Visual Basic ortamnda, hata ayklama konusunda yardmc olabilecek aralardan bir tanesi de Immediate penceresidir. Immediate penceresinin bir ok fonksiyonu vardr. Bunlardan bir tanesi, Visual Basic komutlarn Br eak modda iken tek tek icara ederek doruluklarn test etme imkan salamasdr. Aadaki admlar izleyiniz: 1)View/Immediate Window mens ile Immediate penceresini getiriniz. (ekil H.2) ekil H.2 Immediate penceresi 2)Print 3*5= ,3*5 komutunu giriniz. F5 , F8 tularndan birini ya da Run/Start seiniz. Run/Break ile icray durdurunuz. Krsr komutun yannda iken enter a basnz. ekil H.3 teki gibi icra sonucunu greceksiniz. ekil H.3- Break modda tek komutu icra etme DEBUG NESNES Kod iinde hata aratrrken izlenebilecek baka bir yol ise, Debug nesnesini kullanmaktr. Debug nesnesi, verilen deikenlerin deerlerinin icra annda Immediate penceresine yazlmas iin kullanlabilir.

VISUAL BASIC LE YAZILIM GELTRME Aadaki admlar izleyiniz. 1)Form zerine bir komut butonu yerletirerek kod penceresine aadaki kodu giriniz:, ekil H.4 Debug nesnesi rnei 2)Run/Start ile kodu altrnz. Immediate penceresinde aadaki kty elde edeceksiniz: ADD WATCH MENS Kod iinde seilen bir deiken ya da ifadenin deeri, Debug penceresinden adm adm izlenebilir. Bunu hemen bir rnek ile aklayalm: 1) ekil H.5 teki, komut butunu ile ilikili kodu giriniz. 2)Debug mensnden Add Watch u seiniz. ekil H.6 daki pencere gelecektir. Burada Expr ession kutusuna gzleme tabi tutulacak ifade(deiken) yerletirilir. Bu ifadenin hangi form, modl ve proje ile ilikili olduu da ekilde grld gibi ilgili kutularda belirtilir. Watch Type (Gzlem tipi) ise 3 farkl ekilde olur: 1) Watch Expr ession seenei iaretlenirse, sadece ifade gzlenecektir. (Deer izleniyor) 2)Br eak When Value Is True seenei(Deer doru olduu zaman dur) iaretlenirse, gzlenen ifadenin deeri True(doru) olunca program geici olarak duracaktr. (Break moduna geecektir.)

VISUAL BASIC LE YAZILIM GELTRME 3) Br eak When Value Changes (Deer deiince dur) seenei iaretlenirse, gzlenen ifadenin deeri deitii anda break moduna geilecektir. Expression penceresine, izlemek istediiniz deiken olan x i giriniz. Procedure penceresine Command1_Click giriniz. Watch Expression iaretleyiniz. Ok butonunu seiniz. 3)F8 tuuna basnz. Komut butonunu clickleyiniz. ekil H.7 deki ekran gelecektir.F8 tuuna bastka, icra komut komut ilerleyecektir. Bu esnada x2in deiimi, Watches penceresinden izlenebilecektir.(ekil H.8) ekil H.5 rnek kod ekil H.6 Add Watch penceresi ekil H.7 - x deikenini izleme

VISUAL BASIC LE YAZILIM GELTRME ekil H.8 x in deien deeri EDIT WATCH PENCERES Debug /Edit Watch mens ile de izlenecek ifade ile ilikili bildirimlerde deiiklik yapma imkan salanr.( ekil H.9) ekil H.9 Edit Watch penceresi Debug ilemleri ile ilikili olarak, Run mens ve Debug mens ile ilikili aadaki bilgilerin gzden geirilmesinde de yarar olacaktr: Star t Gelitirdiiniz projeyi icra etmek amac ile kullanlr. Edeeri F5 tuudur. Sadece tasarm (design) zamannda mevcuttur. cra esnasnda bunun yerine Br eak komutu geer.

VISUAL BASIC LE YAZILIM GELTRME Star t With Full Compile Start komutu ile Visual Basic sadece aktif kodu ve ilikili ksmlar derler ve altrr. Belirli bir anda projenizin tmnn derlenerek altrlmasn istiyorsanz bu alternatifi semelisiniz. Br eak Normal akn srdren program durdurur ve programn almasn breake modda srdrr. Bu men alternatifi sadece Run Time da kullanlabilir. Br eake modda programn kaynak kodunda yaplan baz deiikliklerin icra edilebilmesi iin programn yeniden balatlmas gerekebilir. F5 tuu ile Continue eklinde deien start men alternatifi ile program tekrar normal akna geri dndrlebilir. End cra edilen program durdurarak Visual Basic in kulland tm sistem kaynaklarn iade eder Restar t cras durdurulmu olan programn yeniden icra edilmesini salar. Step Into Tasarm esnasnda, Visual Basic kodundaki o esnada kr srn iar et etmi olduu komutu altrr . Step Over Step Into komutuna benzer. En nemli fark, icra edilen aktif komut, bir prosedr arma komutu ise, o prosedr tek bir komut gibi btn ile icra edildikten sonra, esas koddaki bir sonraki deyime geilir. Step Out O esnada icra edilen fonksiyonun iinde krsrn iaretlenmi olduu komuttan itibaren btn komutlar altrlr ve fonksiyonun arld esas kodda bir sonraki deyime geilir. Run To Cur sor Gene sadece tasarm annda kullanlabilecek bir komuttur. Programn icras durmu iken (Break mode) icray yeniden balatarak bir sonraki

VISUAL BASIC LE YAZILIM GELTRME durma noktasnn hangi komut olacan belirler. Durma noktasn belirleyen ey krsrn komutudur. Quick Watch Breake modda krsrn zerinde durduu deikenin, zelliin veya baka bir ifadenin deerini gsteren bir diyalog penceresi grntler. Bu men seenei kullanlrsa aadaki gibi bir diyalog penceresi gelir. Quick Watch Penceresi Toggle Br eakpoint Tasarm esnasnda kullanlabilen bir komuttur. Kod zerindeki durma noktalarn belirlemek iin kullanlr. Clear All Breakpoints Toggle breakpoint komutu ile yerletirilmi olan btn durma noktalarn iptal eder. Set Next Statement Sadece Br eak modunda kullanlabilir. Br eak moduna u durumlarda eriilir: 1) Programda nceden yerletirilmi(Toggle Breakpoint) bir durma noktas ile karlalmas 2)cra esnasnda Ctr l+Br eak tularna baslmas veya Run mensnden Br eak in seilmesi.

VISUAL BASIC LE YAZILIM GELTRME 3) Bir Stop deyiminin icras Bu komut Br eak modundan icraya gelince, icra edilecek ilk deyimi belirler. Show Next Statement Gene Sadece break modda kullanlabilecek bir komuttur. cra edilecek bir sonraki deyimi gsterir . CALLS Projeniz iinde, o esnada aktif olan prosedr arlarnn listesini gnderir. ON ERROR GOTO ETKET KOMUTU Bu komut Visual Basic iinde, hatann kontrol konusunda en nemli komutlardan biridir. Programn, hata olumas durumunda, Etiket ile belirlenen noktaya dallanmasn salar. Etiket bir string ifade olup : sembol ile sonlanr. Etiket bir satr numaras da olabilir. HATANIN TRN SAPTAMAK cra esnasnda oluan hatann hangi trde olduunu saptamak iin, Er r ifadesinde ya da Er r nesnesinin Number zelliinden yararlanlr. rnein: HataNo=Er r veya HataNo=Er r .Number ifadeleri, icra esnasnda bir hata olutuu zaman, bu hatann saysal kodunu HataNo deikenine atayacaktr. Ayrca, Er ror fonksiyonu ise, oluan hata ile ilgili hata mesajn gnderir. rnein: Debug.Print Er ror (64) eklinde ifade ile, kodu 64 olan hata ile ilikili mesaj, debug penceresinde yazdrlmaktadr. Visual Basic te her hata tipi ile ilikili bir hata kodu vardr. Bu kodlar, ile ilikili bilgi almak iin Help mensnden Index men komutunu seiniz. Gelen pencerede, ekil H.10 daki seimleri yapnz ve Grntle butonunu tklaynz. Burada,

VISUAL BASIC LE YAZILIM GELTRME ekil H.10 Hata mesajlarna erimek hata mesajlar konulara gre gruplandrlmtr. lgili grubu seerek hata listesi elde edebilirsiniz. Bu listeden rnein Trappable maddesi ile ilgili hata listesi yukardaki gibi elde edilir: Bu listedeki baz nemli hatalarn kodu ve aklamas aadaki gibidir. Code Message 3 Return without GoSub(GoSub olmakszn Return kullanlm) 5 Invalid procedure call(Geersiz prosedr arma) 6 Overflow(Ama,st limit geme) 7 Out of memory(Bellek yetersiz) 9 Subscript out of range(Dizi indisi belirlenen araln dnda) 10 This array is fixed or temporarily locked( Bu dizi sabit boyutlu ya da geici olarak kitlemitir.) 11 Division by zero(Sfrla blme yaplyor) 13 Type mismatch(Tr bakmndan yanl eleme) 14 Out of string space (String uzunluu st limiti ayor) 16 Expression Toop Complex (ifade ok karmak) 17 Can t perform requested operation (Talep edilen ilem gerekletirilemez)

VISUAL BASIC LE YAZILIM GELTRME 18 User interrupt occurred(Kullanc tarafndan icraya arar verildi) 20 Resume without error(Hata olumadan sona erme) 28 Out of stack space(Stack(yn) boyutu ayor. 35 Sub,Function, or Property not defined(Sub ,Function veya Property tanml deil) 47 Too many DLL application clients( Ayn DLL kullanmak isteyen ok sayda istemci var) 48 Error in loading DLL(DLL ykleniinde hata oluuyor) 49 Bad DLL calling convention (DLL arlnda kt kullanm tarz) 51 Internal error(sel hata) 52 Bad file name or number(Dosya ad ya da numaras geersiz) 53 File not found(Dosya bulunamad) 54 Bad file mode(Dosya modu hatal-OUTPUT modunda okuma ya da INPUT modunda yazmaya teebbste bu hata oluur. 55 File already open( Dosya zaten ak) 57 Device I/O error (Cihaz giri k hatas) 58 File already exists(Dosya zaten mevcut) 59 Bad record length(Geersiz kayt uzunluu) 61 Disk full(disk dolu) 62 Input past end of file(Ktk sonuna eriildii halde okumaya teebbs ediliyor) 63 Bad record number(Geersiz kayt numaras) 67 Too many files(ok sayda dosya alm 68 Device unavailable(Cihaz kullanlmaz durumda) 70 Permisson denied (Eriim msaadesi yok) 71 Disk not ready (Disk okunamyor) 74 Can t rename with different drive (Farkl src ile yeniden isimlendirilemez) 75 Path/File access error(Yol/Dosya eriim hatas) 76 Path not found(Yol bulunamad) 91 Object variable or Width block variable not set(Nesne ya da block deikeni set edilmemi) 92 For loop not initialized(For evriminde ilk deer atanmam) 93 Invalid pattern string(Geersiz string) 94 Invalid use of Null(Null n geersiz kullanm) 444 Method not applicable in this context( Bu konuda sz konusu metot uygulanamaz) 452 Invalid ordinal(Ordinal geersiz)

VISUAL BASIC LE YAZILIM GELTRME 453 Specified DLL function not found (Belirtilen DLL fonksiyonu bulunamad) 457 Dublicate Key (ifte anahtar) 460 Invalid Clipboard format(Geersiz Clipboard format) 461 Specified format doesn t match format of data (Belirlenen format, verinin format ile uyumuyor) 480 Can t create AutoRedraw image (Otomatik olarak yeniden izilen grnt yaratlamyor) 481 Invalid picture(Geersiz resim) 482 Printer error(Yazc hatas) 483 Printer driver does not support specified property (Yazc srcs, belirtilen zellii desteklemiyor) 484 Problem getting printer information form the system . Make sure the printer is set up correctly (Sistemden yazc ile ilikili bilgi almakta sorun var. Yazcnn doru olarak kurulduundan emin misiniz?) 485 Invalid picture type(Geersiz resim tipi) 520 Can t empty Clipboard(Clipboard boaltlamyor) 521 Can t open Clipboard (Clipboard alamyor) RNEK HATA KONTROL KODU ...... On Error GoTo HataKontrol Exit Sub HataKontrol: HataNo = Er r Select Case HataNo Case 53 MsgBox "DOSYA BULUNAMIYOR, cra duracak!" End Case 62 MsgBox "Dosya okuma Rutininde Dosya Sonu kontrol dzeltiniz" End ........ End Select ........

VISUAL BASIC LE YAZILIM GELTRME HATA MESAJLARINA KOD LE ERMEK Error fonksiyonu yardm ile, hata mesajlarna kod yardm ile de eriilebilir. Aadaki admlar izleyerek bu konuda daha somut bilgi sahibi olabilirsiniz: 1)Form zerine bir komut butonu yerletirerek Caption zellii HATA LSTES olarak deitiriniz. 2)Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Print Hata kodu , Hata Mesaj s = 0 For i = 1 To 20 Print i, Error(i) Next i End Sub 3)Run/Start ile uygulamay icra ediniz. Komut butonunu clickleyiniz. ekil H.12 deki kty elde edeceksiniz. ekil H.12 Kod ile eriilen hata kod ve mesajlar Yukardaki kod iinde, For/Next evrimi st limiti 20 olarak alnd iin 20 hata mesajna eriilmitir. Doal olarak, bu say deitirilerek, dier mesajlara da eriilebilir.

VISUAL BASIC LE YAZILIM GELTRME BLM 9 VISUAL BASIC FONKSYONLARI

VISUAL BASIC LE YAZILIM GELTRME STRING FONKSYONLARI Visual Basic in, string tr veriler zerinde ilem yapan fonksiyonlardr. Aada bu fonksiyonlar incelenmektedir. ASC fonksiyonu string trnde tek bir argman alr ve argman olan stringin ilk karakterine ait nmerik ASCII kodunu verir. RNEK: Aadaki kodu altrdnz zaman: cra esnasnda Form zerini Click lerseniz, form zerinde w nin nmerik ASCII kodu olan 119 deeri grnecektir.( Not: ASCII kodu belli bir kar akter i elde etmek iin , rnein ASCII kodu 253 olan bir kar akter i ALT+253 tularna basar ak bulabilir iz, bunu herhangi bir yaz programyla deneyebilir siniz.) CHR$ fonksiyonu argman olarak nmerik bir deer alr. Bu nmerik deer 0255 arasnda bir saysal deer olmaldr. Bu fonksiyon, verilen nmerik ASCII koduna kar gelen karakteri elde etmektedir. ASC FONKSYONU CHR$ FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME RNEK: Aada verilen admlar gerekletiriniz, tm ASCII kodlar na kar gelen kar akter ler listesini elde edeceksiniz. Bu listedeki ilk 32 karakter (0-31) ar as grntlenemeyen (nonprintable) karakterlerdir. Admlar u ekildedir : 1)Yeni bir Standart EXE projesi balatnz. Aadaki Form_Click prosedrn ykleyiniz: 2)Run mensnden Star t seiniz. Form zerini clickleyiniz. Aadaki ekran gelecektir. Burada ilk 15 ASCII kodu ve kar gelen karakterler (grntlenmeyen) grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME 3)Diyalog kutusunda OK butonunu seerek bir sonraki 15 lik grubu grntleyebilirsiniz. 3. Gruptan itibaren aada grld gibi grntlenebilen karakterler gelmeye balayacaktr: NOT: String fonksiyonlarnda, sonuna $ sembol bulunan ve bulunmayan formlarn her ikisi de geerlidir; yani CHR$ yerine CHR

VISUAL BASIC LE YAZILIM GELTRME ifadesi de kullanlabilir. Aralarndaki fark udur: CHR$ fonksiyonu bir string tipi sonu gndermesine ramen, CHR fonksiyonu ayn deeri Variant trnde gnderir. Ayrca CHRB ekli kullanlrsa sonu 1 Byte lk bilgi olarak gnderilir. Bir tam say argman alr. SPACE$(n) eklinde kullanlr. n tam say argmandr. n uzunluunda boluk karakteri ile doldurulmu bir karakter zinciri oluturur. RNEK: Aadaki admlar izleyiniz: 1)Aadaki Form_Click prosedrn oluturunuz: 2)Run/Start seiniz. Form zerine clickleyiniz. Aadaki sonucu greceksiniz. SPACE$ FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Burada, evrimin her admnda A$ stringinin uzunluu 1 artmakta ve o nedenle de i deikeni her admda bir sonraki stuna yazdrlmaktadr. Bu fonksiyon iki farkl ekilde kullanlabilir: 1)STRING(a,b) eklinde. Bu ekilde kullanld takdirde, b bir nmer ik ASCII, kodunu, a ise, nmerik ASCII kodu b olan kar akter lerden ka tane olacan belirler . Sonuta, her bir karakteri, nmerik ASCII kodu b olan karakterlerden oluan a uzunluunda bir string oluturur. RNEK: a) Aadaki Form_Click prosedrn oluturunuz: Pr ivate Sub Form_Click() Print String$(20, 45) End Sub STRING$ FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME b)Run/Start seerek altrnz. cra esnasnda formu clickleyiniz. Form zerinde aadaki kty elde edeceksiniz. -------------------45 says, - sembolnn ASCII nmerik kodu olduu iin 20 tane iareti yazlmtr. 2)STRING$(n,A$) eklinde kullanmak. STRING fonksiyonunun bu ekli ile, n uzunluunda ve her eleman A$ stringinin ilk karakteri olan bir karakter zinciri oluturulur. RNEK: Aadaki admlar izleyiniz: a) Aadaki Form_Click prosedrn oluturunuz: Pr ivate Sub Form_Click() Print String$(25, "mithat") End Sub b)Run/Start seiniz. Formu clickleyiniz. Aadaki ifadenin form zerine yazldn greceksiniz: mmmmmmmmmmmmmmmmmmmmmmmmm Sonuta, 25 tane m harfi ihtiva eden bir zincir oluturulmutur. RIGHT$(String,Tamsay) eklinde kullanlr. Stringin, en sadan itibaren sola doru Tamsay ile belirtilen sayda karakterini alarak yeni bir string oluturur. RNEK: 1) Aadaki Form_Click prosedrn oluturunuz: Pr ivate Sub Form_Click() X$ = Right$("Gzel Yurdum Trkiye", 7) Print X$ End Sub RIGHT$ FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2) Run/Star t ile altrarak formu clickleyiniz. Form zerine Trkiye yazdn greceksiniz. Gzel Yurdum Trkiye" stringinin en sadan itibaren 7 karakteri Trkiye szcn oluturmaktadr. LEFT$(Str ing,Tamsay) eklinde kullanlr. Stringin, en soldan itibaren saa doru Tamsay ile belirtilen sayda karakterini alarak yeni bir string oluturur RNEK: 1) Aadaki Form_Click prosedrn oluturunuz: Pr ivate Sub Form_Click() X$ = Left$("Gzel Yurdum Trkiye", 5) Print X$ End Sub 2) Run/Star t ile altrarak formu clickleyiniz. Form zerine Gzel yazdn greceksiniz. Gzel Yurdum Trkiye" stringinin en soldan itibaren 5 karakteri Gzel szcn oluturmaktadr. MID$(String,Tamsay1,Tamsay2) eklinde kullanlr. Stringin, en soldan itibaren Tamsay1 ile belirtilen karakterlerinden balayarak, saa doru Tamsay2 ile belirtilen sayda karakterini alarak yeni bir string oluturur. RNEK: 1) Aadaki Form_Click prosedrn oluturunuz: Pr ivate Sub Form_Click() A$ = MIG$("stanbul", 2, 4) Print A$ End Sub LEFT$ FONKSYONU MID$ FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2) Run/Star t ile altrarak formu clickleyiniz. Form zerine stan ibaresinin yazdn greceksiniz. stanbul un 2. Karakterinden balayarak saa doru 4 karakteri alnrsa, bu string elde edilmektedir. INSTR([Tamsay], String1,String2) eklinde kullanlr. Str ing1 iinde String2 yi arar. Bulursa, String2 nin String1 iindeki balang karakterinin sra numarasn gnderir. Bulamazsa, 0 deerini gnderir. Tamsay parametresi kullanlmamsa, arama ilk karakterden balar; kullanlmsa, Tamsay nn belirttii karakterden aramaya balar. RNEK: 1)Aadaki kodu giriniz: Pr ivate Sub Form_Click() Print InStr("istanbul", "s") Print InStr(3, "istanbul", "s") End Sub 2)Run/Start men admlarn seerek formu clickleyiniz. Form zerinde 20 deerlerini greceksiniz. lk Print iindeki Instr komutunda, istanbul iinde s aranm ve arama ilk karakterden balad iin 2 bulunmutur. (s 2. Karakter). kinci Instr de ise, arama 3. Karakterden itibaren balamtr. 3. Karakterden sonra bir s bulunmad iin 0 deerini gndermitir. LEN(Str ing) eklinde kullanlr. Verilen stringin uzunluunu (ka karakterden olutuunu) hesaplar. String iindeki boluklar da karakter olarak saylacaktr. RNEK: Bir kod iine PRINT LEN( Trkiye Cumhur iyeti ) ifadesi ekranda 19 deerini yazdracaktr. nk string, boluk ta dahil olmak zere 19 karakterden olumaktadr. INSTR FONKSYONU LEN FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME LCASE(Str ing) eklinde kullanlr. Verilen stringi kk harfe evirir. RNEK: 1)Aadaki kodu oluturunuz: 2)Run/Start seerek formu clickleyiniz. Aadaki kty elde edeceksiniz: LCASE(LCASE$) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME UCASE(String) eklinde kullanlr. Verilen stringi byk harfe evirir. LCASE iin verilen program UCASE iin uyarlaynz. STRCOMP(Str ing,Str ing2,[Tamsay]) eklinde kullanlr. string1 ile String2 yi karlatrr. Bu karlatrma sonucunda fonksiyon String1< String2 ise -1 String1= String2 ise 0 String1> String2 ise 1 deerini gnderir. String1 ya da String2 den biri bile bo ise, fonksiyon NULL deerini gnderir. Tamsay kullanlrsa ve deeri 1 ise, stringler karlatrlrken byk kk har f ayr n yaplmaz. Tamsay deeri 0 ise, karlatrma esnasnda bykkk har f ayrm yaplr . Str comp fonksiyonu karlatrma(mukayese) sembolleri olan <,>,= gibi semboller yerine alternatif olarak kullanlabilir. Strcomp fonksiyonunun gerekletirdii karlatrmann sonucu, istenirse bir deikene atanabilir. RNEK: 1)Aadaki Form_Click kodunu giriniz: UCASE FONKSYONU STRCOMP FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2)Run/Start mensn seiniz. Aadaki kty elde edeceksiniz: 0 -1 -1 -1 LIKE operatr ok net olmayan ya bulank arama(fuzzy search) eklinde nitelendirilen arama ilemlerini gerekletirerek sonularn bildirir. LIKE operatr ile birlikte aadaki tabloda verilen semboller de kullanlabilir: SEMBOL ANLAMI ? Herhangi bir karakter * 0 tane ya da ok sayda karakter # Herhangi bir tek saysal dijit [ Karakter listesi] Listedeki herhangi bir tek karakter [! Karakter listesi] Listede bulunmayan herhangi bir tek karakter LIKE OPERATR

VISUAL BASIC LE YAZILIM GELTRME RNEK:a =( ##### like 45678 ) eklindeki bir atamann sonucunda a True(Doru) deerini alacaktr. b=( [abcde] like 67895 ) atamasnn sonucunda b nin deeri False(Yanl) olacaktr. c=( [!abcde] like 67895 ) atamasnn sonucunda ise, c nin deeri True(Doru) olacaktr. String tr bir ifadenin, hem sol hem de sa tarafndaki boluklar ortadan kaldrr. RNEK: 1)Aadaki prosedr oluturunuz: TRIM (TRIM$) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2)Run/Start seiniz. cra esnasnda formu clickleyiniz. Aadaki sonucu elde edeceksiniz: Bir stringin sadece sol tarafndaki boluklar yok eder. RNEK: x$= Bu ehr-i Stanbul ki Bi Mislm Bahadr ise y$=LTRIM(x$) atamas sonucunda y$ n deeri y$= Bu ehr-i Stanbul ki Bi Mislm Bahadr eklinde olacaktr. Soldaki boluklar atlm, sadaki boluklar ise kalmtr. Bir string tr ifadenin sadece sa tarafndaki boluklar siler. LTRIM (LTRIM$) FONKSYONU RTRIM (RTRIM$) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME x$= Trke azmda annemin ak stdr.(Yahya Kemal) ise y$=RTRIM(x$) ifadesi sonucu y$ deikeni y$= Trke azmda annemin ak stdr.(Yahya Kemal) eklinde olacaktr. TARH VE ZAMAN FONKSYONLARI Kullanld andaki sistem tarih bilgisini, Ay-Gn-Yl (aa-gg-yyyy) formunda gnderen bir fonksiyondur. Ay ve gn bilgileri 2 er hane, yl bilgisi ise 4 hanelik yer kaplar. Ayrca bu fonksiyon yardm ile, sistem tarihi de yeniden set edilebilmektedir. Sistem tarihini bu fonksiyon yardm ile yeniden atamak iin aadaki gibi bir ifade kullanlmaldr: Date = aa-gg-yyyy veya Date = aa/gg/yyyy Burada aa ile temsil edilen ay bilgisi 01 ile 12 arasnda bir saydr. gg ise, 01 ile 31 arasnda bir saydr. yyyy ise, 0100 ile 9999 arsnda bir say olmaldr. ayet geersiz bir tarih atanrsa, Illegal Function Call (Geersiz Fonksiyon arma) eklinde bir hata mesaj alnacaktr. RNEK: 1)Aadaki olay prosedrn oluturunuz: DATE FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2)Run/Start seiniz. Formu clickleyiniz. Aadaki sonucu alacaksnz: Date fonksiyonu ile, o andaki sistem tarihi yazdrlmtr. Date fonksiyonu ile bilgisayara yeni bir tarih set edilirse, bunun geerli olabilmesi iin bilgisayarn yeniden yklenmesi(reboot) ilemi gerekecektir.

VISUAL BASIC LE YAZILIM GELTRME Date fonksiyonu ile, yl bilgisine 4 yerine 2 hanelik bir bilgi atanrsa, bu tarih 20. Yzyla ait bir tarih kabul edilir. rnein 07-11-03 eklindeki bir atama ile, atanan tarih 7 Kasm 1903 olarak kabul edilecektir. RNEK: 1) Aadaki olay prosedrn giriniz: 2)Run/Start men seenei ile bu prosedr altrnz. Formu clickleyiniz. Aadaki sonucu elde edeceksiniz:

VISUAL BASIC LE YAZILIM GELTRME O andaki sistem tarihi, ondan 7 gn nceki ve 11 gn sonraki tarihler yazdrlmtr. Burada grld gibi, Date fonksiyonu aritmatiksel ilemlere duyarldr. Time fonksiyonu, sitemin(bilgisayar) saatini okumak ya da yeniden set etmek iin kullanlabilecek bir fonksiyondur. Time fonksiyonu iin, aadaki kullanm ekillerinden her biri geerlidir: 1) Time = SaSa Sadece iki hane belirtilirse, bunlar saat kabul edilir ve bu durumda dakika ve saniyeler 0 alnr. 2) Time = SaSa:dkdk 4 haneli kullanlrsa, saat ve dakika kabul edilir ve saniyeler 0 alnr. 3) Time = SaSa:dkdk:snsn eklinde 6 hane kullanlrsa, bunlar sras ile saat, dakika ve saniye kabul edilerek sistem saati set edilir. RNEK: 1)Aadaki olay prosedrn oluturunuz: TIME FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME 2)Run/Start seiniz. Formu clickleyiniz. Aadaki sonucu alacaksnz. Argman, string trnden bir bilgi olan bir fonksiyondur. Argman olan stringi, tarih(date) trne evirir. RNEK: 1)Aadaki olay prosedrn oluturunuz: DATEVALUE(Str ing) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Yukardaki rnekte tarih gn/ay/yl olacak ekilde verilmitir. Bilgisayarnzn kurulaca tarih biimi Windows un Denetim Masas/Blgesel Ayarlar penceresinden aadaki gibi belirtebilirsiniz. 2)Run/Start seiniz. Formu clickleyiniz. Aadaki kty elde edeceksiniz: bu rnekte, t ve z tarih (date) tr iki deikendir. t ve z ye DATEVALUE fonksiyonu yardm ile tarih tr bilgiler atanmaktadr.

VISUAL BASIC LE YAZILIM GELTRME Visual Basic, tarih tr iki deikenin farkn, bu iki tarih arasndaki gn says olarak otomatik biimde hesaplar. Yukardaki rnekte, 25 Kasm 1996 ile 12 Mays 1996 arasndaki gn fark 197 gn olarak hesaplanmaktadr. DATEVALUE fonksiyonunun argman olarak Dim a, b, c, d As Date a = DateValue("05-04-1996") b = DateValue("May 04,1996") c = DateValue("04 May 1996") d = DateValue("04-May-1996") a,b,c deikenlerinin hepsinin ierii 4 Mays 1996 olarak atanacaktr. DATEVALUE fonksiyonunun argman geersiz bir tarih ise, bu takdirde Type Mismatch eklinde bir hata mesaj alnacaktr. rnein : Dim z As Date z = DATEVALUE( 11-31-1996 ) eklinde bir atamada bu tr bir hata sz konusudur. Kasm ay 30 ektii iin hata mesaj alnacaktr. Sistemde set edilmi olan tarih ve zaman bilgisini kullanarak(sistem saati yardm ile) on andaki tarih ve zaman verir. RNEK: Aadaki olaya prosedrn oluturarak altrnz: Pr ivate Sub Command1_Click() Print "u anki tarih ve zaman....", Now() Print "1954 ylndan itibaren...", Year(Now()) - 1954, "yl gemitir" End Sub ekil Fn.1 deki kty elde edeceksiniz: NOW FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME ekil Fn.1 Now() fonksiyonu kts Yazl biimi : DATESERAL(Yl,Ay,Gn) eklindedir. Burada Yl 100-9999 arasnda bir tam say Ay 1-12 arasnda bir tam say Gn 1-31 arasnda bir tam say Verilen yl, ay ve gne kar gelen tarih(date) tr bir bilgi oluturur. RNEK: Aadaki kodu altrnz: Pr ivate Sub Command1_Click() Print DateSerial(1996, 10, 28) Print DateSerial(1996, 10, 28) - DateSerial(1954, 3, 5) End Sub Aadaki kty elde edeceksiniz: 10/28/96 15578 DATESERIAL FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Birinci deer, verilen yl,ay,gn iin oluturulan date tr bilgiyi, date format ile grntlemektedir. kinci deer ise, 28 Ekim 1996 ile 5 Mart 1954 arasnda geen gn saysn vermektedir. Verilen bir tarih(date) tr bilgiyi, arzu edilen bir biimde grntleme imkan salayan bir fonksiyondur. RNEK: Pr int Format(Now(), mm/dd-y ) komutu ile, o andaki tarih 28 Ekim 1996 ise, form zerinde 10/28-96 eklinde grntlenecektir. Pr int Format(Now(), hh:mm AM/PM ) komutu sonucu ise, komut ayet leden sonra 05:06 2 da altrlmsa 05:06 PM eklinde elde edilecektir. Pr int Format(Now(), hh:mm AM/PM mm*dd/yyyy ) komutunun sonucu ise, ayn tarih ve zamanda alldna gre 05:06 PM 10/28/1996 eklinde bir grnt olacaktr. Verilen tarih bilgisine, verilen bir zaman araln ekleyerek yeni bir tarih bulur. Fonksiyonunun yazl biimi: DATEADD(Tr ,Adet,lk Tar ih) eklindedir. Tr ve lk Tarih bilgileri string olarak verilir. Adet ise nmeriktir. Tr aadaki tabloda belirtilen deerlerden biri olabilir. TR KODU ANLAMI yyyy Yl q Yl m Ay y Yln gn d Gn w Haftann gn ww Hafta h Saat n Dakika s Saniye FORMAT FONKSYONU DATEADD FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME RNEK: Pr int DATEADD( q ,1, 10/28/96 ) komutu ile 28 Ekim 1996 dan 3 ay sonraya kar gelen tarih olan 1/28/97 tarihi yazdrlacaktr. Pr int DATEADD( m ,5, 10/28/96 ) komutu ise 28 Ekim 1996 dan 5 ay sonraya kar gelen 3/28/96 tarihi yazdrlacaktr. Verilen iki tarih arasndaki zaman farkn, kullancnn belirttii zaman trnde elde eder. Yazl biimi DATEIFF(Tr ,Tar ih1,Tarih2) eklindedir. Tr iin kullanlabilecek deerler, DATEADD fonksiyonunda verilen tablodaki gibidir. RNEK: Print DATEIFF( m , 10/28/96 , 1/28/97 komutu ile 28 Ekim 1996 ile 28 Ocak 1997 arasndaki zaman fark ay cinsinden 3 olarak yazdrlacaktr. Tarih1, Tarih2 den nceki bir tarih ise, zaman fak pozitif olarak kacaktr. Verilen tarih tr bilginin iindeki gn ksmn ayrr. RNEK: Print DAY( 10/28/96 ) komut ile form zerine 28 deeri (ay-gn-yl formatna gre) gn olarak yazlacaktr. Tarih tr bilginin iinden, ay ksmn ayrr. Tarih tr bilginin iinden, yl ksmn ayrr. DATEIFF FONKSYONU DAY FONKSYONU MONTH FONKSYONU YEAR FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Zaman tr bir bilginin iinden saat ksmn ayrr. Zaman tr bir bilginin iinden dakika ksmn ayrr. Zaman tr bir bilginin iinden saniye ksmn ayrr. Yazl biimi : TIMESERIAL(saat,dakika,saniye) eklindedir. Belirtilen saat, dakika ve saniyeden zaman tr bir bilgi retir. Burada saat deeri 0-23 aras bir deerdir. rnein: Pr int TIMASERIAL(22,11,08) komutu ile form zerinde 10:11:08 PM deeri elde edilecektir. FNANS FONKSYONLARI Bir ekonomik varln amortismann, belirli bir periyot iin, ift-azalan denge metodu(double declining balance method) veya belirleyeceiniz dier bir metot ile hesaplayabilir. Parametrelerin anlamlar aadadr: Maliyet (Cost) Ekonomik varln balang maliyeti Hurda Deeri (Salvage)-Ekonomik varln mrn tamamlad zamanki piyasa deeri. mr (Life)- Ekonomik varla biilen mrdr. HOUR FONKSYONU MINUTE FONKSYONU SECOND FONKSYONU TIMESERIAL FONKSYONU DDB(maliyet, hurda deer i, mr , per iyot, faktr ) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Per iyot(Period) Ekonomik varlk iin amortismann hesaplanaca periyottur(zaman aral) Faktr argman 2 ise ya da ihmal edilirse, kullanlan metot ift-azalan denge metodudur; faktr 2 den farkl bir deer olarak alnrsa, o takdirde kullanc tarafndan spesifik bir metot kullanlyor demektir. Bir fonksiyonda, periyot bana amortisman hesaplamak iin aadaki bant kullanlr: Amortisman= (Maliyet- lk Periyottan tibaren Toplam Amortisman)* Burada DDB fonksiyonunda faktr parametresi kullanlmad iin, 2 olarak alnp ift-azalan denge metodu ile hesaplama yaplmtr. Bu fonksiyon aadaki gibi kullanlrsa: =DDB(100,000,000;5,000,000;1825;3) bu durumda 3. Gnn amortisman 109,348.98 TL olarak hesaplanacaktr. Burada mr, 5 yl * 365 gn =1825 gn olarak girilmitir. O nedenle periyot deeri olan 3 te, 3. Gn temsil etmektedir. Faktr gene 2 olarak alnmtr. Per iyot Says (number of periods) deme iin kullanlacak taksit saysdr. deme(payment) - Her periyot iin yaplacak deme miktardr. imdiki Deer (present value) Ekonomik deerin u anki parasal karldr. Tip(Type)- deme periyot sonunda yaplrsa 0, periyot banda yaplrsa 1 deerinde alnr. Belirtilmezse 0 kabul edilir. mr Faktr FV(faiz oran, periyot says, deme, imdiki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME RNEK PROBLEM: Enflasyonun ok yksek olduu bir lkede, aylk banka faizi %10 dur. Bankaya her ay 7,000,000 TL yatrarak bu ilemi 24 ay boyunca devam ettiren bir kiinin bu sre sonunda bankada ne kadar paras birikecektir? Cevap:619,481,287.31 TL Periyodik sabit demeler ve sabit faiz oranna dayal bir yatrm iin, verilen bir periyottaki faiz demesini hesaplar. Faiz oran(rate) Periyot bana uygulanacak faiz yzdesidir. Per iyot(period) Faiz demesinin hesaplanmak istendii periyot numarasdr. Per iyot says(number of periods)- demelerin srecei toplam periyot miktardr. imdiki deer (present value) ve Gelecekteki deer (future value), yatrmn u anki periyotlar sonundaki parasal deeridir. Gelecekteki deer belirtilmezse 0 alnr. Tip deeri 0 alnrsa demeler periyodun sonunda,1 alnrsa demeler periyodun banda yaplacaktr. RNEK: 100,000,000 TL lk bir kredi, yllk%90 sabit faiz ile ve 5 yl sreli ve yllk demeli olarak alnyor. Bu kredi iin her yl yaplmas gereken faiz demelerini bulunuz. Aadaki sonular elde edilecektir: IPMT(faiz or an, per iyot, per iyot says, imdiki deer , gelecekteki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Kr edi 100,000,000 Faiz Oran 90% Vade 5 Yl 1.yl faizi 90,000,000.00 2.yl faizi 86,591,051.13 3.yl faizi 80,114,048.28 4.yl faizi 67,807,742.86 5.yl faizi 44,425,762.56 Bu fonksiyon, bir yatrmn muhtemel getirisi iin i geri dn orann(internal rate of return) hesaplar. Deerler ile belirtilen, yatrmn muhtemel getiriler dizisi, Tahmin ise, kullancnn i geri dn orannn deeri konusunda nceden yapt tahmindir. RNEK: 1,000,000,000 TL lk bir yatrm iin 1.yl 300,000,000 TL 2.yl 300,000,000 TL 3.yl 400,000,000 TL 4.yl 500,000,000 TL 5.yl 600,000,000 TL lik getiri bekleniyor. geri dn orann hesaplaynz. Cevap :%27 Periyodik ve sabit demeler ve sabit faiz yzdesine sabit bir yatrm iin periyotlarn (taksitleri,demelerin) saysn hesaplat. Bu fonksiyonun argmanlar u ekildedir: Faiz oran(rate)- Periyot bana geerli olan faiz yzdesidir. deme(payment)- Periyot bana gerekletirilecek deme miktardr. IRR(Deer ler , Tahmin) FONKSYONU NPER(faiz or an, deme, imdiki deer , gelecekteki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME imdiki deer (present value)-Yatrmn balangcndaki deeridir. Gelecekteki deer (future value)- Yatrmn periyotlarn sonundaki deeridir. Tip(type)- Periyot iindeki demenin eklini belirten bir parametredir. Tip 0 ise deme periyot sonunda, 1 ise periyot banda yaplacaktr. Son iki parametrenin kullanm zorunlu deildir. Kullanlmazlarsa, gelecekteki deer 0 alnr; tip ise 0 kabul edilir. RNEK: Bankadan aylk %6.25 faiz ile ve aylk 5,000,000 TL demeli olarak 60,000,000 TL kredi alnyor. Bu durumda taksitlerin says ne olacaktr? Cevap: 22.866. Demek ki yaklak olarak 23 taksit gerekmektedir. Sabit demeler ve sabit faiz oranna dayal bir deme plannda, periyot bana deme miktarnn ne olacan hesaplar. Faiz oran(rate)-Periyot bana uygulanacak faiz yzdesidir. Periyot says(number of periods) demelerin srecei toplam periyot saysdr. imdiki deer(present value)- Balangtaki kredi miktar. Gelecekteki deer(future value)- Periyotlar sonundaki deerdir. Kullanlmazsa 0 alnr. RNEK: 60,000,000 TL lk bir banka kredisi aylk %5.80 faiz oran ile ve 24 ay demeli olarak alnmtr. Bu durumda aylk demeler ne olacaktr? Cevap: 4,692,750 TL olarak aylk taksit miktarn bulacaksnz. PMT(faiz or an, per iyot says, imdiki deer , gelecekteki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Periyodik ve her periyot iin sabit deme ve sabit faiz oranna dayanan bir yatrm iin, verilen periyottaki anapara(principal) demesinin ne olacan hesaplar. Faiz oran(rate)- Periyot bana uygulanacak faiz yzdesidir. Periyot(period) Hesaplamann yaplaca periyodun numarasdr. Periyot says(number of periods)- demelerin srecei periyotlarn toplam saysdr. imdiki deer(present value)- Balangtaki kredi miktardr. Gelecekteki deer(future value)- Periyotlar sonundaki deerlerdir Tip(type)- 0 ise taksit periyot sonunda, 1 ise periyot banda denecektir. Gelecekteki deer ve tip kullanlmazsa 0 alnr. RNEK: 60,000,000 TL lk bir yatrm, 24 taksitte denecektir. Atlk faiz yzdesi 6.25% tir. Bu yatrm iin ilk 3 periyottaki anapara demelerini bulunuz. Aadaki sonular elde edeceksiniz: Yatrm 60,000,000 TL Taksit 24 Aylk Faiz 6.25% 1.Aylk Anapar a deme 1,141,745.56 2.Aylk Anapar a deme 1,213,104.65 3.Aylk Anapar a deme 1,288,923.69 Bu rnek iin 24, Ay anapara ise 4,603,995.82 TL olarak hesaplanacaktr. PPMT(faiz or an, per iyot,per iyot says, imdiki deer , gelecekteki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Gelecekteki taksitler halinde gerekletirilecek bir yatrmn parasal deerini hesaplar. Faiz oran(rate)- Periyot bana uygulanacak faiz yzdesi. Per iyot says(number of periods)- demelerin srecei periyotlarn toplam says. deme miktar (payment)- Her periyottaki sabit deme miktar. Gelecekteki deer ( future value)- Periyotlar sonundaki deerdir. Tip(type)- Deeri 0 ya da 1 olan bir parametredir. 0 ise deme periyot sonunda, 1 ise bandadr. Gelecekteki deer ve tip ihmal edilirse deerleri 0 alnr. RNEK 1: Aylk 4,950,000 TL lk 24 taksit halinde ve aylk %6.25 lik faiz koullarnda gerekletirilecek olan yatrmn bugnk deeri nedir? 60,714,523.00 TL eklinde sz konusu yatrmn bugnk deerini bulursunuz. RNEK 2: Her ay 7,000,000 TL demek koulu ile, 24 aylk srede geri demek zere alnan kredinin bugnk deeri nedir? Aylk faiz %10 dur. Cevap: 62,893,208 TL Her periyotta sabit miktarlarda deme yapld ve sabit faiz yzdesi uygulandna gre, yatrm miktar, periyot says ve periyot bana deme miktar verildiine gre, uygulanan periyot faizini hesaplar. Parametrelerin anlamlar PV fonksiyonundaki gibidir. PV(faiz or an, per iyot says,deme miktar ,gelecekteki deer , tip) FONKSYONU RATE(per iyot says, deme,imdiki deer ,gelecekteki deer , tip) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME RNEK: 60,000,000 TL lk bir tketici kredisi, 24 taksitte geri denecektir. Taksitlerin miktar sabit ve 5,000,000 TL dr. Buna gre uygulanmakta olan faiz oran nedir? Cevap: Alnan Tketici Kr edisi Miktar 60,000,000 denmek stenen Taksit Says 24 Aylk Taksit Tutar 5,000,000 Aylk Faiz Oran Hesaplanan Rate (Faiz oran) Bir ekonomik varln dorusal ypranma prensibine gre(straight line depreciation) bir periyot iin amortismann hesaplar. Bu metoda dz amortisman da denir. RNEK: 100,000,000 TL lk bir makinann mr 5 yldr ve hurda deeri ise 5,000,000TL dr. Bu makinann her yl iin dz amortismann hesaplaynz. Cevap: 5 yl iin 1.yl 19,000,000 2.yl 19,000,000 3.yl 19,000,000 4.yl 19,000,000 5.yl 19,000,000 6.49% SLN(maliyet, hurda, deer i, mr ) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME Toplam: 95,000,000 TL lk amortisman(anma paylar) elde edilecektir. Belirli bir periyot iin amortisman, (mr+1).mr SYD=(maliyet-hurda deer).per. 2 bantsna gre hesaplar. lk yllarda yksek, son yllara doru dk amortisman deerleri elde edilir. RNEK: 100,000,000 TL lk bir makinann mr 5 yldr ve 5 yl sonra hurda deeri 5,000,000 TL olacaktr. Bu makinann her yl iin amortismanlarn SYD fonksiyonu ile bulunuz. Cevap: Maliyet 100,000,000 Hurda Deeri 5,000,000 mr 5 1.Yl Amor tisman 31,666,666.67 2.Yl Amor tisman 25,333,333.33 3.Yl Amor tisman 19,000,000.00 4.Yl Amor tisman 12,666,666.67 5.Yl Amor tisman 6,333,333.33 Toplam 95,000,000.00 SYD(maliyet, hurda, deer i, mr ,pr iyot) FONKSYONU

VISUAL BASIC LE YAZILIM GELTRME BLM 10 MSFLEXGRID KONTROL NESNES

VISUAL BASIC LE YAZILIM GELTRME MSFLEXGRD KONTROL NESNES MsFlexGrid kontrol nesnesi, Visual Basic uygulamalarnzda Excel sheet lerine benzer yaplar oluturup kullanmanz imkan salar. MsFlexGrid kontrol nesnesi, iinde dikdrtgen eklinde hcreler ieren bir yapdr. Her satrda ve stunda ka adet hcre bulunacan tasarm esnasnda kullanc belirler. (ekil G.1) Properties penceresinde Rows zellii satr saysn ve Cols zellii ise stun saysn belirtmektedir. ekil G.1 MsFlexGrid kontrol nesnesi ve Properties penceresi MsFlexGrid kontrol nesnesindeki hcreler iine metin(text), bitmap, ikon(icon) tipi bilgiler veya metin ve grafik karm bilgiler yklenebilir. Bir hcrenin ierii, boyutlar ve davran, kullanc tarafndan, tasarm esnasnda atanacak parametreler ve kontrol nesnesi ile ilikili olarak gelitirilecek olay prosedrleri(kod) ile kontrol edilir.

VISUAL BASIC LE YAZILIM GELTRME MSFLEXGRID KONTROL NESNESNN ZELLKLER HEIGHT ZELL MsFlexGrid hcrelerinin yksekliini belirler. WIDTH ZELL MsFlexGrid hcrelerinin geniliini belirler. ENABLED ZELL MsFlexGrid kontrol nesnesinin, klavye tular ya da mouse faaliyetlerini dikkate alp alamayacan belirler. nceden atanm deer True dur. Ture iken, olaylara cevap verir. Enabled zellii False yaplrsa, olaylara duyarsz hale gelir. COLS ZELL MsFlexGrid kontrol nesnesindeki stun saysn belirler. nceden atanm daar 2 dir. Tasarm esnasnda zellikler (Properties) penceresinden veya zellik sayfalar (Property Pages) penceresinden ya da icra esnasnda kod yardm ile deeri deitirilebilir. Kod iinde, atama u ekilde gerekletirilebilir: MsFlexGridAd.Cols=KolonSays% ROWS ZELL MsFlexGrid kontrol nesnesindeki satr saysn belirler. nceden atanm deer 2 dir. Tasarm esnasnda zellikler (Properties) penceresinden veya zellik sayfalar (Property Pages) penceresinden ya da icra esnasnda kod yardm ile deeri deitirilebilir. Kod iinde, aadaki ekilde atama yaplabilir. MsFlexGridAd.Rows=SatrSays% COLWIDTH ZELL Belirli bir kolonun geniliini belirlemek iin kullanlr. Sadece icra esnasnda kon iinde deitirilebilir. Kullanl biimi aadaki gibidir: MsFlexGridAd.ColWidth(KolonNo%)=Genilik%

VISUAL BASIC LE YAZILIM GELTRME ROWHEIGHT ZELL Belirli bir satrn yksekliini belirlemek iin kullanlr. Sadece icra esnasnda kod iinde deitirilebilir. Kullanl biimi aadaki gibidir: MsFlexGridAd.RowHeight(SatrNo%)=Ykseklik% COL VE ROW ZELLKLER MsFlexGrid kontrol nesnesi ierisinde o esnada aktif olan hcrenin stun(Col) ve satr(Row) numarasn belirlemek iin kullanlr. Sadece icra esnasnda deerleri deitirilebilir. Aktif hcre deitike Col ve Row deerinin de deiecei aikardr. Satr ve stun dizilerinin(index ) ilk deerleri 0 dr. Yani MsFlexGrid kontrol nesnesinin sol st kesindeki hcrenin satr indisi (Row) 0 ve stun indisi(Col) 0 deerine sahiptir. (Bu indexler FixedRows ve FixedCols deerlerini ierir.) FIXEDCOLS ve FIXEDROWS ZELLKLER MsFlexGrid kontrol nesnesi ierisinde, srekli olarak grntlenmesi istenen satr ve stunlar belirtmek iin kullanlr. Yazl biimi: MsFlexGridAd.FixedCols = SabitKolonNo% MsFlexGridAd.FixedRows = SabitSatrNo% TEXT ZELL Text zellii, aktif hcre iine bir metin(text) bilgisi gnderme veya burada bulunan metin bilgisine erime imkan salar. Aktif hcre, Col ve Row zellikleri ile belirlenir. RNEK: 1) ekil G.2 ve G.3 deki kodlar oluturunuz:

VISUAL BASIC LE YAZILIM GELTRME ekil G.2 MsFlexGrid ile ilgili zellikler uygulamas ekil G.3- MsFlexGrid ile ilgili zellikler uygulamas 2)Run/Start men komutu ile veya F5 tuu ile altrnz.

VISUAL BASIC LE YAZILIM GELTRME ekil G.4- MsFlexGrid hcresine yerleen deerler MsFlexGrid kontrol nesnesi ile ilgili bilgi almak formun herhangi bir yerinde ift tklaynz. Aadaki gibi bir mesaj kutusu alacaktr. ekil G.5 - DblClick olay prosedrnn altrlmas

VISUAL BASIC LE YAZILIM GELTRME TEXTARRAY ZELL MsFlexGrid kontrol nesnesi iindeki herhangi bir hcrenin ieriini deitirmek veya elde etmek iin kullanlr. Btn grid hcreleri tek boyutlu bir dizi gibi dnlr. stenen hcrenin bu dizi iindeki indisini bulmak iin aadaki forml kullanlr: Hcr endisi%=SatrNo%* MsFlexGridAd.Cols+StunNo% Kullanl biimi MsFlexGridAd.TextAr ray(Hcr eninndisi%) RNEK: Stun says 10 satr says 5 olan bir MsFlexGrid kontrol nesnesi iindeki satr numaras 3, stun numaras 5olan bir hcrenin ieriini Col ve Row zelliklerini kullanmadan grntlemek iin aadaki gibi bir satr yazabiliriz. Hcr endisi% = 3* MsFlexGrid1.Cols+5 3*10+5 = 35 MsgBox MsFlexGr idAd.TextAr ray(Hcr eninndisi%) ayet TextArray zellii program iinde kullanlacaksa, hcrenin satr ve stun deerlerini argman olarak alan ve yukardaki formlde olduu gibi hcre indisini bulunduran bir fonksiyon yazmak, programa esneklik kazandracaktr. TEXTMATRIX ZELL Yukardaki zellie benzer fakat burada istenen hcreye ulamak iin satr ve stun deerleri dorudan kullanlabilir. MsFlexGrid kontrol nesnesinin Row ve Col zelliklerini kullanmadan istenen hcreye eriim yapma imkan salar. Bylece aktif hcre deimemi olur. Kullanl biimi aadaki gibidir: MsFlexGridAd.TextMatrix(SatrNo%, StunNo%) = Atama% CELLALIGNMENT ZELL Aktif hcre iindeki verinin, hcre iindeki yerleme biimini belirlemek iin kullanlr. Aktif hcre Col ve Row zelliklerinin gsterdii hcredir. Tasarm esnasnda kullanlamaz. Hcre iinde verilerin yerlemesi aadaki gibidir:

VISUAL BASIC LE YAZILIM GELTRME 0 Sol st(Left Top) 1 Sol Orta(Left Center) 2 Sol Alt(Left Bottom) 3 Orta st(Center Top) 4 Ortann Ortas(Center Center) 5 Ortann Alt (Center Bottom) 6 Sa st(Right Top) 7 Sa Orta (Right Center) 8 Sa Alt (Right Bottom) 9 Genel (String ler iin Sol Orta, saylar iin Sa Orta) eklindedir. Kullanl biimi: MsFlexGridAd.CellAlignment = Atama% RNEK: 1) Formun boyutlarn yeteri kadar bytn ve aadaki kodu oluturunuz: Pr ivate Sub Form_Load() MSFlexGrid1.Cols = 10 MSFlexGrid1.Rows = 2 MSFlexGrid1.FixedRows = 1 For Row = 0 To MSFlexGrid1.Rows - 1 MSFlexGrid1.RowHeight(Row) = 1000 For Col = 0 To MSFlexGrid1.Cols - 1 MSFlexGrid1.Col = Col MSFlexGrid1.Row = Row If Row = 0 Then MSFlexGrid1.ColWidth(Col) = 1100 MSFlexGrid1.CellFontBold = True Select Case Col Case 0 MSFlexGrid1.Text = "Left Top" Case 1 MSFlexGrid1.Text = "Left Center" Case 2 MSFlexGrid1.Text = "Left Bottom" Case 3 MSFlexGrid1.Text = "Center Top"

VISUAL BASIC LE YAZILIM GELTRME Case 4 MSFlexGrid1.Text = "Center Center" Case 5 MSFlexGrid1.Text = "Center Bottom" Case 6 MSFlexGrid1.Text = "Right Top" Case 7 MSFlexGrid1.Text = "Right Center" Case 8 MSFlexGrid1.Text = "Right Bottom" Case 9 MSFlexGrid1.Text = "General" End Select Else MSFlexGrid1.CellAlignment = Col MSFlexGrid1.Text = "(" + Str(MSFlexGrid1.Row) + "," + Str(MSFlexGrid1.Col) + ")" End If Next Col Next Row End Sub 2)Run/Start veya F5 ile formu altrn. Her bir deere karlk verilerin hcrelerin iindeki hizalanmalar net bir ekilde gzkmemektedir. ekil G.6 - CellAlignment zellii

VISUAL BASIC LE YAZILIM GELTRME COLALIGNMENT CellAlignment zelliine benzer. sminden de anlalaca gibi sz konusu metin(text) hizalama ii btn bir stun iin gerekletirilir. Kullanl biimi: MsFlexGr idAd.ColAlignment (ndis%)= Atama% COLDATA ve ROWDATA ZELLKLER Her bir stun ve satr ile ilgili long uzunluunda keyfi bilgi saklamak iin kullanlr. Sadece icra annda kullanlr. Kullanl biimi: MsFlexGridAd.ColData (Stun%)= Keyfi Bilgi MsFlexGr idAd.RowData (Satr%)= Keyfi Bilgi FORMATSTRING ZELL MsFlexGrid kontrol nesnesinin stun genilii, metin(text) hizalama ve sabit satr ve stun metni(text) iin kullanlabilecek bir string ifadedir. MsFlexGrid kontrol nesnesinin FormatStr ing zelliini zmler ve yukardaki amalar dorultusunda yorumlar. Tasarm esnasnda zellikler penceresinden ya da icra esnasnda kod yardm ile deeri deitirilebilir. FormatStr ing birbirinden | Karakteri ile ayrlan ksmlardan oluur.(Not:Bu karakteri klavyede Alt tuuna basl olarak 124 rakamlarn yazarak ele edebilirsiniz) | karakteri arasna yazlan metinler(text) stunlar iin kullanlr ve hizalama ii iin ok zel karakterler kullanlabilir. (<, Sola yanak, ^, Ortalanm ve >, Saa yanak) Metinin genilii stunun geniliini de belirler. RNEK: MsFlexGrid kontrol nesnesinin zellikler penceresini an ve FormatString zelliine aadaki ifadeyi girin: ^Stun1|^Stu1|^St3|^S4|^S5 Kontroln sabit satr iin kullanlan text zellii ve stunlarn genilii aadaki gibi deiir:

VISUAL BASIC LE YAZILIM GELTRME ekil G.7 FormatString zellii ayet stun balklar iin girilen metinler stun saysndan fazla olursa yeni stunlar otomatik olarak oluturulur. Fakat yukardaki rnekte de olduu gibi stun saysndan az ise stun saysnda bir deime olmaz. FormatString ifadesi iindeki noktal virgl karakterinden sonraki string ifade satrlar iin yorumlanr Aadaki rnekte FormatString ifadesi satr balklar iin kullanlabilir. ;Satr1|Sat2| Sat3|Sa4| S5 GRIDLINES ZELL MsFlexGrid kontrol nesnesi zerindeki izgilerin(hcre snr oluturan izgilerin) tipini belirlemek iin kullanlr. 4 farkl durum sz konusudur: 0 flexGridNone Grid izgisi kullanlamaz. 1 flexGridFlat Dz izgi(grid hcreleri iin default) 2 flexGridInsert Sabit grid hcreleri iin 3 flexGridRaised Da dnk grid izgisi Kullanl biimi: MsFlexGr idAd.Gr idLines = Atama% eklindedir.

VISUAL BASIC LE YAZILIM GELTRME ekil G.8 GridLines zellii 0 yalmas ile gridin izgilerinin kaybolmas GRIDLINESFIXED ZELL GridLines zellii ile ayndr. Satr ve stun balklar iin (sabit grid hcreleri iin) kullanlr. GRIDLINESWIDTH ZELL MsFlexGrid kontrol nesnesi zerindeki hcre izgilerinin pixel olarak kalnln belirlemek iin kullanlr. Kullanl biimi: MsFlexGridAd.Gr idLinesWidth = Atama% eklinedir. SCROOLBARS ZELL MsFlexGrid nesnesine ait dey ve yatay har eket ubuklar nn (scrollbars) grntlenip grntlenmeyeceini kontrol eder . 4 farkl durum sz konusudur. Eer ScrollBars parametresi

VISUAL BASIC LE YAZILIM GELTRME 0 ise hibir hareket ubuu grntlenmez. 1 ise yatay hareket ubuu grntlenir. 2 ise dey hareket ubuu grntlenir. 3 ise her ikisi de grntlenir. (ekil G.9) ekil G.9 - ScrollBars parametresi deerleri LEFTCOL, TOPROW ZELLKLER Baz durumlarda, gridin boyutlar, Visual Basic formuna smayacak kadar byk olabilir. Bu durumda, gridin ekrana en soldaki kanc kolonu ve en stteki kanc satrnn grntlenmesini istiyorsanz bu kolon ve satr numaralarn bu zelliklere atamalsnz. Her iki zellik te icra zamannda deitirilebilir zelliklerdendir. Kullanl biimi: MsFlexGridAd.LeftCol = KolonNo% MsFlexGridAd.LeftCol = SatrNo% eklindedir.

VISUAL BASIC LE YAZILIM GELTRME CELLSELECTED ZELL Lojik(boolean) bir zelliktir. True(doru) ya da False(yanl) deerlerinden birini alabilir. Row ve Col zelliklerinin o andaki deerleri ile belirlenmi olan bir hcrenin, kullanc tarafndan seilmi olan blge iinde olup olmadn kontrol eder. COLSEL ve ROWSEL ZELLKLER Kullanc tarafndan, grid zerinde seilmi olan blgeyi belirlemek iin kullanlrlar. RNEK: MsFlexGrid.Col = 2 MsFlexGrid.Row = 2 MsFlexGrid.ColSel = 7 MsFlexGrid.RowSel = 4 atamalar ile aada belirtilmi olan blge seilmi olan veya seilen blgenin ke koordinatlar renilebilir. CLIP ZELL Grid iinde, seilmi olan blgenin ieriini string olarak tayan bir zelliktir. Kullanl biimi:M sFlexGridAd.Clip = Str ing$ eklindedir. String$ iinde, seilen blgedeki bir satra ait komu hcreler arasna, ayra olarak ASCII 9(CHR$(9)) karakteri yerletirilir. Farkl satrlar arasna ise, ayra alarak ASCII 13(CHR$(13)) karakteri yerletirilir.

VISUAL BASIC LE YAZILIM GELTRME RNEK: Deerleri grid iine yerletirilmi olsun. Aadaki yaplm ise MsFlexGrid.Col = 1 MsFlexGrid.Row = 1 MsFlexGrid.ColSel = 3 MsFlexGrid.RowSel = 3 Sonuta X$ stringine X$ = "A" + Chr$(9) + "B" + Chr$(9) + "C" + Chr$(13) + "2" + Chr$(9) + "4" + Chr$(9) + "6" + Chr$(13) + "8" + Chr$(9) + "10" + Chr$(9) + "12" deerleri atanacaktr. FILLSTYLE ZELL Baz durumlarda kullanc, seilmi olan blgedeki bir hcreye giri yapt zaman, girilen bu bilginin tm seilmi hcreler iin de aynen yklenmesini isteyebilir. FillStyle zelliinin deeri 1 yaplrsa, yukarda belirtilen durum salanr, yani seilen blgedeki bir hcreye yaplan giri, tm hcrelere aynen gnderilir. FillStyle zellii 0 ise, bu durumda bilgi sadece yklenmi olduu hcrede kalacaktr. nceden atanm deer 0 dr. HIGHTLIGHT ZELL Deeri Tur e(Doru) ya da False (Yanl) olabilen Boolean(lojik, mantksal) tipte bir zelliktir. Deeri True ise, grid iinde seilmi olan blge kl hale getirilir; False ise, kl hale getirilmez. nceden atanm deer True dur.

VISUAL BASIC LE YAZILIM GELTRME PICTURE ZELL MsFlexGrid kontrol nesnesinin ekrandaki grnnn resmini elde etmek iin kullanlr. Kontroln grnn bastrmak, diskte saklamak, clipboard nesnesine kopyalamak veya baka bir kontroln picture zelliine atamak iin picture zelliinden yararlanlr. Picture zellii ile elde edilen resim, kontroln ekrana smayan satr ve stunlarn da ierir. PICTURETYPE ZELL MsFlexGrid kontrol nesnesinin Picture zellii ile elde edilen bitmap resminin tipini belirlemek iin kullanlr. nceden atanm deer 0 yani flexPictur eColor dr. Yksek kaliteli resim elde etmek iin kullanlr. Fakat retilecek bitmap resmi iin daha fazla hafza gereksinimine ihtiya duyulur. ayet ok byk satr ve stun deerlerine sahip bir MsFlexGrid kontrol nesnesinin resmi elde edilecekse hafza problemi ile karlamamak iin, Pictur eType zelliini 1 yani flexPictureMonochrome olarak deitirmek gerekir. Bylece elde edilecek resim daha az hafza gereksinimine ihtiya duyulan dk kaliteli bir bitmap resmi olacaktr. RNEK: 1)Formun zerine bir tane MsFlexGrid nesnesi ve bir komut butonu yerletiriniz. Komut butonunun Caption zelliini Kopyala olarak ve MsFlexGrid kontrol nesnesinin ScrollBars zelliini de 3 olarak deitiriniz. 2)Aadaki program kodlarn giriniz: Pr ivate Sub Form_Load() MSFlexGrid1.Cols = 16 MSFlexGrid1.Rows = 10 MSFlexGrid1.FixedRows = 1 For Row = 0 To MSFlexGrid1.Rows - 1 For Col = 0 To MSFlexGrid1.Cols - 1 MSFlexGrid1.Col = Col

VISUAL BASIC LE YAZILIM GELTRME MSFlexGrid1.Row = Row If Row = 0 Then MSFlexGrid1.ColWidth(Col) = 750 MSFlexGrid1.Text = "(" + Str(MSFlexGrid1.Row) + "," + Str(MSFlexGrid1.Col) + ")" Next Col Next Row MSFlexGrid1.Height = MSFlexGrid1.Rows * MSFlexGrid1.RowHeight(0) + 100 MSFlexGrid1.Width = (MSFlexGrid1.Cols / 2) * MSFlexGrid1.ColWidth(0) + 100 Command1.Top = MSFlexGrid1.Top + MSFlexGrid1.Height + 200 End Sub Pr ivate Sub Command1_Click() Clipboard.Clear On Error Resume Next MSFlexGrid1.PictureType = 0 Clipboard.SetData MSFlexGrid1.Picture If Error <> 0 Then MSFlexGrid1.PictureType = 1 Clipboard.SetData MSFlexGrid1.Picture End If End Sub 3)Run/Start veya F5 ile formu altrnz ve Kopyala butonuna basnz. (ekil G.10 ) Bylece MSFlexGrid1 kontrol nesnesinin ekranda gzkmeyen satr ve stunlarn da ieren grnts ClipBoard nesnesine kopyalanacaktr.

VISUAL BASIC LE YAZILIM GELTRME ekil G.10 MSFlexGrid1 Kontrol nesnesinin ekrandaki grnm 4)Windows un Star t butonunu kullanarak Programs\Accessoirs\Paint men komutu ile Paint Brush programn altrnz. Edit\Paste men komutu veya Ctr l+Ins tularn kullanarak MSFlexGr id kontrol nesnesinin resmini ekranda grebilirsiniz. (ekil G.11) ekil G.11 MSFlexGrid kontrol nesnesinin Picture zellii ile elde edilen resmi

VISUAL BASIC LE YAZILIM GELTRME CELLPICTURE ZELL MSFlexGrid kontrol nesnesindeki aktif hcreye grnt yklemek iin kullanlr. Hcreye yklenecek olan grnt bir bitmap resmi, ikon(icon), metafile ve baka bir kontroln Picture zellii olabilir. alma annda ve genellikle LoadPicture fonksiyonu ile beraber kullanlr. Kullanl biimi aadaki gibidir: MSFlexGrid1.CellPicture = LoadPicture( ResDosyasYolu\ResDosyassmi veya MSFlexGrid1.CellPicture = BakabirKontrol.Picture CELLPICTUREALIGNMENT ZELL CellPictur eAlignment zellii, resimlerin hcre iindeki hizalamalarn belirlemek iin kullanlr. tasarm annda kullanlmaz. CellAlignment zelliine benzer. Aadaki deerleri alabilir. 0 Sol st(Left Top) 1 Sol Orta(Left Center) 2 Sol Alt(Left Bottom) 3 Orta st(Center Top) 4 Ortann Ortas(Center Center) 5 Ortann Alt (Center Bottom) 6 Sa st(Right Top) 7 Sa Orta (Right Center) 8 Sa Alt (Right Bottom) 9 Gerdirerek(Strech) 10 Tile REDRAW ZELL Yaplan her deiiklikten sonra(satr ve stun eklemek, karmak, boyutlar deitirmek vb. gibi) kontroln otomatik olarak yeniden izilip izilmeyeceini belirlemek iin kullanlr. Deeri True(Doru) ya da False(Yanl) olabilen Boolean(lojik,mantksal) tipte bir zelliktir. nceden atanm deer True dur . Deeri False yaplrsa yaplan deiiklikler ekranda grnmez. Genellikle kontrol zerinde yaplan

VISUAL BASIC LE YAZILIM GELTRME geici deiikliklerde ekrann parlamasn nlemek iin kullanlr. Sadece alma annda kullanlabilir. SORT ZELL MsFlexGrid kontrol nesnesi zerindeki seilen satrlar belirten kritere gre sralamak iin kullanlr. Sadece icra annda geerlidir. Sralama iin aadaki seenekler kullanlabilir. 0 Sralama ilemi yaplmaz. 1 Artan srada sralama, Genel (Textin say veya string ifade olduuna kar ar ver ir .) 2 Azalan srada sralama, Genel 3 Artan srada sralama, Saysal (String ifadeler saysal deerlere dntrlr .) 4 Azalan srada sralama, Saysal 5 Artan srada sralama, String (Byk kk harf duyar sz) 6 Azalan srada sralama, String (Byk kk harf duyarsz) 7 Artan srada sralama, String (Byk kk harf duyar l) 8 Azalan srada sralama, String (Byk kk harf duyarl) 9 zel, Compar e olaynn gereklemesine sebep olur Sort ilemi btn satrlar iin gerekletirilir. ayet sadece istenen satrlarn sralanmas isteniyorsa bu satrlarn Row ve RowSel zellikleri ile belirtilmesi gerekir. Sralanmas istenen satr mouse un sol butonu basl tutularak iaretlenebilir veya kod yardm ile, sralanacak en kk indisli satr ve en byk indisli stun deerleri sras ile, Row ve RowSel deerlerine atanabilir. Birden fazla stunun ieriine gre yaplacak olan sralama ilemi Col ve ColSel zellikleri ile belirlenir ve sralama ileminde ncelik en soldaki stunun ieriine verilir. Aadaki rnei inceleyiniz. RNEK: Col=1 ve ColSel=2 veya Col=2 ve ColSel=1 deerleri ile aada soldaki listeyi Sor t zellii ile sralayacak olursak aada sadaki liste elde edilir. 1 b 9 3 a 4 2 c 2 5 b 7 3 a 4 1 b 9

VISUAL BASIC LE YAZILIM GELTRME 4 c 1 4 c 1 5 b 7 2 c 2 Sor t zelliine 9 deerinin atanmas Compar e olaynn gereklemesine sebep olur. Bylece kullanc Compar e olay prosedr iinde yazaca kod satr ile satrlar ve stunlar zerinde kendi arzusu dorultusunda bir sralama ilemini gerekletirme imkanna sahip olur. Aadaki rnek program oluturarak Sort zelliinin etkilerini inceleyebilirsiniz. 1)Form zerine bir adet MsFlexGrid ve Metin kutusu kontrol nesnesi ile iki adet komut butonu yerletiriniz. 2)Formun kod penceresini an ve Add/Procedur e men komutu yardm ile aadaki prosedr oluturunuz. Public Sub Yenile() Randomize For i% = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1 MSFlexGrid1.TextMatrix(i%, 0) = i% MSFlexGrid1.TextMatrix(i%, 1) = Chr(Int((25 * Rnd) + 65)) MSFlexGrid1.TextMatrix(i%, 2) = Int((9 * Rnd) + 1) Next End Sub Formun ve komut butonlarnn ilgili olaylarna aadaki kod satrn ekleyiniz. Pr ivate Sub Form_Load() MSFlexGrid1.Cols = 3 MSFlexGrid1.Rows = 10 MSFlexGrid1.ColWidth(0) = 500 MSFlexGrid1.ColWidth(1) = 750 MSFlexGrid1.ColWidth(2) = 750 Command1.Caption = "SIRALA" Command2.Caption = "YENLE" Text1.Text = "0" Yenile End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Command1_Click() MSFlexGrid1.Sort = Val(Text1.Text) End Sub Pr ivate Sub Command2_Click() Yenile End Sub ekil G.12 Formun altrlmas MSFLEXGRID KONTROL NESNELER N GEERL OLAN OLAYLAR VE METOTLAR COMPARE OLAYI MsFlexGrid kontrol nesnesinin Sor t zelliine 9 deerinin atanmas Compar e olaynn gerekletirilmesine sebep olur. Argman olarak Integer veri tipindeki row1,row2 ve cmp deerlerini alr. row1 ve row2 sras ile karlatrlan satrlardan ilkini ve ikincisini temsil eden Integer bir deerdir. cmp deeri ise row1 ve row2 arasndaki karlatrma ilemine gre : -1 ayet row1 in row2 nin nnde grntlenmesi isteniyorsa 0 ayet her iki satr bir birine eit ise 1 ayet row1 in row2 den sonra grntlenmesi isteniyorsa deerlerinden birini alabilir.

VISUAL BASIC LE YAZILIM GELTRME ENTERCELL ve LEAVECELL OLAYLARI EnterCell ve LeaveCell aktif hcre deitii zaman meydana gelirler. Yeni aktif yaplacak hcre EnterCell olay gerekleirken bundan nce aktif olan hcrede LeaveCell olay gereklemi olur. SCROLL OLAYI MsFlexGrid kontrol nesnesinin ierii yatay ve dey hareket ubuklarna tklanarak veya klavyeyi kullanarak ya da TopRow ve LeftCol zelliklerini deitirerek hareket ettirildiinde meydana gelir. ROWCOLCHANGE OLAYI MsFlexGrid kontrol nesnesi zerindeki, o esnada aktif olan hcrede bir deiiklik olduu zaman bu olay meydana gelmi olur. Aktif hcrede deiiklik iki sebepten tr olabilir: 1) Kullanc, grid zerinde hareket ederek aktif hcreyi deitirmitir. 2) Aktif hcrenin daha nce anlatlm olan zelliklerinden biri deitirilmitir. SELCHANGE OLAYI Grid ierisinde, seilmi olan blgede bir deiiklik olduu zaman, bu olay meydana gelmi olur. Bu deiiklik, gene iki sebepten tr olabilir: 1) Kullanc grid zerinde hareket etmitir. 2)Seilmi blgedeki hcrelerden birinin zelliklerinde deiiklik yaplmtr. CLEAR METODU MsFlexGrid kontrol nesnesinin her trl ieriini (metin, resim gibi) iptal etmek iin kullanlr. Kontroln satr ve stun saysn etkilemez. ADDITEM METODU Gridlere zg olan bir metottur. Bir gride, satrlar eklemek imkan salar. Yazl biimi: GridAd.AddItem erik$[,ndis%] eklindedir. erik$ ile belirtilen string, yeni satrn ilk stununda yer alacak bilgidir. Dier

VISUAL BASIC LE YAZILIM GELTRME stunlara aktarlacak bilgiler var ise Char(9) (Tab) karakteri ile bu stringe eklenebilir. Kullanm istee bal olan ndis% deikeni, eklenecek satrn yerini belirler REMOVEITEM METODU RemoveItem metodu, gridden bir satr silmek iin kullanlr. Yazl biimi, GridAd.RemoveItem ndis% eklindedir. RNEK: MsFlexGrid1.RemoveItem2 komutu ile 2 nolu satr gridden silinecektir.

VISUAL BASIC LE YAZILIM GELTRME BLM 11 VSUAL BASIC TE GRAFK UYGULAMALARI

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC IN GRAFK DNYASI-RESMLER, ZMLER VE FONTLAR Visual Basic dili, eitli grafikler oluturmak ve izimler yapmak amac ile eitli imkanlar sunmaktadr. Bu blmde bu imkanlar tantlacaktr. RENK SEM 1)TASARIM ESNASINDA RENK BELRLEME Visual Basic te renkler, 16-lk sistemdeki(hexadecimal ) saylarla ifade edilir. Renk bilgisi iin 6 dijitlik yer ayrlr. Bylece 16-lk sistemde &H000000& (0 says) ile &HFFFFFF&(16,77,215 says) saylar arasndaki saylara kar gelen renkler kullanmak imkan ortaya kar. Renk saysnn sonuna konan & sembol, saynn trn long integer olarak tanmlar. Buna gerek vardr nk integer tr 32,768 ile 32,767 arasndaki saylar iin kullanlmaktadr; bu aralk renk saylar iin yeterli deildir. Bu durumda, renk bilgisini integer yerine long integer olarak tanmlamak gerekir. Aadaki tabloda baz renklerin, 16-lk sistemdeki hangi saylara kar geldii verilmitir: Tablo1. Baz nemli Renkler ve 16-lk Sistemdeki Saysal Karlklar 16-lk Sistemdeki Renk Kodu Renk &H000000& Siyah(Renksiz) &HFFFFFF& Beyaz(Btn renkler) &H0000FF& Maksimum Krmz(inde yeil ve mavi yok &H00FF00& Maksimum Yeil(inde krmz ve mavi yok &HFF0000& Maksimum Mavi(inde krmz ve yeil yok &H00FFFF& Sar(Krmz ve Yeil) &H808080& Gri(Tm renklerden ayn oranda karm)

VISUAL BASIC LE YAZILIM GELTRME ekil G.1 Form iin zemin rengi seimi ekil G.1 de grld gibi, Formun Proper ties penceresinde BackColor zelliini seiniz. Yardmc renk diyalog penceresi karnza kacaktr. Bu diyalog penceresi ile Visual Basic in renk paletinden veya Control Paletinde tanmlanm sistem renklerinden birini seebilirsiniz. ayet bir sistem rengi seilirse Control Panelinden ilgili renkte bir deiiklik yapldnda bu eylemin etkisi alan programa ayn anda yansr. Formun zemin rengi iin renk paletinden rnein yeil rengi(&H0000C&) seerseniz. Formun zemini, bu rengi alacaktr. FORMUN RENKLERLE LKL ZELLKLER BACKCOLOR ZELL Formun zemin rengini belirleyen zelliktir. Formun zellikler (Properties)penceresinde BackColor zelliinin sa tarafndaki deere bakarsanz bir hegzadesimal (onaltlk sistemde verilmi) say ile karlaacaksnz;

VISUAL BASIC LE YAZILIM GELTRME &H8000000F&. (ekil G.2) Gerekten de Visual Basic, renkleri 16 lk sistemdeki saylarla temsil edilmektedir. Teorik olarak, 16 lk kodlama ile 16,777,216 farkl renk oluturulabilir. ekil G.2 BackColor(Zemin rengi)zellii Fakat, tasarm esnasnda renk atamas yaplrken 16 lk sistemde say yazmak yerine, Visual Basic in yardmc renk diyalounu kullanmak daha kolay bir yoldur. Hegzadesimal saynn yanndaki buton, mouse yardm ile tklatlrsa ekil G.2 de grlen yardmc renk diyalou ekrana gelir. Buradan mouse yardm ile seilecek olan bir renk, formun zemin rengi olarak atanacaktr. FORECOLOR ZELL Bu zellik, formun n-plan rengini belirler. Kullanm ve renk seimi BackColor zelliindeki gibidir. KULLANICININ KEND RENKLERN BELRLEMES Renk zelliklerini belirlerken, kullanc default(nceden belirlenmi) renk paletini kullanabilecei gibi, temel rengin(Krmz,Yeil,Mavi) karm ile kendiside zel bir renk belirleyebilir. Bunu gerekletirmek

VISUAL BASIC LE YAZILIM GELTRME iin nce View mensnden Color Palette zellii seilir. (veya Alt+V+L tularna birlikte baslr.) Bu ilem sonucunda ekil G.3 deki palet gelir: Bu palette mouse yardm ile bo renk kutularndan oluan bir nesne seilecek olursa Define Colors butonu aktif duruma geecektir. imdi Define Colors butonunu seiniz. ekil G.4 deki ekran gelecektir: ekil G.4 Kullanc rengini tanmlama

VISUAL BASIC LE YAZILIM GELTRME Define Color s penceresinde temel renklerin(krmz-red,yeil-green,mavi-blue) sa tarafndaki kutulardaki saylar deitirerek. Renginizi belirleyebilirsiniz. Hue, Sat, Lum kutular ile de nokta younluunu ve k-glge durumlarn ayarlayabilirsiniz. Ayarlar bitince Add Color butonunu seerek, belirlediiniz rengi palete katnz. 2)CRA ESNASINDA RENK BELRLEME RGB FONKSYONU Herhangi bir rengin, temel rengin(Kmz(Red),Yeil(Green),Mavi(Blue)) karm ile elde edeceimizi biliyoruz. RGB fonksiyonu bu ilemi gerekletiren bir fonksiyondur. Yazl biimi: RGB(Krmz Miktar ,Yeil Miktar , Mavi Miktar ) eklindedir. Her bir argman 0-255 arasnda bir tamsay olabilir. Argmanlarn ilevi, her renkten, karmdaki miktarn ne olacan belirlemektir. rnein: aadaki kod iinde, formun zemin rengi, krmzdan 100, yeilden 30, maviden 200 miktarnda katlarak belirlenmektedir. Sub Form_Load() Form1.BackColor = RGB(100,30,200) End Sub QBColor FONKSYONU cra esnasnda renk seimi iin baka bir imkan QBColor fonksiyonunu kullanmaktr. Fonksiyonun yazl biimi: QBColor (Renk Kodu) eklindedir. Renk kodu, 0 ile 15 arasnda deerler alabilen parametredir. Renk kodunun deerleri ve anlamlar, Tablo 2 de verilmitir:

VISUAL BASIC LE YAZILIM GELTRME Tablo 2. Renk Kodu Deerleri ve Anlamlar 0 Siyah 5 Mor 10 Ak Yeil 1 Mavi 6 Kahverengi 11 Ak Cyan 2 Yeil 7 Beyaz 12 Ak Krmz 3 Firuze 8 Gri 13 Ak Mor 4 Krmz 9 Ak Mavi 14 Sar 15 Yksek Younluklu Beyaz cra esnasnda renk belirlemek iin bir dier yol da Visual Basic in belirledii renk sabitlerini dorudan ilgili nesnenin renk zelliine atamaktr. rnein: Pr ivate Sub Form_Load() Form1.BackColor = vbBlue End Sub eklinde bir kod icra edilecek olursa formun zemin rengi mavi olacaktr. Visual Basic in normal renkler ve sistem renkleri iin kulland renk sabileri Tablo 3 de verilmitir. Tablo 3. Visual Basic in belirledii renk sabitleri Renkler Sabit Hegzadesimal deer i Aklama vbBlack &H0 Siyah vbRed &HFF Krmz vbGr een &HFF00 Yeil vbYellow &HFFFF Sar vbBlue &HFF0000 Mavi vbMagenta &HFF00FF Mor vbCyan &HFFFF00 Firuze vbWhite &HFFFFFF Beyaz Baz nemli Sistem Renkler i vbScrollBars &H80000000 Hareket ubuklar rengi vbDeskop &H80000001 Windows masa st rengi vbActiveTitleBar &H80000002 Aktif balk ubuu rengi vbInactiveTitleBar &H80000003 Pasif balk ubuu rengi

VISUAL BASIC LE YAZILIM GELTRME VbMenuBar &H80000004 Men ubuu rengi VbWindowBackground &H80000005 Pencere zemin rengi VbWindowFrame &H80000006 Pencere ereve rengi VbMenuText &H80000007 Men yaz rengi VbWindowText &H80000008 Pencere yaz rengi VbTitleBarText &H80000009 Balk ubuu yaz rengi VbActiveBorder &H8000000A Aktif pencere rengi VbInactiveBorder &H8000000B Pasif pencere rengi VbApplicationWorkspace &H8000000C MDI uygulama zemin rengi VbHighlight &H8000000D Ikl ubuk zemin rengi VbHighlightText &H8000000E Ikl ubuk yaz rengi VbButtonFace &H8000000F 3D nesnesi zemin rengi VbButtonShadow &H80000010 Buton glge rengi VbGr ayText &H80000011 Gri yaz rengi VbButtonText &H80000012 Push buton yaz rengi VbInactiveCaptionText &H80000013 Aktif olmayan balk rengi VbInfoText &H80000017 Bilgi kutusu yaz rengi VbInfoBackground &H80000018 Bilgi kutusu zemin rengi EKRANIN BOYUTLARI VE LEKLEME Formlar ve resim kutular iin kullanlan default(nceden atanm) uzunluk birimi twip tir. 1 twip = 1/1440 inch tir. Twip cinsinden, 14 inch lik bir VGA monitrnn lleri ve ke koordinatlar aada verilmitir. 14.inchlik VGA Monitr

VISUAL BASIC LE YAZILIM GELTRME LEKLEME Scale szc ile beleyen zellikler, grafik elemanlarnn koordinat sistemini belirler.(Formlarda, resim kutusunda, printerde) SCALEMODE ZELL ScaleMode zellii, form zerinde kullanlacak koordinat sistemi iin bir birim belirlemek imkan salar. ekil G.5 de grld gibi, bu zellik iin 8 farkl deer kullanlabilir. ekil G.5 ScaleMode zellii deerleri Tablo 3. ScaleMode zellii deerleri ScaleMode Deer i Bir im Edeer i 0 Kullanc tarafndan belirlenmi 1 Twip 1/1440 Inch 2 Nokta(Point) 1/72 Inch 3 Pixel Gerek resim noktas 4 Karakter Yatay 120 Twip Dey 240 Twip 5 Inch

VISUAL BASIC LE YAZILIM GELTRME 6 Cm 7 Mm SCALETOP, SCALELEFT ZELLKLER Form zerine nesneler yerletirirken, gz nne alnacak olan koordinat ekseninin balangcn belirleyen parametrelerdir. nceden atanm(default) deerler her ikisi iin de 0 dr; yani koordinat ekseni balangc )0,0) noktas formun sol st kesidir. Bu zelliklere pozitif deerler atanmas ile, koordinat ekseni balangc sola, yukarya doru kayacaktr. Negatif deerler atand takdirde de koordinat ekseni formun iine doru kayacaktr. SCALEHEIGHT, SCALEWIDTH ZELLKLER Kullanc formu leklemek iin kendi birimlerini kullanmak istemesi durumunda kullanlabilecek olan zelliklerdir. rnein kullanc ScaleHeight=150 atamas ile form yksekliini 150 birim ve ScaleWidth=150 atamas ile de form geniliini 150 birim olarak belirleyebilir. Bu durumda koordinat ekseni balangc (75,75) noktas olacaktr. ScaleLeft, ScaleTop, ScaleHeight ve ScaleWidth zelliklerine bir atama yaplnca, ScaleMode zellii otomatik olarak 0 yaplr SCALE METODU Kullancnn, ekran zerinde, kendi koordinat sistemini tanmlamasnn baka bir yolu da, Scale metodunu kullanmaktr. rnein: Scale(-500,250)-(500,-250) komutu ile, ekrann sol st ke koordinatlar 500,250 ve sa alt ke koordinatlar da 500,-250 olarak tanmlanacaktr. Buna gre ekran aadaki ekilde tanmlanan noktalara sahip olacaktr:

VISUAL BASIC LE YAZILIM GELTRME TASARIM ESNASINDA DORU VE EKLLER ZMEK Tasarm esnasnda, form zerine doru paras ya da ekil (dikdrtgen, daire, elips vb) izmek iin, ara kutusu iindeki Line(Doru) ve Shape(ekil) adl kontrol nesnelerinden yararlanlabilir. LINE KONTROL NESNES Ara kutusu iinde, sol tarafta grlen tool, Line(izgi) adl kontrol nesnesidir ve tasarm esnasnda uygun nesneler zerine doru paralar izmek mac ile kullanlr. Line kontrol nesnesinin zellikleri ekil G.6 da grlmektedir. BorderColor zellii ile, izilecek doru parasnn rengi belirlenir. (ekil G.7) BorderStyle zellii ile, izilecek doru parasnn izgi zellii belirlenir. 6 farkl durum sz konusudur. ekil G.8 de grlen, BorderStyle zellii seeneklerinde, Dash izgi, Dot nokta, Tr anspar ent saydam, Solid ise srekli ii dolu izgi anlamndadr. Buna gre, Dash-Dot-Dot ifadesi, bir izgi ve izleyen 2 noktadan oluan kesikli izgiyi anlatmaktadr. BorderWidth zellii ile,izginin kalnl pixel trnden belirtilir. ekil G.9 da kalnl 9 pixel olan bir izgi grlmektedir. Visible zellii, True ya da False olabilen Boolean tipte bir zelliktir. ekil G.6 Line kontrol nesnesi

VISUAL BASIC LE YAZILIM GELTRME ekil G.7 Doru parasnn renginin belirlenmesi ekil G.8 izgi stilinin belirlenmesi ekil G.9 izgi kalnlnn 9 pixel olmas hali Visible zellii True ise, doru paras grnr haldedir. (X,Y1) ve (X2,Y2) koordinatlar ile belirlenen noktalar doru parasnn u noktalarnn koordinatlardr.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: 1)Form zerine tasarm esnasnda bir Line kontrol nesnesi ve bir komut butonu yerletiriniz. Aadaki kodu oluturunuz: 2)Run/Start ile kodu altrnz. Komut butonunu her clicklediinizde, farkl bir blgede, farkl kalnlk ve renkte bir doru paras izilecektir. (ekil G.10) SHAPE KONTROL NESNES Shape kontrol nesnesi, tasarm zamannda ve icra zamannda deitirilebilen eitli zellikleri sayesinde, daire, elips, dikdrtgen vb ekiller izebilmeyi salayan bir kontrol nesnesidir.

VISUAL BASIC LE YAZILIM GELTRME BLM 12 VSUAL BASIC TE LER GRAFK UYGULAMALARI

VISUAL BASIC LE YAZILIM GELTRME ekil G.10 cra esnasnda izilen doru paras Aada,Shape kontrol nesnesinin en nemli zellikleri verilmektedir. SHAPE ZELL Shape zellii, Shape nesnesinin oluturaca ekli belirleyen bir parametredir. 6 Farkl deere sahiptir. Shape zellii deer i Bu deer in sonucu olar ak izilen ekil 0 Dikdrtgen(Default) 1 Kare 2 Elips 3 Daire 4 Yuvarlatlm dikdrtgen 5 Yuvarlatlm kare BACKSTYLE ZELL Backstyle zellii, izilecek eklin iinin saydam m yoksa renkli mi olacan belirleyen bir parametredir. Backstyle in deeri 0 ise, eklin ii saydam olacaktr; Backstyle in deeri 1 ise eklin ii renkli olacaktr. BORDERWIDTH ZELL BorderWidth zellii, ekle ait izgilerin kalnln belirleyen zelliktir. Pixel cinsinden llr ve 0-81192 arsnda deerler alabilir. BORDERSTYLE ZELL ekli ereveleyen izgilerin karakterlerini belirleyen bir zelliktir. Aadaki tabloda verilen deerlere sahip olabilir:

VISUAL BASIC LE YAZILIM GELTRME BorderStyle zellii deeri Snr izgisinin karakteri 0 Snr izgisi yok 1 Snr izgisi srekli(default) 2 Snr izgisi kesik izgi 3 Snr izgisi noktal izgi 4 Snr izgisi izgi-nokta eklinde kesikli 5 Snr izgisi,izgi-nokta-nokta eklinde kesikli izgi 6 Snr izgisi eklin iinde kalr FILLCOLOR ve FILLSTYLE ZELLKLER FillColor zellii, eklin iinin doldurulmas esnasnda kullanlacak olan rengi belirler. FillStyle zellii ise, eklin iinin hangi karakterlerde doldurulacan belirler. FillStyle zellii iin, 0-7 arasnda deerler kullanlabilir. Bunlarn etkisi aadaki ekilde gsterilmitir: RNEK UYGULAMA: 1)Form zerine 8 adet Shape kontrol nesnesi ve bir adet komut butonu yerletiriniz. Komut butonunun Caption zelliini EKL SE olarak deitiriniz. Shape nesnelerinin her birinin Name zelliini Shape1 eklinde atayarak bir kontrol dizisi oluturunuz. (ekil G.11)

VISUAL BASIC LE YAZILIM GELTRME 2)Aadaki kodu giriniz: Pr ivate Sub Command1_Click() For a = 0 To 7 Shape1(a).BorderWidth = 4 Shape1(a).BackStyle = 1 Shape1(a).BorderColor = QBColor(15 * Rnd) Shape1(a).FillColor = QBColor(15 * Rnd) Shape1(a).BackColor = QBColor(15 * Rnd) i = Int(Rnd * 6) Shape1(a).Shape = i Shape1(a).FillStyle = a Next a End Sub ekil G.11 - Shape kontrol nesneleri ve komut butonu 3)Run/Start men admlar ile projeyi altrnz. EKL SE butonunu her clicklediinizde, farkl zelliklerde olumu bir ekiller dizisi greceksiniz. (ekil G.12) VISUAL BASIC IN KEND KOMUTLARI YARDIMI LE KOD NDE GRAFKLER OLUTURMA Nesne,PSET [STEP] (X,Y) [,Renk] KOMUTU

VISUAL BASIC LE YAZILIM GELTRME cra esnasnda, belirtilen nesne iinde (X,Y) koordinatlar ile belirtilen noktaya bir nokta yerletirir. STEP seenei kullanlrsa, X,Y koordinatlar, CurrentX ve CurrentY ile belirtilen krsr(cursor) pozisyonlarna gre izafi(relative) koordinatlar olarak alnr; STEP seenei kullanlmazsa, bu durumda X,Y mutla koordinatlar olarak alnacaktr. ekil G.12 Farkl ekiller dizisi oluturan uygulamann kts. PSET komutunda, renk belirtilmezse, noktann yerletii nesnedeki ForeColor zellii renk olarak alnr. RNEK UYGULAMA: Bu uygulamada, y=x/100 parabol ile y=x/1000 ve y= -x/1000 kbikleri iki komut butonuna bal olarak izdirilecektir. Bu amala u admlar izleyiniz: 1)Form zerine Command1 ve Command2 adl iki komut butonu yerletirerek bunlarn Caption zelliklerini PARABOL ve KBK yapnz. Formun Dr awWidth zelliini 3 yapnz. 2)Aadaki kodlar oluturunuz.: Pr ivate Sub Command1_Click() Rem PARABOL ZM Scale (-1000, 1000)-(1000, -1000) Line (-1000, 0)-(1000, 0) Line (0, 1000)-(0, -1000) r = QBColor(Rnd * 15)

VISUAL BASIC LE YAZILIM GELTRME For i = -500 To 500 PSet (i, i * i / 100), r Next i End Sub Pr ivate Sub Command2_Click() Rem KBK ZM Scale (-1000, 1000)-(1000, -1000) Line (-1000, 0)-(1000, 0) Line (0, 1000)-(0, -1000) r1 = QBColor(Rnd * 15) r2 = QBColor(Rnd * 15) For i = -100 To 100 PSet (i, i * i / 1000), r1 PSet (i, -i * i * i / 1000), r2 Next i End Sub 3)Run/Start seiniz. PARABOL clickleyince, y=x/100 parabolnn, KBK butonunu clickleyince de y=x/1000 ve y= -x/1000 kbiklerinin izildiini greceksiniz. Renkler rasgele setirildii iin, her clicklemede farkl renklerde eriler grntlenecektir. (ekil G.13) ekil G.13 Parabol ve Kbikler

VISUAL BASIC LE YAZILIM GELTRME KOD LE DORU PARASI ZM-LINE KOMUTU Line komutu, doru paras, dikdrtgen ve kareler oluturmak iin kullanlr. Yazl biimi: Nesne,LINE [[STEP] (X1,Y1)-[STEP] (X2,Y2) [,Renk] ,B[F]]] eklindedir. X1,Y1 noktasndan veya CurrentX ve CurrentY ile belirtilen mouse pozisyonundan X2,Y2 noktasna bir doru paras izer. Her iki nokta iin de STEP szc kullanlarak izafi(relative) koordinatlar kullanlabilir. Renk parametresi kullanlmazsa, doru parasnn iine yerletirildii cismin ForeColor zellii renk olarak alnr. B parametresi ilave edilirse, kegeni X1,Y1 ve X2,Y2 noktalar ile belirlenen dikdrtgen izilir. F parametresi kullanlrsa, bu dikdrtgen doldurulur. Doldurma rengini FillColor zellii beliler. RNEK UYGULAMA: 1)Forma bal olarak aadaki kodu oluturunuz: Pr ivate Sub Form_Click() Scale (-1000, 1000)-(1000, -1000) For i = 1 To 5000 Step 100 Line (-1000 + i, 1000 - i)-(-800 + i, 800 - i), QBColor(15 * Rnd), BF Next i End Sub 2)Run/Start seiniz. Formu clickleyiniz. ekil G.14 teki kty elde edeceksiniz: ekil G.14 Line Uygulamas

VISUAL BASIC LE YAZILIM GELTRME DARE VE ELPSLER Daire,elips ya da yaylar izmek iin, Cir cle metodu kullanlr. Bu metodun yazl biimi: Nesne.CIRCLE [STEP] (X,Y),YARIAP [,RENK][,[BALANGI AISI],[BT AISI],[BASIKLIK]] eklindedir. X,Y koordinatlar ile belirtilen nokta izilecek daire, elips ya da yayn merkezidir. STEP parametresi kullanlmsa, X,Y koordinatlar, Cur r entX ve Cur rentY ye gre izafi olarak belirlenecektir. Renk zellii kullanlmamsa, iine yerletirildii nesnenin, For eColor rengini alr. Balang as ve biti as belirtilirse, daire yerine yay izilecektir. Basklk, dey ve yatay eksen uzunluklarnn birbirine oran olarak tanmlanr. Dair e de bu oran 1 dir. RNEK UYGULAMA: 1)Forma bal olarak aadaki kodu giriniz: Pr ivate Sub Form_Click() Scale (-1000, 1000)-(1000, -1000) k = 1: s = 1 For i = 1 To 3000 Step 100 Circle (-800 + i, 1000 - i - 200), 150, QBColor(Rnd * 15), , , k k = k * Rnd If k < 0.5 Then k = 0.5 s = s + 1 If s = 5 Then k = 1 Next i End Sub 2)Run/Start ile kodu altrnz. Formu clickleyiniz. ekil G.15 teki sonucu elde edeceksiniz. Kod iinde basklk deitirilerek daire ya da elips izilmesi salanmakta ve elipslerin dejenere olmamas iin de baskln 0.5 ten az olmamasna msaade edilmemektedir.

VISUAL BASIC LE YAZILIM GELTRME ekil G.15 - Daire ve Elipsler MSCHART KONTROL NESNES Visual Basic in 5.0 versiyonu ile beraber gelen bir kontroldr. Daha nceki versiyonlarda kullanlan Gr aph nesnesi yerine kullanlr. Bu kontrol nesnesi ile ilikili dosya, MSCHART.OCX adn tar. Graph kontrol nesnesini uygulamamza katmak iin aadaki admlar izlemelisiniz: 1)Project/Components mensn seiniz. Karnza gelen diyalog penceresinde Microsoft Char t Control iaretleyiniz.(ekil G.16) ayet Components diyalog penceresinde controls tab nda listelenen kontroller arasnda Mikrosoft grafik kontroln gremiyorsanz Browse butonunu kullanarak MSCHART.OCX dosyasnn disk zerindeki yerini belirtmeniz gerekir.

VISUAL BASIC LE YAZILIM GELTRME ekil G.16 Graph kontrol nesnesinin seilmesi 2)Components penceresinde OK butonunu seiniz. MsChar t nesnesi Toolbox iinde kacaktr.(ekil G.17) ekil G.17 MsChart kontrol nesnesi MSCHART KONTROL NESNESNN ZELLKLER MsChart kontrol nesnesini mouse yardm ile form zerine yerletirdiinizde, rasgele 4 veri deeri ieren 5 adet stun grafii otomatik olarak izilecektir. MsChart kontrol nesnesi ile 3 boyutlu grafikler elde etmek mmkndr. Grafikleri boyutlu dndnzde birden fazla sayda farkl veri kmelerini, kullanacak nc eksen boyunca temsil etme imkan vardr. Birden fazla saydaki bu veri

VISUAL BASIC LE YAZILIM GELTRME kmelerini 2 eksenli bir dzlemde gstermek iin ise her bir veri kmesini seilen herhangi bir eksen boyunca yan yana listelemek gerekir. (veya veri kmelerine ait stunlar) Bu iki ekseni satr ve stun olarak kullandmz dnrsek tabi olarak farkl veri kmelerini ayn satr boyunca listelemek daha uygun olacaktr. MsChart kontrol farkl veri kmelerine ait grafiksel gsterimi birbiri ardna izerek gsterir. Bu ilem, boyutlu dzgn cisimleri atmzda yan yzlerine tek bir sra zerinde yan yana grntlenmesi gibi dnebiliriz. Kontrol ile listelenecek btn stun grafiklerinin ver deerleri bir matris mant iinde veri gridinde tutulur. te bu amala MsChart kontrolleri ile alrken stun says ile beraber satr saysn da belirlemek gerekir. imdi kullancnn kendi verisi ile ilikili olarak tek bir stun grafii izdirebilmesi iin aadaki admlar izlenir: 1)MsChart nesnesi seili iken Properties penceresinde, ColumnCount zelliini veri miktarnza eitleyiniz ve RowCount zelliini 1 yapnz. rnein aadaki tabloyla ilikili bir stun grafii oluturmak istediinizi varsayalm: lke Nfus ALMANYA 80000000 AVUSTURYA 8000000 ABD 250000000 TRKYE 60000000 ROMANYA 20000000 MACARSTAN 10000000 Bu duruma ColumnCount zellii 6 olarak set edilecektir. 2)AutoIncr ement zelliini True yapnz. 3)Data zelliinin yanndaki kutuya yukardaki tabloda buluna nfus verilerini klavyeden giriniz. Her veriden sonra enter a basnz ekil G.18 deki gibi, kendi verinize uygun bir stun grafii oluturulacaktr:

VISUAL BASIC LE YAZILIM GELTRME ekil G.18 - Kullancnn kendi ver isini girmesi COLUMN ve ROW ZELLKLER MsChar t nesnesinde istenen stunu ve satr semek iin kullanlr. AutoIncr ement zellii True yaplacak olursa, Data zelliine girilen her farkl deerden sonra Enter a basldnda Row deeri ncelikle arttrlr. Baka arttrlacak satr deeri yoksa Column deeri bir arttrlr. Bylece kullancnn tasarm esnasnda kendi deerlerini daha kolay bir ekilde girmesi salanr. COLUMNCOUNT ve ROWCOUNT ZELLKLER ColumnCount zellii ile grafik iin kullanlacak o anki veri gridindeki stun says belirtilir. RowCount zellii ise grafiin veri gridindeki satr saysn belirtmek iin kullanlr. COLUMNLABEL ve ROWLABEL ZELLKLER Grafiin ilgili stun ve satr deerlerinde listelenecek etiket zellii iin kullanlr. 2 boyutlu grafiklerde stun iin kullanlan etiket deerleri grnmez. ShowLegend zellii True yaplacak olursa stun iin kullanlan aklamalar grafiin yannda listelenir. COLUMNLABELCOUNT ve ROWLABELCOUNT ZELLKLER Veri gridindeki stun ve satr etiketlerinin seviyelerini belirtir. Default(ilk deer) olarak deerleri 1 dir. Fazladan etiket bilgisine ihtiya duyulduunda bu deerleri arttrarak grafik iin aklayc etiket deerleri kullanlabilir.

VISUAL BASIC LE YAZILIM GELTRME COLUMNLABELINDEX ve ROWLABELINDEX ZELLKLER Veri gridindeki stun ve satr etiketlerine erimek iin kullanlr. lgili index deeri kullanlarak stun ve satr etiket deerlerine yeni deerler atanabilir veya bu etiket deerleri bilgi edinmek amac ile elde edilebilir. CHARTTYPE ZELL izilecek grafiin tipini belirler. 0,1,2,......,9,14,16 eklinde numaralandrlm 12 farkl tip seilebilir. ekil G.19 ChartType zellii deerleri imdi MsChart nesnesinin yukarda anlatlan zellilerini rnek program zerinde kullanalm. Aadaki admlar izleyiniz. 1)Form zerine bir komut butonu ve iki adet seenek butonu yerletirin ve Caption zelliklerini ekil G.20 deki gibi deitiriniz. 2)2D balkl seenek kontrolnn Value deerini True olarak deitiriniz. 3) Aadaki kod satrlarn giriniz: Pr ivate Sub Option1_Click() Command1.Value = True End Sub Pr ivate Sub Option2_Click() Command1.Value = True End Sub

VISUAL BASIC LE YAZILIM GELTRME ekil G.20 Form zerine kontrollerin yerletirilmesi Pr ivate Sub Command1_Click() Dim SatirSayisi As Integer Dim SutunSayisi As Integer Dim eSatirSayisi As Integer 'Etiket Satr Seviyesi Dim eSutunSayisi As Integer 'Etiket Stun Seviyesi Dim DataGrid As IVcDataGrid 'Veri Gridi Nesnesi Set DataGrid = MSChart1.DataGrid If Option1.Value = True Then MSChart1.chartType = VtChChartType2dBar Else MSChart1.chartType = VtChChartType3dBar End If With MSChart1.DataGrid SatirSayisi = 2 SutunSayisi = 6

VISUAL BASIC LE YAZILIM GELTRME eSatirSayisi = 2 eSutunSayisi = 2 ColumnLabelCount = 2 .SetSize eSatirSayisi, eSutunSayisi, SatirSayisi, SutunSayisi .RandomDataFill .ColumnLabel(1, 2) = "Gelimekte Olan lkeler" Sutun = 2 .ColumnLabel(4, 2) = "Gelimi lkeler" .RowLabel(1, 2) = "1990'dan sonra" .RowLabel(2, 2) = "1990'dan nce" End With End Sub 4)F5 tuu ile formu altrnz ve iz balkl butona tklaynz. Aadaki gibi bir grafii elde edeceksiniz. ekil G.21 - Grafiin 2D olarak izdirilmesi iz komutu her tklandnda RandomDatFill metodu ile veri gridi gelii gzel deerler ile yeniden doldurulur ve farkl 2D grafik kts elde edilir. 3D balkl seenek butonuna tklayacak olursanz bu sefer grafiimiz boyulu bir grnm ile ve aadakine benzer bir ekilde elde edilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil G.22 Grafiin 3D olarak izilmesi TITLE ZELL Graph nesnesi ile oluturulan grafie balk vermek iin kullanlr. FOOTNOTETEXT ZELL Grafiin alt satrna belirtilen ifadenin yazlmasn salar. Pie tipi grafiklerde etkisi yoktur. ekil G.23 MsChart kontrolnn zellik sayfas (Text tab )

VISUAL BASIC LE YAZILIM GELTRME izilecek grafiin btn metinler ile ilgili ayarlamalar kontroln zellikler penceresinde Text tab seilerek daha pratik bir ekilde gerekletirilebilir. (ekil G.23) BORDERSTYLE ZELL izilecek grafiin erevesini belirlemede kullanlr. Default(ilk deer) olarak 0-VtBorderStyleNone deeri alr ve grafik erevesiz izilir. ereve iin 1-VtBorderStyleFixedSingle deerini semek gerekir. (ekil G.24) RANDOMFILL ZELL True veya False deeri alabilir. Grafii oluturmak iin kullanlan veri gridindeki verilerin gelii gzel deerler alp alamayacan belirtmek amac ile kullanlr. Default(ilk deer) olarak True deerini alr ve grafie eklenen her yeni satr ve stun deeri iin gelii gzel deerler retir. False yaplrsa eklenen satr ve stun deerleri iin hibir deer retilmez ve gerekli verilerin kullanc tarafndan girilmesi gerekir. SERIESCOLUMN ZELL Veri kmelerindeki serilerin grafik zerindeki pozisyonlar iin kullanlr. Pozitif tamsay deerleri alabilir. Grafik zerindeki seriler(rnek grafiimiz iin ubuklar) SeriesColumn deeri en kk olan en bata olacak ekilde sralanrlar. SeriesColumn deerler ardk sra olmak zorunda deildir. Ayn deere sahip seriler yn eklinde(st ste) gsterilirler. rneimizde stunlarn SeriesColumn deerlerini aadaki gibi deitirirseniz grafik zerindeki ubuklarn ters srada gsterildiini greceksiniz. Column Yeni SeriesColumn Deeri 1 6 2 5 3 4 4 3 5 2 6 1

VISUAL BASIC LE YAZILIM GELTRME ekil G.24 -Serilerin yerlerinin SeriesColumn ile deitirilmesi SERIESTYPE ZELL Column ile seilmi olan aktif serinin grafik tipini belirtmek iin kullanlr. Char tType zelliine bal olarak farkl seri tipleri kullanlabilir. SHOWLEGEND ZELL Stunlar iin kullanlan aklamalarn grafiin yannda listelenmesi iin kullanlr. MsChart kontrol nesnesinin zellikler penceresinde stunlarn etiket zelliklerini sras ile ABD, ING, FR, TUR, ALM VE ITL olarak deitirin ve ShowLegend zelliini True yapn. (NOT:Bu etiket deitirme ilemi yle yaplr: ilk olar ak zellikler pencer esinde Column zellii 1 dir bu srada ColumnLabel zelliine ABD yazar ak enter a basn ING yazmak iin Column deerini 2 yaparak ColumnLabel a ING yazn ve dierlerini de bu ekilde deitiriniz.) ekil G.25 ShowLegend zelliinin True yaplmas

VISUAL BASIC LE YAZILIM GELTRME Girilen etiket deeri grafiin yan tarafnda aklayc bilgi olarak listelenecektir. (ekil G.25) (Not: Serilerin sralarna daha nceden deitirdiimiz iin aklamalar serilerin Ser iesColumn zelliine gre son girilen etiket zellii bata olacak ekilde listelenir.) CHART3D ZELL Salt okunabilir bir zelliktir ve True veya False deerleri alabilir. izilen grafik 3D ise bu zellik True aksi takdirde (yani 2D ise) False deeri alr. CHARTDATA ZELL Herhangi bir iki boyutlu dizinin ieriini grafiin veri gridine aktarmak iin veya grafiin veri gridindeki deerleri elde etmek iin kullanlr. Aadaki admlar izleyiniz, 1)Formun zerine bir komut butonu yerletirin ve Caption zelliini Ver Gridi olarak deitiriniz. Form zerindeki dier kontrollerin Visible zelliini false yapnz ve aadaki satr ekleyiniz: Pr ivate Sub Command2_Click() Static BuyukKucuk As Boolean Dim VGrid() Dizi = MSChart1.ChartData For i = LBound(Dizi, 1) To UBound(Dizi, 1) For j = LBound(Dizi, 2) To UBound(Dizi, 2) MsgBox Dizi(i, j) Next Next ReDim VGrid(LBound(Dizi, 1) To UBound(Dizi, 1), LBound(Dizi, 2) To UBound(Dizi, 2)) For i = LBound(Dizi, 1) To UBound(Dizi, 1) For j = LBound(Dizi, 2) + 1 To UBound(Dizi, 2) If i = 0 Then If BuyukKucuk = False Then VGrid(i, j) = LCase(Dizi(i, j))

VISUAL BASIC LE YAZILIM GELTRME Else VGrid(i, j) = UCase(Dizi(i, j)) End If Else VGrid(i, j) = Dizi(i, j) * 10 End If Next Next VGrid(1, 0) = Dizi(1, 0) MsgBox "Veri gridinin ierii deitirilecek" MSChart1.ChartData = VGrid BuyukKucuk = Not (BuyukKucuk) End Sub 2) F5 tuu ile formu altrnz ve Veri Gridi isimli butona tklaynz. ekil G.26 daki gibi veri gridindeki veriler teker teker listelenecektir. Yukardaki program satrlar her altrldnda nce grafiin veri gridini listelemekte ve daha sonra grafiin veri gridindeki saysal deerleri 10 ile arparak ve stunlarn etiket deerlerini byk harfse kk harfe(veya tersi bir ekilde) evirerek veri gridini deitirmektedir. ekil G.26 Veri Gridinin listelenmesi ve gncellenmesi

VISUAL BASIC LE YAZILIM GELTRME CUSTOM ZELL Oluturulan grafiin eitli zellikleri iin kullancnn deikenler yamasn salayan menler sunar. rnein, Custom zelliinin yanndaki buton seilirse veya form zerinde kontrol seilip mouse un sa butonuna baslnca alan menden Proper ties seenei seilirse kontroln zellikler penceresi gelecektir. ekil G.27) Bu pencerede Grafik tr,fontlar, etiketler, zemin vb ile ilikili eitli deiiklikler yaplabilir. rnein, Chart seilerek ChartType penceresine Pie ifadesi seilirse, mevcut dataya kar gelen daire grafii izilecektir. ekil G.26 Custom zellii ile daire grafiinin oluturulmas

VISUAL BASIC LE YAZILIM GELTRME BLM 13 VSUAL BASIC TE PROSEDRLER

VISUAL BASIC LE YAZILIM GELTRME OLAY PROSEDRLER (EVENT PROCEDURES) Olay prosedrlerini bu noktaya kadar olan blmlerde eitli yerlerde grdnz. Bir olay prosedrnn, nesnenin bir olay alglad zaman icra edilen bir kod olduunu biliyorsunuz. Olay prosedrlerinin, ok uzun olarak yazlmas, hata ayklama(debugging ) ilemi bakmndan sakncaldr. O nedenle, olay prosedr iin ilemleri paralara ayrarak, her ilemi bir genel prosedre yaptrmak daha uygun bir yoldur. GENEL PROSEDRLER( GENERAL PROCEDURES) Genel prosedrler, bir olaya baml olmakszn gelitirilen prosedrlerdir. Genel prosedrler ,bulunduklar ortam bakmndan ikiye ayrlrlar: 1)Forma bal genel prosedrler: Bunlar form iinde tanml ve geerli olan prosedrlerdir. 2)Standar t modl(standard module) prosedrleri: Bunlar, standart modl ad verilen ve uzants .BAS olan dosyalar iinde saklanan prosedrlerdir. Bu prosedrlere, proje iindeki tm prosedrler iinden erimek imkan vardr. Genel prosedrler , grnm ve ilevsellik bakmndan da e ayr lr lar : 1)Function tipi prosedrler. Bunlar, Visual Basic in fonksiyonlarnn kullanm ve ilevine benzer zellikler gsterirler. Function tipi prosedrler, bir deer hesaplayarak gnderirler. Visual Basic ortamnda, kullanc tarafndan tanmlanan(user defined) fonksiyonlar retmek ve kullanmak iin oluturulurlar. 2)Sub tipi prosedrler. Bunlar, belirli bir deer gndermezler; tanmlanan ilemleri yerine getirirler. 3)Proper ty(zellik) prosedrleri. Bunlar, Visual Basic te mevcut olan nesnelere, yeni zelliklere ekleyerek, yeni nesneler oluturma imkan salar. FORM BALI GENEL PROSEDRLER Bu tip prosedrleri oluturmak iin, nce ekran gstergesi, formun zerinde herhangi bir yerde iken, double-click ile kod penceresini

VISUAL BASIC LE YAZILIM GELTRME Getiriniz. Daha sonra, Tools mensnn Add Procedure seeneini seiniz. Bu durumda ekil P.1 deki ekran gelecektir. ekil P.1- Tools/Add Procedure diyalog penceresi ekil P.1 de grlen diyalog penceresinde, Name kutusu iine, prosedrn ad yazlr.(bu isimde Trke karakterler kullanabilirsiniz( gibi) Sonra prosedrn tipi belirtilir. (Function,Sub, Proper ty ya da event) Scope(kapsam) opsiyonlarndan biri seilir. Pr ivate seilmise, prosedr, sadece oluturulduu form iindeki dier prosedrler tarafndan arlabilir. Public seilirse, prosedr, proje iindeki tm bileenler iinden arlabilir. Bu durumda, prosedr arrken, bulunduu formda referans vermek gerekir. RNEK: Form1 adl form iinde, Hesapla() adl bir fonksiyon prosedr tanmlanmsa, bu form dndaki baka bir bileenden bunu armak iin Form1.Hesapla() eklinde bir ifade kullanlmaldr. FUNCTION TP PROSEDRLER Function tipi prosedrlerin genel yazl biimi aadaki gibidir. (Public/Private)Function FonksiyonAd(Parametre1,Prametre2,...........Parametre n) Komutlar FonksiyonAd=ifade End Function

VISUAL BASIC LE YAZILIM GELTRME Function tipi prosedrn ad, prosedr iinde, en az bir yerde, bir ifadenin sol tarafnda grnmelidir. FUNCTION TP PROSEDRN ARILMASI Public Function Vergi(Brut) ......... Vergi=.... End Function eklinde tanmlanan bir fonksiyonu, baka bir prosedr iinden armak iin, a=Vergi(1200000000) eklinde bir ifade yeterli olacaktr. Burada, Brut parametresine 1200000000 deeri aktarlacak ve sonuta fonksiyonun hesaplad vergi a isimli deikene atanacaktr. RNEK UYGULAMA: Gelir zerinden alnan verginin aadaki kurallara gre belirlendiini varsayalm: Gelir<=300,000,000 ise vergi oran %25 Gelir<=600,000,000 ise vergi oran %30 Gelir<=1,200,000,000 ise vergi oran %35 Gelir>1,200,000,000 ise vergi oran %45 Buna gre, geliri parametre olarak kabul edip vergiyi hesaplayan ve gnderen bir Function prosedr gelitiriniz ve kullannz. Bu problemin zm iin aadaki admlar izleyiniz: 1Form zerinde double-click ilemini uygulayarak kod penceresini arnz. Tools mensnden Add Procedur e seeneini arnz. Karnza gelen Add Procedure adl diyalog penceresini ekil P.2 deki gibi doldurunuz. Ok butonunu seiniz. 2)Karnza ekil P.3 teki ekran gelecektir. Bu ekrandaki, kod penceresine ekil P.4 teki kodu giriniz. 3)Form zerine bir Caption n HESAPLA olarak girdiiniz bir komut butonu yerletiriniz. (ekil P.5) 4)HESAPLA balkl Command1 adl komut butonunun kod penceresine ekil P.6 daki kodu giriniz.

VISUAL BASIC LE YAZILIM GELTRME 5)Run/Start ile projeyi altrnz. ekil P.7 deki ekran gelecektir. Burada Hesapla butonunu tklatnz. Gelen diyalog penceresinde geliri 500,000,000 olarak giriniz. Ok butonunu seiniz. 6)ekil P.8 deki sonucu elde edeceksiniz. ekil P.2 Vergi adl Function prosedrnn tanmlanmas ekil P.3 - Function prosedr girmek iin kod penceresi ekil P.4 - Vergi adl Function prosedrnn kodu

VISUAL BASIC LE YAZILIM GELTRME ekil P.5 - HESAPLA balkl komut butonu ekil P.6 Komut butonuna bal olan olay prosedr ekil P.7 Projenin ilk ekran

VISUAL BASIC LE YAZILIM GELTRME ekil P.8 500,000,000 TL lk gelir iin hesaplanan 135,000,000 TL lk vergi SUB TP PROSEDRLER Bu tip prosedrlerin, bir deer hesaplatma zorunluluunda olmayan, buna mukabil bir ilem ya da ilemler dizisini yerine getiren prosedrler olduunu sylemitik. Sub tipi prosedrlerin genel yazl biimi aadaki gibidir: (Public/Private) Sub SubProsedrAd(Parametre1,parametre2,.........Parametre n) Komutlar End sub SUB TP PROSEDRLERN ARILMASI Sub tipi prosedr armak iin, iki farkl yol mevcuttur: 1)Aadaki Sub prosedr mevcut olsun: Public Sub Prog(x, y) c = x + y MsgBox c End Sub bu prosedr, baka bir prosedr iinden Call Prog(3,8) eklinde arabilirsiniz. 2)Ayn prosedr armak iin alternatif bir yol ise, Prog 3,8 eklinde bir ar komutu kullanmaktr.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: 1)Form zerine Caption zellii RESM YKLE olarak atadnz bir komut butonu ile iki adet resim kutusu ykleyiniz. (ekil P.8) 2)RESM YKLE balkl ve Command1 adl butonun kod penceresine, ekil P.9 daki kodu giriniz. ekil P.8 Forma yerletirilen resim kutusu ve komut butonu Pr ivate Sub Command1_Click() Call resim Call cizim End Sub ekil P.9 Komut butonuna ait kod 3)Tools/Add Procedure men admlar ile ekil P.10 daki diyalog penceresini getiriniz. Name yerine r esim giriniz Ok butonunu seiniz. ekil P.10 resim adl Sub prosedrnn tanmlanmas

VISUAL BASIC LE YAZILIM GELTRME 4) Kod penceresine ekil P.11 deki kodu giriniz. ekil P.11 resim adl Sub prosedrne ait kod 5)Tools/Add Procedure mensn seiniz. Gelen diyalog penceresini aadaki ekilde doldurunuz: 6)Ok butonunu seiniz. cizim adl Sub prosedrn kodunu ekil P.12 deki gibi giriniz. ekil P.12 cizim adl Sub prosedrn kodu 7)Run/Start seerek. Gelen ekranda RESM YKLE butonunu tklatnz. ekil P.13 teki kt elde edilecektir. Komut butonu iinden, resim ve cizim adl Sub prosedrler arlmtr. resim prosedr, hazr bir resmi, Picture1 kontrol nesnesi iine

VISUAL BASIC LE YAZILIM GELTRME Yklemi, cizim prosedr ise, Picture2 adl resim kutusuna, arlk merkezinden itibaren, yaraplar 1-100 arasnda ve eitli renklerde daireler izmitir. izim komutlarnn ayrntlar iin, kitabnzn Grafikler blmne baknz. ekil P.13 Sub rnek uygulamasnn kts STANDART MODL PROSEDRLER Gelitirilen kodun yeniden kullanlabilirliini salamak iin o kodu mmkn mertebe formdan bamsz olarak oluturmak gerekir. Bamsz bir modl iine yerletirilen prosedrler, hem projenin dier paralar hem de dier programlar tarafndan kullanlabilir. Bylece retilen kodun maliyeti der. Bu tr bamsz modllere Standar t Modl ya da Kod Modl (Standard Module or Code Module) ad verilir ve uzantlar .Bas eklindedir. Standar t modllerde, grsel nesneler yoktur. Bunlar saklanarak daha sonraki herhangi bir proje iine katlabilirler. Standar t modl penceresinin General ksmnda, deikenler iin bildirimde bulunulabilir. Sadece standar t modln iindeki prosedrlerce tannmasn istediiniz deikenler iin Pr ivate szcn kullanmalsnz.

VISUAL BASIC LE YAZILIM GELTRME Projenin her yerinde tannmasn istediiniz deikenler iinse Public szcn kullannz. Public yerine, Visual Basic in daha eski versiyonlarndan gelen Global szcn de kullanabilirsiniz. (Default zellik Public tir ; dolays ile, deikenin tipi belirtilmemise Public olarak alnacaktr.) Standart modl iindeki Sub ya da Function tipi prosedrler, default olarak, projenin tm paralar tarafndan arlabilir. Bu durum engellenmek istenirse, yani bu Sub ya da Function larn sadece Standart Modl iinde tanml olmalar istenirse, prosedrn isminin bana Private szc konulmaldr. ekil P.14 te Visual Basic te deikenlerin kapsam konusunda detayl bilgi bulunmaktadr.

VISUAL BASIC LE YAZILIM GELTRME ekil P.14 Visual Basic te Deikenlerin Kapsam Public (Global) deikenler. Standart Modln Declarations ksmnda Global ya da Public szc ile tanmlanrlar FORM Form dzeyindeki deikenler. Formun Declarations ksmnda tanmlanrlar. PROSEDRLER Prosedre ait lokal deikenler, Prosedr iinde Dim ile tanmlanr. PROSEDRLER Prosedre ait lokal deikenler, Prosedr iinde Dim ile tanmlanr. STANDART MODL(KOD MODL) Kod modlne ait deikenler, modln Declarations ksmnda Private ya da Dim komutu ile tantlrlar PROSEDRLER Prosedre ait lokal deikenler, Prosedr iinde Dim ile tanmlanr. PROSEDRLER Prosedre ait lokal deikenler, Prosedr iinde Dim ile tanmlanr.

VISUAL BASIC LE YAZILIM GELTRME PROJEYE YEN GELTRLECEK BR STANDART MODL(KOD MODL) EKLEMEK Bu amala, aadaki admlar izlenmelidir: 1)Project mensnden Add Module seenei seilir. ekil P.15 teki ekran gelecektir. ekil P.15 Standart Modl Oluturma Penceresi 2)Gelen ekranda Gener al Declarations ksmnda deikenlerle ilgili tanmlamalar yaplr; sonra gerekli Sub ya da Function prosedrleri Tools/Add Procedure men admlar ile gerekletirilir. Bunun sonucunda ekil P.16 daki ekran gelir. ekil P.16 Prosedr tanmlama ekran 3)Gelen ekranda, prosedrn ad, tipi, kapsam belirtilir. PROJEYE NCEDEN MEVCUT OLAN BR KODU(STANDART MODL)EKLEMEK Bu ilem, farkl bir men ile gerekletirilir. Aadaki admlar izleyiniz:

VISUAL BASIC LE YAZILIM GELTRME 1)Project mensnden Add File seeneini seiniz. ekil P.17 deki ekran gelecektir. Burada uzants .bas olan bir kod modl seilir ve Open butonu tklanr. ekil P.17 nceden sistemde mevcut olan modl projeye eklemek 2)Eklenen modl ekil P.18 deki gibi, Proje penceresinde grntlenecektir. ekil P.18 projedeki bileenler PROJEDEN BR STANDART MODLN IKARILMASI Projenizden bir standart modl kartlmas iin aadaki admlar izlenmelidir: 1)Eer ak deilse, View/Project Explor er men admlar ile proje penceresini anz. (ekil P.18) 2)Projeden silmek istediiniz kod modl veya form modl seiniz. 3)Project mensnden Remove <Dosya smi> seeneini seiniz. O esnada seilmi olan dosya ismi men ubuunda gzkecektir.

VISUAL BASIC LE YAZILIM GELTRME ALT PROGRAMLARLA (PROSEDRLERLE) HABERLEME YNTEMLER Prosedrlerle haberlemek iin kullanlan parametreler ya da argmanlarn, prosedre gnderilmesi iin iki farkl yntem mevcuttur: 1)DEER ile argman gnderme 2)REFERANS yolu ile argman gnderme DEER LE ARGMAN GNDERME Bu metot kullanlrsa, aran programn gnderdii deerin bir kopyas arlan program(procedure) iinde oluturulur. arlan program iinde, deikenin deeri deitirilse bile, aran program iindeki deer bundan etkilenmez. Bu tr argman gnderme ileminde anahtar szck ByVal szcdr. RNEK: 1)Form zerine bir komut butonu getiriniz. Caption zelliini BYVAL yapnz. Komut butonunu clickleyerek kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() y = 15 Call x(y) MsgBox y, , "y" End Sub 2)Form kod penceresi ak iken, Tools mensnden Add Procedur e seeneini giriniz. Gelen pencereyi aada ekil P.19 da grld gibi oluturunuz: ekil P.19 x adl forma bal genel prosedrn tanmlanmas Ok butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME 3) x adl prosedr aadaki gibi oluturunuz. 4)Run/Start seiniz. BYVAL butonunu tklatnz. ekil P.20 deki kt elde edilecektir. 5)Ok butonu seilirse bu durumda ekil P.21 deki sonu elde edilir. Bu uygulamada, komut butonuna bal Click olay prosedr iinden x adl genel prosedr, y argman gnderilerek arlmtr. ekil P.20 x prosedrnde d nin deeri ekil P.21 Command1_Click prosedrnde y nin deeri y nin deeri d ye aktarlm ve sonuta 10 deeri yazdrlmtr. x prosedrnde, End Sub a gelinince aran prosedr olan Comman1_Click prosedrne geri dnlm ve burada y nin deeri yazdrlmtr. x iinde, y nin deerinin aktarld d deimesine ramen, y deimeden kalmtr. (ByVal ile armann sonucu) REFERANS YOLU LE ARGMAN GNDERME aran program, ard programa referans yolu ile argman gnderirse, bu durumda ar lan program gnderilen argmann bir kopyasn oluturmaz; bunun yerine gnderilen argmann bellekteki gerek deeri ile alr. Bunun sonucunda da, arlan programda,

VISUAL BASIC LE YAZILIM GELTRME Deikenin deerinde yaplan deiiklikler aynen aran programa da yansr ve aran programdaki deikenin deerini de deitirir. RNEK: Pr ivate Sub Command1_Click() Dim y As Integer y = 15 Call x(y) MsgBox y, , "y" End Sub 2) x prosedrn ise aadaki ekle dntrnz. 3) Run/Star t ile projeyi altrnz. Bu kez hem d hem de y iin 10 deeri elde edilecektir. nk, yukarda anlatld gibi, ByRef ile argman gnderilince, d ve y ye bellekte ayn alan ayrlmakta, dolays ile d nin deeri deiince otomatik olarak y nin deeri de deimektedir. ARGMANLARIN TPLERNN BELRTLMES Function ve Sub tipi prosedrlerin argmanlar (parametreleri) iin default(nceden atanm) olarak belirlenmi olan tip Var iant tr. Ancak istenirse, argmanlar iin farkl tipler de belirtilebilir. RNEK:

VISUAL BASIC LE YAZILIM GELTRME fonk1 adl fonksiyonda, y bir double ve q bir integer olarak tanmlanmtr. BR ARGMANI ( ) SEMBOLLER NDE GERMEK aran program, argman, ( ) sembolleri iinde gnderirse, arlan programda Referans yolu ile argman gnderme yntemi kullanlm olsa bile, gerekte, arlan programa deer yolu ile argman gnderilir. 1) Yukardaki rnekte kullanlan Command1_Click prosedrn aadaki ekilde deitiriniz: Pr ivate Sub Command1_Click() Dim a As Integer y = 15 Call x((y)) MsgBox y, , "y" End Sub 2) x prosedr ise aadaki gibi olsun: Public Sub x(ByRef d As Integer ) d = d - 5 MsgBox d, , "d" End Sub Bu kodu altrdnzda, d iin 10 ve y iin 15 deerleri grntlenecektir. Call x((y)) ifadesi yznden, x prosedrndeki argman ByRef ile tanmlanmasna ramen, prosedr ByVal prensibine gre almtr.

VISUAL BASIC LE YAZILIM GELTRME BLM 14 MEN TASARIMI

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC TE MEN OLUTURMA Bu blmde, Visual Basic ortamnda, uygulama programlar iinde, Windows ortamn ve Visual Basic ortamnn menlerine benzer ekilde menlerin nasl oluturulabileceini reneceiz. Bu amala, Visual Basic in Men Editrn devreye sokmak gerekir. Tools mensnden Menu Editor seilirse karnza ekil M.1 deki ekran gelecektir. Aadaki rnek uygulama ile Meni Editrnn kullanm ayrntl olarak anlatlmaktadr. RNEK UYGULAMA: YABANCI KOLEJLER BLG PROGRAMI Bu program, stanbul da bulunan baz kolejler hakknda bilgi veren bir programdr. Bu program gelitirmek iin aadaki admlar izleyiniz. 1)Tools mensnden Menu Editor seiniz. Aadaki ekilde grlen men hazrlama penceresi gelecektir. Burada Caption ksmna NGLZCE ifadesini yaznz. Name penceresine is ing ifadesini giriniz.(ekil M.2)

VISUAL BASIC LE YAZILIM GELTRME ekil M.2 NGLZCE ana men bal 2) imdi mouse yardm ile NGLZCE yazan satrn bir alt satrn seiniz. Saa doru ok ( ) butonunu clickleyiniz. Caption ksmna ROBERT COLLEGE ve Name ksmna ROBCOL yaznz. (ekil M.3) ekil M.3 ROBERT COLLEGE alt mens 3) Ayn ekilde SKDAR AMERKAN alt mensn ekleyiniz. (ekil M.4)

VISUAL BASIC LE YAZILIM GELTRME ekil M.4 SKDAR AMERKAN alt mens 4) Mouse yardm ile bir alt satr seiniz ve ekil M.6 daki gibi ALMANCA ana men baln hazrlaynz. ekil M.6 ALMANCA ana men bal 5) Mouse yardm ile bir alt satr seiniz. Saa doru ok tuunu seiniz. Caption penceresine ALMAN LSES ve Name penceresine de ALMLIS yaznz. (ekil M.7)

VISUAL BASIC LE YAZILIM GELTRME 6) Ayn ekilde AVUSTURYA LSES alt mensn oluturunuz. (ekil M.8) 7) Mouse yardm ile bir alt satr seerek FRANSIZCA balkl ana meny oluturunuz (ekil M.9) ekil M.7 ALMAN LSES alt mens ekil M.8 AVUSTURYA LSES alt mens

VISUAL BASIC LE YAZILIM GELTRME 8) Mouse yardm ile bir alt satr seerek SAINT JOSEPH alt mensn oluturunuz. (ekil M.10) 9) ayn ekilde DAME DE SION alt mensn oluturunuz. (ekil M.11) 10) Mouse yardm ile bir alt satr seerek IKI balkl ana meny tanmlaynz. (ekil M.12) ekil M.9 FRANSIZCA balkl anan meny hazrlama ekil M.10 SAINT JOSEPH alt mens

VISUAL BASIC LE YAZILIM GELTRME ekil M.11 - DAME DE SION alt mens ekil M.12 IKI ana mens Men balklar yerletirilirken & sembol kullanlrsa, bu sembol kendisini izleyen harfin mende alt izgili olarak kmasn ve o men

VISUAL BASIC LE YAZILIM GELTRME seeneine ksa yoldan ulamak iin Alt tuu ile birlikte alt izgili harfin kullanlmasna olanak salamaktadr. 11) Bu noktada tm men ve alt men balklarn tanmladk. imdi sra iin en nemli noktas olan, bu men seenekleri seilince hangi ilemin yaplacan bilgisayara anlatan kodlar oluturup menlerle ilikilendirmeye gelmitir. OK butonu ile tm tanmlamalar onayladnzda ekil M.13 teki grnm elde edilir. ekil M.13- Oluturulan men 12) Mouse yardm ile NGLZCE ana mensnn ROBERT COLLEGE alt mensn seiniz. ekil M.14 te grlen kod penceresi ekrana gelecektir. ekil M.14 - ROBCOL adl alt mennn kod penceresi 13) Bu pencereye aadaki kodu giriniz: Pr ivate Sub ROBCOL_Click() Dim a, b, c, d, e As String a = "KURUCUSU:C.Wadsworth-1863" b = "HAZIRLIK:1 YIL" c = "YARDIMCI YABANCI DL:ALM,FR" d = a + Chr(13) + b + Chr(13) + c e = "ROBERT COLLEGE" MsgBox d, , e End Sub

VISUAL BASIC LE YAZILIM GELTRME 14) Menden SKDAR AMERKAN LSES ni seerek aadaki kodu giriniz: Pr ivate Sub USAM_Click() Dim a, b, c, d, e As String a = "KURUCUSU:AMERIKAN BOARD HEYET-1876" b = "HAZIRLIK:1 YIL" c = "YARDIMCI YABANCI DL:ALM,FR" d = a + Chr(13) + b + Chr(13) + c e = "SKDAR AMERKAN LSES" MsgBox d, , e End Sub 15) ALMAN LSES mens iin aadaki kodu giriniz. Pr ivate Sub ALMLIS_Click() Dim a, b, c, d, e As String a = "KURUCUSU:ALMAN HKMET-1868" b = "HAZIRLIK:1 YIL" c = "YARDIMCI YABANCI DL:NGLZCE" d = a + Chr(13) + b + Chr(13) + c e = "ALMAN LSES" MsgBox d, , e End Sub 16) AVUSTURALYA LSES mens iin de aadaki kodu giriniz: Pr ivate Sub AVLIS_Click() Dim a, b, c, d, e As String a = "KURUCUSU:LAZARIST CEMYET-1882" b = "HAZIRLIK:1 YIL" c = "YARDIMCI YABANCI DL:NGLZCE,FR,LATNCE" d = a + Chr(13) + b + Chr(13) + c e = "AVUSTURYA LSES" MsgBox d, , e End Sub 17) SAINT JOSEPH mens iin de aadaki kodu giriniz: Pr ivate Sub STJOS_Click() Dim a, b, c, d, e As String a = "KURUCUSU:PIERRE CAPORAL-1870"

VISUAL BASIC LE YAZILIM GELTRME b = "HAZIRLIK:2 YIL" c = "YARDIMCI YABANCI DL:NGLZCE" d = a + Chr(13) + b + Chr(13) + c e = "SAINT JOSEPH LSES" MsgBox d, , e End Sub 18) DAME DE SION mens iin de aadaki kodu giriniz: Pr ivate Sub DAMDESION_Click() Dim a, b, c, d, e As String a = "KURUCUSU:CLAIRE JORRAND-1856" b = "HAZIRLIK:2 YIL" c = "YARDIMCI YABANCI DL:NGLZCE" d = a + Chr(13) + b + Chr(13) + c e = "DAME DE SION LSES" MsgBox d, , e End Sub 19) IKI mensne de aadaki kodu giriniz: Pr ivate Sub CK_Click() Dim i As Integer For i = 1 To 15 Beep Next i End End Sub 20) Run/Start ile kodu icra ediniz. Menden mouse yardm ile, ekil M.15 teki gibi AVUSTURYA LSES ni seiniz ekil M.15- Menden seim yapma 21) ekil M.16 daki gibi bilgiler ekrana gelecektir:

VISUAL BASIC LE YAZILIM GELTRME ekil M.16- Menden bilgi alma Menden, k alternatifi seilirse de, bir zil sesi ile birlikte programn icras duracaktr.

VISUAL BASIC LE YAZILIM GELTRME BLM 15 MDI FORMLAR

VISUAL BASIC LE YAZILIM GELTRME MDI FORMLARI MDI Multiple Document Interface (oklu dokman arayz) szcklerinden ksaltlarak oluturulmu yapay bir szcktr. Microsoft firmasnca ortaya konmu bir kavramdr. MDI Formu ya da MDI ebeveyn formu(parent form) ad verilen bir form ve buna bal olarak oluturulmu ocuk formlar(chil forms)dan oluan bir yap sz konusudur. Bir uygulama iinde , ayn andan birden ok pencere amak gerekli ise , o zaman MDI formunu kullanmak zorunludur. Bir projede sadece 1 tane MDI formu bulunabilir. Bu form StartUp formu olmaldr. RNEK: MDI formlarn kullanan bir uygulama gelitirmek iin aadaki admlar izleyiniz.: 1)Project mensnden Add MDI Form seeneini seerek bir MDI formu ykleyiniz. 2) Project mensnden Add Form seeneini seerek iki adet form ekleyiniz.Form1 ve Form2 nin MDIChild zelliklerini True olarak ataynz. 3)MDI formunu zerini iki kez tklayarak gelen kod penceresine aadaki kodu giriniz: Pr ivate Sub MDIForm_Load() From1.Show From2.Show End Sub 4)Run/Start ile kodu altrnz. ekil MD.1 deki grnm elde edeceksiniz. 5)MDI formunuzun ocuk formlar olan Form1 ve Form2 yi Minimize butonu ile en kk hale getirince , oluan ikonlar artk, Windows penceresinin en alt satr yerine, MDI Formunun iinde yer alacaktr. (ekil MD.2) PENCERE DZENLEME MENS MDI formu kullanld zaman, genellikle, MDI formu iine, ocuk pencerelerin grnm biimi ile ilikili dzenlemeler yapan ve Windows un birok bileeninde de bulunan bir men eklemek faydal bir

VISUAL BASIC LE YAZILIM GELTRME ilemdir. Bu ilemi gerekletirmek iin aadaki admlar gerekletiriniz: ekil MD.1 - MDI Formu ve onun ocuk formlar ekil MD.2- Formlarn, MDI Formu iinde Minimize olmas 1)imdi , yukardaki gibi 1 adet MDI Formu ve 2 adet form olan bir projemiz olsun. MDI formu aktif iken (project penceresinden seerek

VISUAL BASIC LE YAZILIM GELTRME bunu salayabilirsiniz) Tools mensnden Menu Editr getiriniz. ekil MD.3 teki gibi bir men yaps oluturunuz. WindowList adl kutuyu mouse ile iaretleyiniz. 2)Alt menlerin Name(ad) ve Caption(Balk)larna ayn isimleri veriniz. Yani Caption Tile ise Name de Tile olsun. Caption Cascade ise Name de Cascade olsun. 3)Mouse yardm ile her alt meny sra ile seerek aadaki olay prosedrlerini giriniz. Pr ivate Sub tile_Click() MDIForm1.Arrange vbTileHorizontal End Sub Pr ivate Sub cascade_Click() MDIForm1.Arrange vbCascade End Sub Pr ivate Sub Ar range_Click() MDIForm1.Arrange ArrangeIcons End Sub 4)Run/Start seiniz. MDI formu zerinde beliren Windows mensn mouse yardm ile seiniz. ekil MD.4 te grld gibi, hazrlanan ekil MD.3 MDI Formu iin men hazrlama

VISUAL BASIC LE YAZILIM GELTRME ekil MD.4 MDI formu Window mens Window alt menleri ile birlikte, o MDI formu iindeki formlarn bir listesi grntlenecektir. Window mensnden Tile seilirse, pencereler ekil MD.5 teki gibi dzenlenecektir. ekil MD.5- Pencerelerin yatay dzenli grntlenmesi Pencerelerin icra esnasnda dinamik olarak n ya da arka plana gemesini salamak iin, Zorder metodunu kullanabilirsiniz. Bu metot: Nesne.Zorder Pozisyon eklinde kullanlr. Pozisyon parametresi kullanlmamsa ya da deeri () ise, nesne n planda, pozisyon parametresi 1 ise, bu durumda da nesne arka planda olacaktr. NOT: Men tasarm ile ilikili daha ayrntl bilgi iin, kitabmzn ilgili blmne bakabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 16 MOUSE FAALYETLER

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC TE MOUSE LE LKL OLAYLAR Windows ve Visual Basic ortamnda, mouse kullanmnn nemi tartlmaz boyuttadr. Mouse ile ilikili olarak kullanlacak olay prosedrleri, doal olarak ok yaygn kullanm alanna sahip olacaklardr. MouseDown OLAYI MouseDown olay, kullancnn mouse tularndan bir tanesine basmas ile meydana gelir. Aadaki rnek olay prosedrnde, mouse tuuna baslmas ile mouse gstergesinin bulunduu konumdan itibaren kenar uzunluklar r olan (r,1 den 500 e kadar deiiyor) dikdrtgenler izilecektir. Renk ise QBColor fonksiyonu ile belirlenmektedir. QBColor(Rnd*15) ifadesi ile, her seferinde 16 renkten biri rasgele olarak retilmektedir: Pr ivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Randomize For r = 1 To 500 Line (X, Y)-(X + r, Y - r), QBColor(Rnd * 15), BF Next r End Sub Run/Star t ile kodu altrnz. Mouse un sol veya sa tuuna bastnzda farkl renkte ve boyutlar hzla byyen dikdrtgenler oluacaktr. (ekil M.1) MouseUp OLAYI Kullancnn bir mouse butonunu serbest brakmas ile ortaya kan olaydr. Aadaki rnekte olay prosedrleri ile de, mouse butonunu serbest braklnca farkl renklerde ii bo dikdrtgenler izilecektir. (ekil M.2) Pr ivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Randomize Form1.FillStyle = 2 For r = 1 To 500 Line (X, Y)-(X + r, Y - r), QBColor(Rnd * 15), B Next r End Sub

VISUAL BASIC LE YAZILIM GELTRME ekil M.1 - MouseDown olay prosedr ile elde edilen dikdrtgenler MOUSE BUTONLARININ KONTROL Button argman ile kullancnn hangi mouse butonuna basmsa, Button argman vbLeftButton sabit deerini alacaktr. Bu deer, saysal olarak 1 dir. Aadaki tablo bu konuda fikir vermektedir: Tablo 1 Mouse Butonlar ile ilikili sabitler Kullanlan Buton Kar Gelen Sabit Button Argman Deeri Sol vbLeftButton 1 Sa vbRightButton 2 Orta vbMiddleButton 4

VISUAL BASIC LE YAZILIM GELTRME ekil M.2 MouseUp olay prosedr ile izilen dikdrtgenler SHIFT TUU VE MOUSE BUTONLARININ BRLKTE KONTROL Baz durumlarda, klavyedeki Shift tuunun mouse butonlar ile birlikte kullanlp kullanlmadn kontrol etmek gerekebilir. Bu amala, MouseUp ve MouseDown olay prosedrlerinde Shift parametresini kontrol etmek gerekir. Tablo 2 de, mmkn olan durumlar verilmitir. Tablo 2 Mouse Butonlar ile Shift, Ctrl ve Alt tularnn birlikte kontrol lem Sabit Set edilen bit Deer SHIFT tuu basl vbShiftMask 0 1 CTRL tuu basl vbCtrlMask 1 2 ALT tuu basl vbAltMask 2 3 SHIFT+CTRL tular basl 0 ve 1 4 SHIFT+ALT tular basl 0 ve 2 5 CTRL+ ALT tular basl 1 ve 2 6 SHIFT+CTRL+ ALT tular basl 0,1 ve 2 7

VISUAL BASIC LE YAZILIM GELTRME RNEK: imdi, yukarda verdiimiz kodda biraz deiiklik yaparak aadaki olay prosedrn hazrlayalm: Pr ivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Randomize Form1.FillStyle = 2 Select Case Button Case vbLeftButton And Shift = vbShiftMask For r = 1 To 500 Line (X, Y)-(X + r, Y - r), QBColor(Rnd * 15), B Next r Case vbRightButton And Shift = vbShiftMask For r = 1 To 500 Circle (X, Y), r, QBColor(15 * Rnd) Next r End Select End Sub Form_MouseUp prosedrnn sistemde olmad varsaylarak bu kodu altrdnzda, artk sadece mouse sol tuuna vay sa tuuna bastnzda herhangi bir ilem yaplmadn gzleyeceksiniz. Oysa Shift tuu ile birlikte mouse sol tuuna basarsanz deiik renkte kareler, Shift tuu ile birlikte mouse sa tuuna basarsanz bu durumda da deiik renkte daireler izildiini greceksiniz. (ekil M.3)

VISUAL BASIC LE YAZILIM GELTRME ekil M.3 Shift tuu ve Mouse butonlarnn birlikte kontrol uygulamas MouseMove OLAYI Kullanc tarafndan, Mouse un hareket ettirilmesi ile meydana gelen olaydr. Aadaki kodu icra ediniz: Pr ivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Line (X, Y)-(X + 100, Y + 100), QBColor(15 * Rnd), BF End Sub Kod icra edilince, mouse u hareket ettirdiiniz srece, form zerine, farkl renkte kk kareler izildiini greceksiniz. (ekil M.4)

VISUAL BASIC LE YAZILIM GELTRME ekil M.4 MouseMove olay prosedrnn icras MouseMove olay prosedrn iinde, mouse butonlarnn kontrol iin daha kapsaml olanaklar sunulmutur. MouseUp ve MouseDown prosedrlerinde ayn anda birden fazla butona basl olup olmad kontrol edilemezken, MouseMove prosedrnde bu mmkndr. MouseMove prosedr, buton kontrol iin, Tablo 3 te verilen imkanlar sunmaktadr. Tablo 3 MouseMove prosedrnde buton kontrol Buton Deer Sabit Sol buton 1 vbLeftButton Sa buton 2 vbRightButton Orta buton 3 vbMiddleButton Sol ve Sa birlikte 4 vbLeftButton+ vbRightButton Sol ve Orta birlikte 5 vbLeftButton+ vbMiddleButton Sa ve Orta birlikte 6 vbRightButton+ vbMiddleButton birlikte 7 vbRightButton+ vbMiddleButton+ vbLeftButton

VISUAL BASIC LE YAZILIM GELTRME Dr ag ve Drop LEMLER Bir nesneyi, mouse butonlarndan biri ile basl iken, mouse hareketi ile bir noktadan baka bir noktaya hareket ettirme Dr ag ilemi( srkleme) ve nesne istenilen noktaya geldikten sonra da butonu serbest brakmaya da Drop ilemi(brakma) ad verilmektedir. rnein, form zerinde bir komut butonunu tasarm esnasnda, drag ilemi il bir noktadan baka bir noktaya tamak ve drop ilemi ile de tand noktay sabitletirmek mmkndr. Dr agDrop OLAYI Nesneyi mouse basl iken srkleyip belli bir noktaya getirdikten sonra brakmak ilemi gerekletirilince meydana gelen olaydr. Form iin DragDrop olayna bal bir olay prosedr yazlrsa, normalde form zerinde icra esnasnda yerleri deitirilmeyen kontrol nesneleri, yerleri deitirilebilir hale getirilebilir. RNEK: Aadaki admlar izleyiniz: 1)Form zerine bir komut butonu ve bir PictureBox(resim kutusu) yerletiriniz. (ekil M.5) Her ikisinin de DragMode zelliklerini 1-Automatic haline getiriniz. ekil M.5 Form zerinde bir komut butonu ve resim kutusu 2)Form iin aadaki kodu oluturunuz: Pr ivate Sub Form_Dr agDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y End Sub

VISUAL BASIC LE YAZILIM GELTRME 3)Run/Start ile uygulamay altrnz. Komut butonu ya da resim kutusu zerine mouse gstergesini gtrp mouse sol butonu basl iken bu kontrol nesnelerini hareket ettirir ve mouse butonunu serbest brakrsanz, nesnelerin yer deitirdiini gzleyebilirsiniz. Dr agOver OLAYI Bir nesne, baka bir nesnenin zerinden geiyorsa bu olay meydana gelir. Bu olay ile ilikili olarak yazlabilecek bir olay prosedr aadaki gibi olabilir: Pr ivate Sub KontrolNesnesiX_DragOver (Source As Control, X As Single, y As Single, State As Integer) End Sub Burada Source kontrol nesnesini, X, ve Y bu kontrol nesnesinin koordinatlarn gstermektedir. State ise, Source kontrol nesnesinin KontrolNesnesiX zerinde olma durumunu kontrol eden bir parametredir ve aadaki deerleri alabilir: State (Durum) Deeri Anlam 0 Source, KontrolNesnesiX in iinde 1 Source, KontrolNesnesiX i terk etti 2 Source, KontrolNesnesiX in iinde hareket ediyor Aadaki uygulama, size bu konuda daha ok ak fikir verecektir: 1)Form zerine bir komut butonu(command button), bir resim kutusu(picture box), bir metin kutusu(text box) ve bir ereve(frame) yerletiriniz. (ekil M.5) ekil M.5 DragOver projesi - ilk adm

VISUAL BASIC LE YAZILIM GELTRME 2)Komut butonunun DragMode zelliini 1-Automatic olarak ataynz. (ekil M.6) ekil M.6 Komut butonunun DragMode zelliini atama 3)Formun komut penceresine aadaki kodu giriniz: Pr ivate Sub Form_Dr agDrop(Source As Control, X As Single, Y As Single) Source.Move X, Y End Sub 4)Frame nesnesinin kod alanna ise aadaki kodu giriniz: Pr ivate Sub Frame1_DragOver (Source As Control, X As Single, Y As Single, State As Integer) If State = 1 Then Text1.Text = "HEDEFTEN IKILDI" Picture1.Cls End If If State = 2 Then Text1.Text = "HEDEFE GRLD" Picture1.Scale (-10, 10)-(10, -10) For i = 1 To 10 Picture1.Circle (i, i), Rnd * 15, QBColor(Rnd * 15) Next i End If End Sub 5)Run/Start ile uygulamay altrnz. Mouse yardm ile komut butonunu srkleyerek ereve(frame) zerine getiriniz. Frame zerinde hareket ettirerek daha sonra dar karnz. Komut butonunun ereveye

VISUAL BASIC LE YAZILIM GELTRME gre konumu ile ilikili olarak, metin kutusuna mesaj aktarlmakta, resim kutusuna renkli daireler izilmekte ya da bunlar silinmektedir. (ekil M.7 ve M.8) Bu rnekte, Source komut butonu ve KontrolNesnesiX ise erevedir. ekil M.7- Kaynak hedefin iinde ekil M.8- Kaynak hedeften kt

VISUAL BASIC LE YAZILIM GELTRME BLM 17 OLAYLAR (EVENTS)

VISUAL BASIC LE YAZILIM GELTRME OLAYLAR(EVENTS) Visual Basic ile uygulama gelitirirken en nemli bileenlerden birinin Olay prosedrleri(Event Procedures) olduunun sylemitik. Olay prosedrleri, bir nesnenin bil olay alglad zaman nasl davranacan belirleyen komutlar ieren program paralardr. Olaya prosedrlerini iyi bir ekilde oluturabilmek iin, Olaylar hakknda bilgi sahibi olmak gerekir. Bu blmde, en nemli Visual Basic olaylar verilecektir. ACTIVATE Activate olay, form nesnesi aktif pencere haline geldii zaman meydana gelen olaydr. Formun aktif pencere haline gelmesi ise, kullancnn mouse ile formu semesi, Show metodu ile formun kod yardm ile grntlenmesi ya da SetFocus metodu ile formun aktif hale getirilmesi durumlarnda oluur. Activate olay GotFocus olayndan nce oluur. RNEK: Activate olay iin basit bir rnek vereceiz. Aadaki admlar izleyiniz: 1)Project/Add Form mens ile projeye yeni bir form ekleyiniz. 2)Form1 zerini iki kez tklatarak kod penceresine aadaki kodu giriniz: 3)Run/Start ile kodu altrnz. nce Form1 yklenecek ve ekil O.1 deki mesaj gelecektir. 4)OK butonunu seerseniz bu durumda da ekil O.2 deki kt alnacaktr. DEACTIVE OLAYI Aktif formun artk aktif ya da geerli form olmaktan kmas durumunda meydana gelen olaydr. Formun kod iinde Hide metodu ile gizlenmesi,

VISUAL BASIC LE YAZILIM GELTRME SetFocus metodu ile baka bir formun aktif hale getirilmesi ya da kullancnn mouse ile yeni bir formu semesi durumlarnda oluur. Deactivate olay, LostFocus olayndan nce meydana gelen olaydr. ekil O.1 Activate olaynn sonucu ekil O.2 Form2 nin aktif hale gelmesi RNEK: Aadaki admlar izleyiniz: 1)Form1 zerine bir komut butonu yerletiriniz ve Caption zelliini DEACTIVATE olarak deitiriniz. (ekil O.3) ekil O.3 Deactivate adl komut butonu 2)Form1 in kod penceresine ekil O.4 teki kodu giriniz. 3)Komut butonunun kod penceresine ise aadaki kodu giriniz: Pr ivate Sub Command1_Click() Form1.Hide Form2.Show End Sub 4)Run/Start ile uygulamay altrnz. DEACTIVATE adl butonu mouse ile tklatnz. ekil O.5 teki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil O.4 Form_Deactivate olay prosedr ekil O.5 Form1 in aktifliini kaybetmesi 5)Ok butonunu seiniz ekil O.6 daki mesajla karlaacaksnz. ekil O.6 Form1 in tekrar aktif olmas CHANGE Bir kontrol nesnesinin ieriinde bir deiiklik meydana geldii zaman bu olay oluur. ComboBox (kombine kutu) kontrol nesnesinde Style zellii 0 ya da 1 ise ve kod yardm ile veya el ile Text zellii deitirilirse, bu olay oluur. DirListBox(Dizin Liste Kutusu)adl kontrol nesnesinde, kullanc double-click ile baka bir dizini seerse ya da Path zellii kod yadm ile deitirilirse bu olay oluur.

VISUAL BASIC LE YAZILIM GELTRME Yatay ve dey har eket ubuklar nda, kullanc mouse ile kaydrma ilemini yaparsa ya da kod iinde Value deeri deitirilirse, gene Change olay oluur. Etiket(Label)lerde ierik deiirse gene Change olay oluur. Kod iinde Caption zelliinin deitirilmesi ya da bir DDE linkinin gncelleme yapmas( Kitabn ilgili blmne baknz) Change olayn oluturacaktr. Pictur eBox(resim kutusu) n bir DDE linki ile ieriinin deitirilmesi ya da kod ile Picture zelliinin deitirilmesi Change olayn oluturur. TextBox(metin kutusu) ierii bir DDE linki ile deitirilirse ya da kod iinde Text zellii deitirilirse veya kullanc icra esnasnda mouse ya da klavye yardm ile metin kutusu ieriini deitirirse Change olay oluur. Change olay ile ilikili bir olay prosedrnn yazl biimi aadaki gibidir. Pr ivate Sub Nesne_Change([ndex as Integer ]) RNEK: Aadaki admlar izleyiniz: 1)Form zerine bir metin kutusu ve dey hareket ubuu ve bir etiket yerletiriniz. Etiketin zelliini DEER olarak ataynz. 2)Form kod penceresine aadaki kodu giriniz: Pr ivate Sub Form_Load() VScroll1.Max = 300 VScroll1.Min = 0 VScroll1.LargeChange = 30 VScroll1.SmallChange = 1 End Sub 3)Dey hareket ubuunun kod penceresine de aadaki kodu giriniz: Pr ivate Sub VScroll1_Change() Text1.Text = VScroll1.Value End Sub 4)Run/Start ile kodu altrnz. Dey hareket ubuunun srgsn mouse yardm ile hareket ettirdike, bu nesne zerinde Change olay meydana gelecei iin, VScroll1_Change olay prosedr icra edilecek ve

VISUAL BASIC LE YAZILIM GELTRME metin kutusuna, dey hareket ubuunun o andaki deeri yerletirilecektir. (ekil O.7) ekil O.7 Dey hareket ubuunun deiimi CLICK Mouse gstergesi bir form ya da kontrol nesnesinin zerinde iken, kullancnn mouse tuuna bir kez basp brakmas ile meydana gelir. Ayn zamanda, bir kontrol nesnesinin Value deeri deiince de Click olay meydana gelir. Form nesnesi iin bu olay, ya formun bo bir alannda ve ya Enable zellii False olan bir kontrol nesnesi zerinde iken mouse tuuna baslmas ile meydana gelir. Bir kontrol nesnesi iinse, Click olay, mouse gstergesi kontrol zerinde iken, mouse un sol ya da sa tuuna baslmas ile meydana gelir. CheckBox (kontrol kutusu), ListBox (Liste Kutusu), CommandButton(komut butonu) veya OptionButton (Opsiyon butonu) adl kontrol nesnelerinde, Click olay sadece mouse sol tuuna baslnca meydana gelir. Bir kombine kutuda(ComboBox) veya listeleme kutusunda(ListBox) ya OK tularna basarak ya da mouse butonunu clickleyerek secim yaplr. Click olay iin bir olay prosedr aadaki gibi bir ifade ile balar: Pr ivate Sub Form_Click() Pr ivate Sub Nesne_Click([index As Integer]) RNEK: Aadaki admlar izleyiniz: 1)Form zerine bir resim kutusu(PictureBox) yerletiriniz. AutoSize zelliini True olarak deitiriniz. Resim kutusunun Pictur e zellii

VISUAL BASIC LE YAZILIM GELTRME yanndaki butonu clickleyiniz. ekil O.8 deki dizin iinden FISH.BMP yi resim kutusu iine ykleyiniz. ekil O.8 - ..\Common\Graphics\Bitmaps\Assorted\FISH.BMP nin yklenmesi 2)Resim kutusunu ilk kez tklatarak kod penceresini getiriniz ve kod penceresine aadaki kodu giriniz: Pr ivate Sub Pictur e1_Click() r = Rnd * 600 r = r * k Picture1.Move Picture.Left + r, Picture.Top - r k = -k End Sub 3)Form kod penceresine aadaki kodu giriniz: Pr ivate Sub Form_Load() k = 1 End Sub 4)Formun General/Declarations blmne aadaki bildiri deyimini giriniz:

VISUAL BASIC LE YAZILIM GELTRME 5)Run/Start ile kodu altrnz. Resim kutusunu clicledike, baln hareket ettiini greceksiniz. (ekil O.9) ekil O.9 Click olay ile baln hareketi DBLCLICK Kullancnn mouse tuunu bastrp brakma iini pe pee iki kez gerekletirmesi ile oluur. Form zerinde bo bir alanda ya da Enable zellii False olan bir kontroln zerinde iken mouse tuu iki kez tklanrsa bu olay meydana gelir. Herhangi bir kontrol nesnesi iin, nesne zerinde iken mouse sol tuu iki kez tklanrsa bu olay meydana gelir. ComboBox(Kombine kutu) kontrol nesnesinin Style zellii 1 iken, iindeki bir satrn iki kez tklanmas ile bu olay oluur. FileListBox(Dosya listeleme kutusu), ListBox(Listeleme kutusu), DBCombo ve DBList kontrol nesneleri iin de ayn ey sz konusudur. DblClick olay ile ilgili olay prosedrnn yazl biimi aadaki gibidir: Pr ivate Sub Form_DblClick( ) Pr ivate Sub Nesne_DblClick( index As Integer ) Mouse olaylarn alglayan nesneler iin, bu olaylarn alglanmas u sra ile olur: MouseDown,MouseUp,Click,DblClick ve MouseUp. Eer,sistem, kendisine bildirilen DblClick sresi iinde bir Click i izleyen, ikinci click olayn alglayamazsa, ikinci click ilemini bir Click olay olarak alglar (DblClick deil!)

VISUAL BASIC LE YAZILIM GELTRME Sistemle ilikili DblClick sresi, Windows un kontrol paneli iinde atanabilir. Sol, sa ve orta mouse tular arasnda ayrm yapmak istiyorsanz. MouseDown ve MouseUp olaylarn kullannz. (Bu konuda daha ayrntl bilgi iin, kitabnzn Mouse Olaylar blmne baknz.) RNEK: 1)Form zerine, bir listeleme kutusu(ListBox), bir metin kutusu, bir komut butonu ve iki adet Label yerletiriniz. Birinci Label n Caption zelliini PROF.DR.MTHAT UYSAL'IN KTAPLARI, ikinci Label n Caption zelliine de SETNZ KTAP ibarelerini yerletiriniz. Komut butonunun Caption zelliini de SE olarak ataynz. (ekil O.10 ) ekil O.10 Kontrol nesnelerini yerletirilmesi 2)Form, komut butonu ve listeleme kutusu ile ilikili olarak aadaki olay prosedrlerini giriniz: Pr ivate Sub Form_Load() List1.AddItem "VISUAL BASIC 4.0 " List1.AddItem "EXCEL 7 LE ETKN ZMLER" List1.AddItem "WINDOWS-WORD-EXCEL-POWERPOINT" List1.AddItem "BILG.DEST.YAZILIM TASARIMI(CASE)" List1.AddItem "DBASE III-IV LE PROGR." List1.AddItem "SQL VER TABANI SORG. DILI" List1.AddItem "INTERNET VE TICARI UYGULAMALAR" List1.AddItem "EXCEL 5 LE ETKN ZMLER" List1.AddItem "LOTUS VE MAKROLARI" List1.AddItem "WORD 7.0 VE MAKROLARI" End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Command1_Click() Text1.Text = List1.Text End Sub Pr ivate Sub List1_DblClick() Command1.Value = True End Sub 3)Run/Start ile uygulamay icra ediniz. Listeleme kutusundaki bir satr zerine double-click(iki kez tklatma) ilemini uygularsanz bu satr metin kutusunda grntlenecektir ya da listeleme kutusundaki bir satr mouse ile seerek (zerini karartarak) SE adl komut butonunu tklattnzda, gene bu satrn metin kutusunda grntlendiini izleyeceksiniz.(ekil O.11) ekil O.11 Listeden bir kitabn double-click ile seilmesi ERROR Bu olay sadece veri eriim hatas olutuu durumda ve bilgisayar kodu kontrol ile bu hatann giderilmesi gerekletirilmemise meydana gelir. Bu olay ile ilikili olarak yazlacak bir olay prosedr aadaki biimde olabilir: Private Sub Nesne_Error([index As Integer,]dataerr As Integer, reponse As Integer)

VISUAL BASIC LE YAZILIM GELTRME Eer hata ile ilikili bir Error prosedr yazlmamsa ve hata oluursa, sistem bu hatay bir mesajla bildirecektir. Bir Error prosedr aadaki yapdadr: Pr ivate Sub Data1_Er ror (DataEr ror As Integer , Response As Integer ) Select Case DataError Case 3024 'Veri taban dosyas bulunamad CMDialog.Action = 1 'Gerekli mesaj ve ilem .... End Select End Sub Burada DataEr r bir tamsay deer olarak hata kodunu belirlemektedir. Bu parametre kontrol edilerek hatann trne gre yaplacak iler, kod iinde eitli seenekler olarak belirlenir. Response parametresi aadaki sabitlerden biri olabilir: Deeri, vbDataEr rContinue ise yani saysal olarak 0 ise, kod hatadan sonra devam edecektir; deeri vbDataErrDisplay ise yani saysal olarak 1 ise(Default deer) bu durumda ise hata mesaj grntlenecektir. GOTOFOCUS Bir kontrol nesnesinin, kullancnn bir eylemi ile (Tab tuuna basarak ya da mouse u tklatarak) ya da kod iinde SetFocus metodu kullanlarak aktif nesne haline gemesi( yani sistem ilgisinin bu nesneye odaklanmas) durumunda meydana gelen olaydr. Bir form, zerindeki tm kontrollerin Visible zellikleri False ise odak noktas olabilir. GotoFocus olay ile ilikili olay prosedrleri, aadaki grnmde olabilir: Pr ivate Sub Form_GotoFocus( ) Pr ivate Sub Nesne_GotoFocus([index As Integer ] ) RNEK: 1)Form zerine 2 metin kutusu ve iki komut butonu yerletiriniz. Komut butonlarndan birincisinin Caption zelliini 1.KUTUYU AKTF YAP ve ikincisinin Caption zelliini 2.KUTUYU AKTF YAP olarak deitiriniz. Her iki metin kutusunun da MultiLine zelliklerini True olarak ataynz.(ekil O.12)

VISUAL BASIC LE YAZILIM GELTRME ekil O.12 - Kontrol nesnelerinin yerletirilmesi 2)Komut butonlar ve metin kutular ile ilikili olarak aadaki olay prosedrlerini giriniz: Pr ivate Sub Command1_Click() Text1.SetFocus End Sub Pr ivate Sub Command2_Click() Text2.SetFocus End Sub Pr ivate Sub Text1_GotFocus() Text1.Text = "AKTF METN KUTUSU" Text2.Text = "AKTF OLMAYAN METN KUTUSU" End Sub Pr ivate Sub Text2_GotFocus() Text2.Text = "AKTF METN KUTUSU" Text1.Text = "AKTF OLMAYAN METN KUTUSU" End Sub 3)Run/Start ile uygulamay altrnz. 1.KUTUYU AKTF YAP balkl komut butonunu tkladnzda. ekil O. 13 te grld gibi 1.metin kutusu aktif hale gelecek ve bu durum mesajlarla belirtilecektir. 2. kutu iin de ayn ilem, ikinci butonla gerekletirilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil O.13 - GotoFocus olay uygulamas sonucu LOSFOCUS Bir kontrol nesnesinin aktifliini kaybederek, (Tab tuuna basarak ya da mouse u tklatarak) ya da kod iinde SetFocus metodu kullanlarak baka bir kontrol nesnesinin aktif nesne haline gemesi( yani sistem ilgisinin bu nesneye odaklanmas) durumunda meydana gelen olaydr. Bu olay ile ilikili olarak yazlabilecek olay prosedrleri, aadaki yapda olabilir: Pr ivate Sub Form_LostFocus( ) Pr ivate Sub Nesne_LostFocus([index As Integer ] ) Index parametresi, bir kontrol dizisi kullanlmsa anlamldr. LostFocus olay, zellikle gncelleme ilemlerinin geerlilii ve kontrol sz konusu ise faydal bir olay olarak ortaya kar. LostFocus olay prosedrnn kullanld baka bir uygulama ise, LostFocus olay prosedr iine, dier kontrollerin gizlenmesi, grntlenmesi gibi ilemlerin kodlanmasdr. KEYDOWN, KEYUP Herhangi bir kontrol nesnesi aktif halde iken(fokste-odaklanm) kullancnn klavyede bir tua basmas ile KeyDown olay, tuu serbest brakmas ile de KeyUp olay meydana gelir. Bu olaylarla ilikili olarak yazlacak olay prosedrlerinin yaps aadaki gibidir:

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Form_KeyDown(KeyCode As Integer , Shift As Integer ) Pr ivate Sub Nesne_KeyDown([index As Integer ,] KeyCode As Integer ,Shift As Integer ) Pr ivate Sub Form_KeyUp(KeyCode As Integer , Shift As Integer ) Private Sub Nesne_KeyUp([index As Integer,] KeyCode As Integer ,Shift As Integer) Buradaki Index parametresi, tek bir kontrol yerine kontrol dizisi kullanlyorsa anlamldr. KeyCode ise, baslan tuun saysal kodudur. rnein, F1 tuuna baslmsa bu deer, vbKeyF1 (F1 tuu) Home tuuna baslmsa vbKeyHome (Home tuu) eklinde olacaktr. Tularn kodlarn bulabilmek iin, Object Browser daki nesne ktphanesindeki Visual Basic sabitleri ksmndan yararlanabilirsiniz. Parametreler arasndaki Shift parametresi ise, olayn meydana geldii anda SHIFT, CTRL ve ALT tularnn durumunu gsteren bir tamsaydr. Shift parametresinin en az anlaml biti(bit 0) SHIFT tuuna, bir sonraki biti(bit 1) CTRL tuuna ve daha sonraki biti ise (bit 2) ALT tuuna kar gelmektedir. Bu bitlerin ondalk karlklar ise 1,2 ve 4 saylardr. rnein, SHIFT tuuna baslmsa, Shift parametresinin deeri 1 olacaktr. SHIFT ve CTRL tularna birlikte baslmsa, Shift parametresi 3 deerini alacaktr. CTRL ve ALT tularna birlikte basld takdirde de Shift parametresi 6 deerini alacaktr. Shift parametresinin deerlerini kontrol etmek iin aadaki sabitler de kullanlabilir: Sabit Ad Deeri Anlam vbShiftMask 1 SHIFT tuu vbCtr lMask 2 CTRL tuu vbAltMask 4 ALT tuu RNEK: Bu konuya rnek olarak, Visual Basic Help mensndeki rnek, tipik olduu iin seilmitir. Bu rnekte, F2 tuu ve onunla ilgili tm AL, SHIFT ve CTRL tuu kombinasyonlar test edilerek bildirilmektedir. Aadaki admlar izleyiniz: 1)Form zerine bir metin kutusu yerletiriniz. 2)Text1 adl bu metin kutusunun kod penceresine, aadaki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Text1_KeyDown(KeyCode As Integer , Shift As Integer ) Dim ShiftDown, AltDown, CtrlDown, Txt Const vbKeyF1 = &H71 Const vbShiftMask = 1 Const vbCtrlMask = 2 Const vbAltMask = 4 ShiftDown = (Shift And vbShiftMask) > 0 AltDown = (Shift And vbAltMask) > 0 CtrlDown = (Shift And vbCtrlMask) > 0 If KeyCode = vbKeyF2 Then If ShiftDown And CtrlDown And AltDown Then Txt = "SHIFT+CTRL+ALT+F2." ElseIf ShiftDown And AltDown Then Txt = "SHIFT+ALT+F2." ElseIf ShiftDown And CtrlDown Then Txt = "SHIFT+CTRL+F2." ElseIf CtrlDown And AltDown Then Txt = "CTRL+ALT+F2." ElseIf ShiftDown Then Txt = "SHIFT+F2." ElseIf CtrlDown Then Txt = "CTRL+F2." ElseIf AltDown Then Txt = "ALT+F2." ElseIf Shift = 0 Then Txt = "F2." End If Text1.Text = "Bastnz tu" & Txt End If End Sub 3)Run/Start ile kodu altrnz. CTRL, ALT ve F2 tularna ayn anda basnz. ekil O.13 deki kty elde edeceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil O.13 KeyDown olay prosedrnn kts KEYPRESS Kullancnn bir ANSI tuuna basp serbest brakmas ile oluan olaydr. Microsoft Windows iletim sistemi, American National Standards Insttute tarafndan tanmlanm olan 8-bitlik karakterler kmesini kullanr. Bu karakter kmesi iinde, 256 karakter mevcuttur. (0-255 aras kodlar ile). 0-127 arasndaki nmerik kodlar, standart Amerika Birleik Devletleri klavyesindeki harf ve sembollere kar gelir. 128-255 arasndaki kodlar ise, uluslar aras semboller ve ngilizce dndaki dillere ait zel harf ve karakterleri temsil eder. KeyPress olay iin yazlacak kodlar aadaki gibi olabilir: Pr ivate Sub Form_KeyPress(keyascii As Integer ) Pr ivate Sub Nesne_KeyPr ess([index As Integer ,] keyascii As Integer ) Index parametresi, bir karakter dizisi kullanld zaman gereklidir. KEYASCII parametresi ise, klavyeden baslan tuun nmerik karl olan standart ANSI saysal kodunu temsil etmektedir. KeyPress olay, odaklanm(aktif, fokse olan) kontrol nesnesi tarafndan alglanr. Form, zerindeki kontrol nesnelerinin Visible zellikleri ve Enabled zellikleri False iken bu olay alglayabilir. Formun KeyPreview zellii True ise, olay gene form tarafndan alglanabilir. Bir KeyPr ess olay, herhangi bir print edilebilir karakteri, CTRL tuu ile birlikte baslm standart alfabe karakterlerini(ngiliz Alfabesi), birka zel karakteri ve ENTER ile BACKSPACE tularn ileme sokabilir. Chr (KeyAscii) ifadesi ile, baslan tua ait nmerik kodu, orijinal karakterine dntrebilirsiniz. KeyAscii= Asc(char ) ifadesi ile de, Char ile verilen karaktere ait nmerik ANSI kodu bulunabilir.

VISUAL BASIC LE YAZILIM GELTRME Fonksiyon tular, edit tular, ok tular ya da bu tulatn karm gibi, KeyPr ess olay tarafndan alglanamayan tular ileme sokmak iin, KeyDown ve KeyUp olaylarn kullanmalsnz. KeyPr ess olay her karakteri ayr ayr alglar; klavyenin fiziksel durumu ile ilgilenmez. Bunun anlam udur: KeyPress olay iin, A harfi 65 kodudur; a harfi ise 91 kodudur. Oysa KeyDown ve KeyUp olaylar klavyenin byk harf ya da kk harf modunda bulunup bulunmad ile ilgilenmez; yani, bu olay iin a ya da A ayn tutur, yalnz bunun yannda byk-kk harf ayrm iin Shift tuuna baslp baslmad (klavyenin fiziksel durumu) ile de ilgilenilir. KeyPr eview zellii True ise, form, KeyPr ess olayn, zerindeki kontrollerden daha nce alglar. CTRL+@ tu kombinasyonu iin ANSI nmerik kodu 0 dr. KeyAscii parametresi 0 ise, Visual Basic bunu 0 uzunluklu string( ) olarak alglar. Uygulamanzda bunu dikkate almalsnz. RNEK: 1)Form zerine 2 adet metin kutusu yerletiriniz. 2)Form ve metin kutular ile ilikili olarak aadaki kodlar giriniz. Pr ivate Sub Text1_KeyPr ess(KeyAscii As Integer ) Char = Chr(KeyAscii) KeyAscii = Asc(LCase(Char)) If KeyAscii = 13 Then Text2.Text = UCase(Text1.Text) End If End Sub Pr ivate Sub Form_Load() Text1.Text = "" Text2.Text = "" End Sub 3)Run/Start ile uygulamay altrnz. Birinci metin kutusuna bir ifade yaznz. Bu ifade daima kk harfe evrilecektir. (Lcase fonksiyonu), Birinci metin kutusunda Enter a basarsanz (Bu tu, ASCII 13 karakteridir) yazlan metin byk harf karl ikinci metin kutusunda grntlenecektir. (Ucase fonksiyonu) (ekil O.14)

VISUAL BASIC LE YAZILIM GELTRME ekil O.14 KeyPress fonksiyonu uygulamas DROPDOWN Bir ComboBox( kombine kutu) kontrol nesnesinin sandaki listeleme butonu, mouse yardm ile aa doru ekilince meydana gelen olaydr. Eer ComboBox n, Style zellii 1 ise bu olay meydana gelmeyecektir. (Simple Combo). Bu olay ile ilikili olarak yazlacak bir olay prosedr aadaki gibi olabilir: Private Sun Nesne_DropDown([index As Integer]) Index parametresi, tek bir kontrol nesnesi yerine bir kontrol dizisi kullanld zaman gerekli olacaktr. RNEK: 1) Form zerine bir ComboBox ve 3 adet opsiyon butonu yerletiriniz. 2)Opsiyon butonlarnn Caption zelliklerini sras ile, KLASK BATI MZ, POPLER MZK ve HALK MZ olarak ataynz. (ekil O.15 ) En stteki opsiyon butonunun Name zelliini GRUP olarak deitiriniz. Ayn deiiklii ikinci opsiyon butonunda da yapnz. Bu durumda ekil O.16 daki mesaj gelecektir. Burada Sizin GRUP adnda bir kontrol nesneniz var, bir kontrol dizisi mi oluturacaksnz.? Diye sorulmaktadr. Yes butonunu seerseniz. Ayn ekilde nc opsiyon butonuna da GRUP adn veriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil O.15 Uygulamaya ait kontrol nesnelerinin yerletirilmesi ekil O.16 Kontrol dizisi oluturma 3) Form ve ComboBox ile ilikili olarak aadaki kodlar giriniz: Pr ivate Sub Form_Load() Combo1.Text = "" End Sub Pr ivate Sub Combo1_DropDown() While Combo1.ListCount Combo1.RemoveItem 0 Wend If GRUP(0).Value = True Then Combo1.AddItem "Trk Mar, W.A.Mozart", 0 Combo1.AddItem "Mavi Tuna,J.Strauss", 1 Combo1.AddItem "Semeler,P.I.aykovski", 2 ElseIf GRUP(1).Value = True Then Combo1.AddItem "Dalar ,dalar ,B.Mano" , 0 Combo1.AddItem "Memleketim,A.Alpman", 1

VISUAL BASIC LE YAZILIM GELTRME Combo1.AddItem "Duvarlar,Z.Livaneli", 2 ElseIf GRUP(2).Value = True Then Combo1.AddItem "kertme, Anonim", 0 Combo1.AddItem "Drama Kprs, Anonim", 1 Combo1.AddItem "Gesi Balar, Anonim", 2 End If End Sub 4)Run/Start ile uygulamay altrnz. KLASK BATI MZ butonunu seiniz. ComboBox n yanndaki butonu ektiinizde bu durumda sadece klasik bat mzii paralar listelenecektir. (Kodu inceleyiniz) Bunlardan biri seilebilir. (ekil O.17) ekil O.17 - DropDown olay uygulamas Ayn uygulamada POPLER MZK butonu seilirse, bu durumda kombine kutuda sadece popler mzik paralarnn listeleneceini greceksiniz. PAINT Form ya da resim kutusunun(PictureBox) tamam ya da bir ksmnn boyut ya da konumunun deitirilmesi ya da bu nesneleri iine alan pencerenin hareket etmesi sonucu oluan olaydr. Bu olay iin yazlacak bir olay prosedr aadaki gibi olabilir: Private Sub Form_Paint( ) Pr ivate Sub Nesne_Paint([index As Integer ]) Index parametresine ancak, kontrol nesnesi yerine bir kontrol dizisi kullanlyorsa ihtiya vardr.

VISUAL BASIC LE YAZILIM GELTRME Kodunuz iinde, grafik yntemler ile bir kt elde ediyorsanz, Paint olay yararl olabilir. Paint olay prosedr sayesinde, gerekli ise, bu ktnn yeniden oluturulmasn salayabilirsiniz. Refr esh metodunun kullanlmas ile, Paint olay oluur. ayet, AutoRedr aw zellii True ise, yeniden oluturma otomatik olarak gerekleir; bu durumda Paint olaynn kontrol gerekli deildir. RNEK: 1)Form ile ilikili olarak aadaki olay prosedrlerini oluturunuz: Pr ivate Sub Form_Paint() Scale (-1000, 1000)-(1000, -1000) For i = 1 To 800 Step 100 Circle (0, 0), i, QBColor(15 * Rnd) Next i End Sub Pr ivate Sub Form_Resize() Refresh End Sub 2)Run/Start ile uygulamay altrnz. ekil O.18 deki gibi, i ie daireler izildiini greceksiniz. 3)imdi mouse ile formun kenarlarn kltnz. ekil O.19 daki gibi dairelerin yeni durumuna uydurulduunu greceksiniz. 4)imdi Form_Resize olay prosedrnden Refresh modunu silerek ayn ilemi tekrarlaynz. Bu durumda form boyutlaryla oynadnzda ekil deforme olacaktr. (ekil O.20) ekil O.18 Form zerine daireler izme

VISUAL BASIC LE YAZILIM GELTRME ekil O.19 - Kltlm form zerinde eklin yeniden oluturulmas PATHCHANGE Dosya listeleme kutusunda(FileListBox), kod iersindeki atamalarla, dosya ad (FileName) zellii ya da yol(Path) zellii deitirildii zaman meydana gelen olaydr. PathChange olay ile ilikili olarak yazlacak bir olay prosedr aadaki ekilde olacaktr: Pr ivate Sub Nesne_PathChange([index As Integer]) Buradaki index deerine, ancak, bir kontrol dizisi kullanld zaman gerek vardr. Bir PathChange olay prosedr, sadece, FileListBox( dosya listeleme kutusu) adl kontrol listesinde, Path(yol) deiikliine cevap olarak oluturulur. FileName zelliine, yeni yolu ieren bir string atand zaman, PathChange olay arlm olur. ekil O.20 Deforme olmu ekil

VISUAL BASIC LE YAZILIM GELTRME RNEK: 1)Form zerine 3 adet Label(etiket) yerletiriniz. 1.etiketin Caption zelliini DZNDEK DOSYALAR, 2. Etiketin ayn zelliini GEERL DZN ve 3. Etiketin ayn zelliini YOL eklinde ataynz. (ekil O.21) Ayn form zerime bir dosya listeleme kutusu(FileListBox-File1), bir dizin kutusu (DirListBoxDir1) ve bir metin kutusu yerletiriniz.(TextBox-Text1) 2)Aadaki olay prosedrlerini bu nesnelerle ilikili olarak giriniz: Pr ivate Sub Form_Load() Text1.Text = "YOL:" & Dir1.Path End Sub Pr ivate Sub Dir1_Change() File1.Path = Dir1.Path End Sub Pr ivate Sub File1_PathChange() Text1.Text = "YOL:" & Dir1.Path & "\" & File1.FileName End Sub 3)Run/Start ile uygulamay altrnz. GEERL DZN balkl dizin kutusunda double-click ile dizin deitirdike, YOL balkl metin kutusunda bu dizine ait yolun grntlendiini ve DZNDEK DOSYALAR balkl dosya listeleme kutusunda ise, aktif( bulunulan) dizindeki dosya isimlerinin listelendiini greceksiniz. (ekil O.22) ekil O.21 - Uygulamann nesneleri

VISUAL BASIC LE YAZILIM GELTRME ekil O.22 - Uygulamann icras PATTERNCHANGE FileListBox(Dosya listeleme kutusu) ta, kod iersinde, dosyaya erimek iin kullanlan yol ve dosya ad bilgisi, FileName ya da Pattern zelliklerinde atama yaplarak deitirilirse meydana gelir. Bu olay ile ilikili olarak yazlacak bir olay prosedr, aadaki gibi balayabilir: Private Sub Nesne_PatternChange([index As Integer ]) Index parametresi, tek bir dosya listeleme kutusu yerine, bir kutular dizisi kullanlmas halinde gereklidir. PatternChange olay prosedr, dosya listeleme kutusundaki Pattern(yol ve dosya ad) deiikliklerine cevap olarak oluturulur. Dosya listeleme kutusunda(FileListBox) FileName zellii yerine, yeni pattern i ieren bir string atanrsa, PatternChange olay meydana gelir. RNEK: 1)Form zerine, 4 adet etiket(label, 2 adet metin kutusu(TextBox), bir adet dosya listeleme kutusu(FileListBox) ve bir adet te komut butonu (CommandButton) yerletiriniz. Etiketlerin Caption zelliklerini ras ile, ekil O.23 teki gibi, DZNDEK DOSYALAR, GEERL DZN, GEERL YOL ve YEN ATANACAK YOL olarak deitiriniz. Komut butonunun Caption zelliini YEN YOLU ATA eklinde deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil O.23 Form zerine yerletirilen nesneler 2)Yerletirilen kontrol nesneleri ile ilikili olarak aadaki olay prosedrlerini oluturunuz: Pr ivate Sub Form_Load() Text1.Text = "" Text2.Text = "" Command1.Default = True End Sub Pr ivate Sub File1_PatternChange() File1.Pattern = Text1.Text End Sub Pr ivate Sub Command1_Click() File1.FileName = Text1.Text Text2.Text = File1.Path End Sub Pr ivate Sub Dir1_Change() File1.Path = Dir1.Path End Sub

VISUAL BASIC LE YAZILIM GELTRME 3)Run/Start ile uygulamay icra ediniz. nce ekil O.24 teki grnm elde edilecektir. ekil O.24 Uygulama icra balangc 4)imdi YEN ATANACAK YOL penceresine c:\windows patternini giriniz ve YEN YOLU ATA butonunu clickleyiniz. ekil O.25 teki gibi, Windows dizini iindeki dosyalar, dosya listeleme kutusunda listelenecektir. ekil O.25 - Windows dizini iindeki dosyalar

VISUAL BASIC LE YAZILIM GELTRME QUERYUNLOAD Bir form ya da uygulama kapatlmadan hemen nce meydana gelen olaydr. Bu olay ile ilikili bir olay prosedr aadaki gibi balar: Pr ivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Pr ivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel parametresi yerine 0 dan farkl bir deer atanmsa, QueryUnload olay btn ykl formlar iin iptal edilir ve form ya da uygulamann kapatlmas ilemi durur. UnloadMode parametresi, QueryUnload olayna sebep olan eyi belirlemek iin kullanlan bir tamsay deeridir ve aadaki deerlerden birine sahip olabilir: Sabit Deeri Anlam vbFormControlMenu 0 Kullanc tarafndan formun kontrol mensnden Close komutu seilmitir. vbFormCode 1 Kod iinde Unload metodu icra edilmitir. vbAppWindows 2 O andaki Microsoft Windows iletim sistemi oturumu sona ermitir. (Windows Kapanmtr) vbAppTaskManager 3 S Windows un i yneticisi(Task Manager) uygulamay kapatmtr.

VISUAL BASIC LE YAZILIM GELTRME vbFormMDIForm 4 MDI formu kapand iin, bu formun bir ocuk formu da kapanmtr. Bu olay, uygulama kapatlmadan nce, uygulama iinde formlar zerinde bitmemi bir i kalp kalmadndan emin olmak amac ile, kontrol iin kullanlr. RNEK: Aadaki admlar izleyiniz: 1)Project mensnn Add MDI Form seenei ile, projeye bir MDI Form ekleyiniz. 2)Form1 in MDIChild zelliini True yapnz. 3)Form ve MDIForm nesneleri ile ilikili olarak aadaki kodlar giriniz: Pr ivate Sub MDIForm_Load() Dim NewForm As New Form1 NewForm.Caption = "Form2" End Sub Pr ivate Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim msg msg = "UYGULAMADAN GEREKTEN IKMAK STYOR MUSUNUZ" If MsgBox(msg, 36, Me.Caption) = 7 Then Cancel = True End Sub Pr ivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim msg If UnloadMode > 0 Then msg = "UYGULAMADAN GEREKTEN IKMAK STYOR MUSUNUZ" Else msg = "FORMDAN GEREKTEN IKMAK STYOR MUSUNUZ" End If If MsgBox(msg, 36, Me.Caption) = 7 Then Cancel = True End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub FileExit_Click() Unload MDIForm1 End Sub 4)Run/Start ile uygulamay icra ediniz. ekil O.26 daki ekran gelir. ekil O.26 MDIFormu ve ona bal ocuk formlar 5)imdi Form1 i, mouse ile kapatma kutusunu ( ) clickleyerek kapatmay deneyiniz. ekil O.27 deki mesaj alrsnz. Ayn ilemi, Form2 ve MDIForm iin deneyiniz. ekil O.27 QueryUnload olaynn etkisi REPOSITION Veri yani bir kayt aktif kayt haline gelince meydana gelen olaydr.

VISUAL BASIC LE YAZILIM GELTRME Bu olayla ilikili bir olay prosedr aadaki gibi yazlabilir: Pr ivate Sub Nesne_Reposition([index As Integer]) ndex parametresi, tek bir nesne yerine bir kontrol nesneleri dizisi kullanlyorsa gereklidir. Bir veri kontrol nesnesi yklendii zaman, Recordset nesnesi iindeki ilk kayt aktif hale gelerek Reposition olaynn meydana gelmesine sebebiyet verir. Kullanc, veri kontrol nesnesi zerinde, mouse yardm ile kayt deitirdike ya da kod iinde, FindFirst, MoveNext gibi metotlardan birini kullanarak yeni bir kayta geildiinde, Reposition olay meydana gelir. RNEK: Bu rnek Visual Basic in Help mensndeki rnekten oluturulmutur. Aadaki admlar izleyiniz: 1)From zerine bir metin kutusu(TextBox), bir listeleme kutusu(ListBox) ve bir veri kontrol nesnesi(Data) yerletiriniz. Bunlarn isimlerin sras ile; Text1,List1 ve Data1 olsun. 2)Form ve bu kontrol nesneleri ile ilikili olarak aadaki olay prosedrlerini oluturunuz: Pr ivate Sub Form_Load() Data1.DatabaseName = "C:\Program Files\Microsoft Visual Studio\VB98\BIBLIO.MDB" Data1.RecordSource = "SELECT DISTINCT State FROM Publishers" Loading = True Data1.Refresh Do While Not Data1.Recordset.EOF If Not IsNull(Data1.Recordset(0)) Then List1.AddItem Data1.Recordset(0) End If Data1.Recordset.MoveNext Loop Data1.RecordSource = "Publishers" Data1.Refresh Text1.DataField = "State" Loading = False End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Data1_Reposition() Dim I As Integer If Loading Then Exit Sub For I = 0 To List1.ListCount - 1 If List1.List(1) = Data1.Recordset("State") Then List1.ListIndex = 1 Exit For End If Next I End Sub 3)Gener al/Declarations ksmna aadaki kodu giriniz: Dim Loading As Integer 4)Run/Start ile kodu altrnz. Veri kontrol nesnesi zerinde, tular ile kayt deitirildike, listeleme kutusunda da baka bir kayta geildiini greceksiniz. (ekil O.28) ekil O.28 Reposition olay uygulamas RESIZE Bir form ilk kez grntlendii zaman ya da bir nesnenin boyu deitirildii zaman meydana gelen olaydr. Bu olay ile ilikili olarak yazlacak olay prosedrleri aadaki grnmde olacaktr: Private Sub Form_Resize() Pr ivate Sub Nesne_Resize(height as Single, width As Single) Height parametresi, kontrol nesnesinin yeni yksekliini belirler. Width parametresi ise, kontrol nesnesinin yeni geniliini belirlemektedir.

VISUAL BASIC LE YAZILIM GELTRME Resize olay ile ilikili prosedrler, kontrol nesnesinin iinde bulunduu formun boyutlar deitiinde, kontrol nesnelerine de yeni boyutlar vermek amac ile kullanlabilir. Ayrca, ScaleHeight ve ScaleWidth, gibi, formun boyutlarna bal olan zelliklerin, formun boyutlar deitiinde yeniden atanmas iin de bu olay prosedrleri gerekli olabilir. RNEK: 1)Formun zerine bir metin kutusu yerletiriniz. Metin kutusunun Multiline zelliini True olarak ataynz. BorderStyle zelliini 0 ve Scrollbars zelliini de 3 olarak ataynz.( ekil O.29) ekil O.29 Metin kutusu zelliklerini atama 2)Form ile ilikili olarak aadaki olay prosedrlerini giriniz: Pr ivate Sub Form_Load() Text1.Text = "" End Sub Pr ivate Sub Form_Resize() Text1.Move 0, 0, ScaleWidth, ScaleHeight End Sub 3)Run/Start ile kodu altrnz. Formun boyutunu mouse yardm ile deitiriniz. Her seferinde, o andaki formun tmn kapsayan bir metin kutusu ile karlaacaksnz.(ekil O.30)

VISUAL BASIC LE YAZILIM GELTRME ekil O.30 Formu kapsayan boyuta uyumlu metin kutusu SCROLL Kullanc, hareket ubuundaki(scroolbar) kutucuu hareket ettirdii zaman ya da DBGrid adl kontrol nesnesinde hareket ubuklar yatay ya da dey olarak hareket ettirildikleri zaman ortaya kan olaydr. Bu olay ile ilikili olarak yazlabilecek bir olay prosedr aadaki gibi olabilir: Pr ivate Sub dbgrid_Scroll([cancel As Integer]) Pr ivate Sub Nesne_Scroll( ) RNEK: 1)Form zerine bir resim kutusu(PictureBox-Picture1), bir dey hareket ubuu(VSCrollBar-Vscroll1), iki adet etiket(Label1) yerletiriniz. Label1 in Caption zelliini 50, Label2 nin Caption zelliini 0 olarak deitiriniz. (ekil O.31) 2)Nesnelerle ilikili olarak aadaki olay prosedrlerini oluturunuz: Pr ivate Sub VScroll1_Scroll() Picture1.Scale (-100, 100)-(100, -100) Picture1.Circle (0, 0), VScroll1.Value, QBColor(Rnd * 15) End Sub Pr ivate Sub Form_Load() VScroll1.Max = 50 VScroll1.Min = 0 End Sub 3)Run/Start ile uygulamay altrnz. Mouse yardm ile, dey hareket ubuunu hareket ettiriniz. ekil O.32 deki grnm elde edeceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil O.31 Scroll projesindeki kontrol nesneleri ekil O.32 Scroll projesinin icras sonucu UPDATE Bir OLE taycs iindeki nesneye ait veri deitii zaman meydana gelen olaydr. Bu olayla ilikili olarak yazlabilecek bir olay prosedr aadaki gibi olabilir: Sub Nesne_Update (code As Integer) Buradaki nesne genellikle bir OLE taycs addr. Code parametresi, nesnenin nasl gncellendii konusunda bilgi veren bir parametredir ve aadaki deerlerden birini alabilir. Sabit Deeri Anlam vbOLEChanged 0 Nesnenin verisi deiti vbOLESaved 1 Nesnenin verisi, kendisini yaratan uygulama tarafndan sakland

VISUAL BASIC LE YAZILIM GELTRME vbOLEClosed 2 Bal nesnenin verisini ieren dosya, nesneyi yaratan uygulama tarafndan kapatld vbOLERenamed 3 Bal nesnenin verisini ieren dosyann ad, nesneyi yaratan uygulama tarafndan deitirildi VALIDATE Farkl bir kayt aktif kayt haline gemeden nce, Update, Delete, Unload veya Close metotlarndan nce meydana gelen olaydr. Bu olay ile ilikili bir olay prosedr aadaki gibi yazlabilir: Pr ivate Sub Nesne_Validate([index As Integer,] action As Integer, save As Integer) Index parametresi, tek bir nesne yerine, bir kontrol dizisi kullanld zaman gereklidir. Action parametresi olayn meydana geli biimini aklar ve aadaki tabloda belirtilen deerleri alabilir: vbDataActionCancel 0 Prosedr knda ilem iptal edilir vbDataActionMoveFirst 1 MoveFirst metodu kullanld vbDataActionMovePr evious 2 MovePrevious metodu kullanld vbDataActionMoveNext 3 MoveNext metodu kullanld vbDataActionMoveLast 4 MoveLast metodu kullanld

VISUAL BASIC LE YAZILIM GELTRME VbDataActionAddNew 5 AddNew metodu kullanld VbDataActionUpdate 6 Update ilemi gerekletirildi VbDataActionDelete 7 Delete metodu gerekletirildi VbDataActionFind 8 Find metodu kullanld VbDataActionBookmark 9 BookMark zellii set edildi VbDataActionClose 10 Close metodu kullanld VbDataActionUnload 11 Form bellekten uzaklatrld Save parametresi ise, aadaki deerlerden birini alr: True, veride deiiklik oldu, False, veride deiiklik olmad. RNEK: Pr ivate Sub Data1_Validate(action As Integer, save As Integer) If Text1.DataChanged Then MsgBox "Anahtar deerini deitiremezsiniz." Text1.DataChanged = False End If End Sub

VISUAL BASIC LE YAZILIM GELTRME BLM 18 KONTROL NESNELERNN KULLANILDII ETL UYGULAMALAR

VISUAL BASIC LE YAZILIM GELTRME Bu blmde, kontrol nesneleri, olay prosedrleri ve standart prosedrler kullanlarak gelitirilmi eitli konulardaki projeler, basitten karmaa doru sunulmaktadr. Her proje ile ilikili olarak gerekli aklamalar yaplmtr. Buna ramen tam olarak anlalmayan noktalar olursa, kitabn ilgili blmne bavurmalsnz. RNEK UYGULAMA 1: METN KUTULARI(TEXT BOXES) VE ETKETLER (LABELS) 1)Form zerine, ekil I.1 de grld gibi, 3 adet metin kutusu ve 3 adet te etiket yerletiriniz. Metin kutular otomatik olarak, Text1, Text2, Text3 adlar ile isimlendirilir. (Properties penceresindeki Name zellikleri) Etiketler ise ayn ekilde Label1, Label2 ve Label3 adn alacaktr. 2)Label1 i aktif hale getirerek(mouse ile seerek), Properties penceresinde, Caption zelliini FYAT olarak deitiriniz. Ayn ekilde, Label2 nin Caption zelliini MKTAR ve Label3 n Caption zelliini de TUTAR olarak deitiriniz. Text1,Text2 ve Text3 n Text alanlarndaki ifadeleri ise, mouse ve klavyedeki BackSpace tular yardm ile siliniz. Bu durumda ekil I.2 deki grnm elde edilecektir. ekil I.1 - Tasarmn ilk adm 3 metin ve 3 etiketi kutusu yerletirme 3)Text1 nesnesini seiniz. Mouse u iki kez tklatarak( double-click) Text1 in penceresini getiriniz. Oraya, aadaki kodu giriniz. (ekil I.3)

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Text2_Change() Text3.Text = Val(Text1.Text) * Val(Text2.Text) End Sub Pr ivate Sub Text1_Change() Text3.Text = Val(Text1.Text) * Val(Text2.Text) End Sub ekil I.2 Label larn Caption ve TextBox larn Text zelliklerine atanan deerler. ekil I.3 - Text1_Change olay prosedr ekil I.3 - Text1_Change olay prosedr 5)Run/Start ile projeyi altrnz. Mouse yardm ile en stteki metin kutusunu seiniz(Text1) ve klavye yardm ile bir say giriniz.

VISUAL BASIC LE YAZILIM GELTRME 6)kinci metin kutusunu seerek bir say giriniz. 1. Ve 2. Metin kutularndaki saylarn arpm, TUTAR aklamal metin kutusunda (Text3) grntlenecektir. (ekil I.5) ekil I.5 lk metin kutusuna girilen saylarn arpm 1. ya da 2. Metin kutusundaki saylarda yapacanz deiiklikler annda arpma aksedecek ve onu deitirecektir. Change olay, metin kutusunda(Text zelliinde) bir deiiklik olutuu zaman meydana gelen bir olaydr. Text1_Change ve Text2_Change olay prosedrleri sayesinde, Text1 ya da Text2 nin text zelliklerinde bir deiiklik oluunca, arpm deerini grntleyen Text2 kutusuna, Text1 ve Text2 nin yeni ieriklerinin saysal arpm atanmaktadr. Text kutularnn Text alanlar, string tr bilgi ierdii iin, matematiksel arpma ilemi yapabilmek amac ile, bu ierikler, VAL fonksiyonu yardm ile, nmerik deerlere dntrlmektedir. RNEK UYGULAMA 2 : YATAY VE DEY HAREKET UBUKLARI, METN KUTULARI, ETKETLER 1)Form zerine, bir yatay hareket ubuu(horizontal scroll bar), bir dey hareket ubuu( vertical scroll bar), iki adet metin kutusu(text box) ve iki adet etiket(label), ekil I.6 daki gibi yerletiriniz. 1)Label1 in Caption zelliini YATAY HAREKET UBUU, Label2 nin Caption zelliini DEY HAREKET UBUU olarak deitiriniz. Text1 ve Text2 adl metin kutularnn text zelliklerini de bo olarak ataynz. (ekil I.7)

VISUAL BASIC LE YAZILIM GELTRME ekil I.6 rnek uygulama 2 ekran ekil I.7 Label ve Text kutularna atanan deerler 3)Yatay hareket ubuunu mouse ile seiniz. Double click ile kod penceresini getiriniz ve ekil I.8 deki kodu giriniz. 4)Ayn ilemi dey hareket ubuu iin yapnz ve ekil I.9 daki kodu giriniz. 5)Yatay hareket ubuunu seiniz. Max zelliini 100 olarak ve LargeChange zelliini de 10 olarak deitiriniz. (ekil I.10) 6)Dey hareket ubuunu seiniz. Max zelliini 200 olarak ve LargeChange zelliini de 10 olarak deitiriniz. (ekil I.11)

VISUAL BASIC LE YAZILIM GELTRME ekil I.8 Hscroll1_Change olay prosedr ekil I.9 Vscroll1_Change olay prosedr ekil I.10 Yatay hareket ubuunun zelliklerine deer atama ekil I.11 Dey hareket ubuunun zelliklerine deer atama

VISUAL BASIC LE YAZILIM GELTRME 7)Run/Start ile projeyi altrnz. Mouse yardm ile yatay hareket ubuundaki butonu hareket ettirdiinizde, o andaki konumu Text1 adl metin kutusunda grntlenecektir. Ayn ekilde, Dey hareket ubuunun butonunu hareket ettirdiinizde, o andaki konum Text2 adl metin kutusunda grntlenecektir. (ekil I.12) ekil I.12 Hareket ubuklarnn konumlarnn grntlenmesi Yatay ve dey hareket ubuklarnda, Min ve Max zellikleri, ubuun balang konumu ve eriebilecei son konum says olarak belirlerler. Yukardaki uygulamada, Yatay hareket ubuunun Min zellii 0 ve Max zellii 100 olarak atandna gre, ubuun Value zellii bu iki deer arasnda deerler alabilecektir. SmallChange zellii, ubuun kk bir hareketindeki deiim miktarn(hareket ubuunun iki ucundaki oklar clickleyerek), LargeChange zellii ise, ubuun byk bit hareketindeki deiim miktarn(ubuun kendisini mouse yardmyla hareket ettirerek) belirlemektedir. Yukardaki rnekte, SmallChange 1 olarak atanmtr; bu durumda, kk harekette, Value deeri 1 er 1 er deiecektir. 8)cray durdurunuz.(Run/End ile). imdi form zerine yeni bir Text kutusu ve bir Label ekleyerek. Label n Caption zelliini ARPIM olarak deitiriniz. Text kutusuna(Text3) Text zellii yerine boluk ataynz. Hscroll1_Chance ve Vscroll_Chance olay prosedrlerini aadaki gibi deitiriniz. (ekil I.13) Pr ivate Sub HScroll1_Change() Text1.Text = HScroll1.Value Text3.Text = Val(HScroll1.Value) * Val(VScroll1.Value) End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub VScroll1_Change() Text2.Text = VScroll1.Value Text3.Text = Val(HScroll1.Value) * Val(VScroll1.Value) End Sub ekil I.13 Olay prosedrlerinin yeni ekilleri Run/Star t ile, kodu yeni ekli ile altrnz. Yatay ve dey hareket ubuklarnn konumlarn deitiriniz. ARPIM balkl, Text3 adl metin kutusunda, her an, o andaki konumlarn arpm grntlenecektir. ekil I.14 - Hareket ubuklarnn konumlarnn arpm

VISUAL BASIC LE YAZILIM GELTRME Hareket ubuklarnn kk hareketi olutuunda zel olarak gerekletirilmesi istenen ilemler iin, her iki kontrol nesnesi iin de Scroll olay prosedr kullanlmaldr. RNEK UYGULAMA 3 K MATRSN ARPIMI-METN KUTULARI, ETKETLER, KOMUT BUTONU Bu uygulama, matematiksel bir uygulamadr. Visual Basic in kullanc arayz oluturmada salad mkemmel zelliklere ramen, zellikle kontrol komutlar ve dizler kullanlarak kod oluturmann da ne kadar nemli olduunu gsteren bir rnektir. A ve B gibi iki matrisin arpm, A . B = eklinde gsterilir ve sonuta elde edilen C de bir matristir. rnek projemizde A(22) ve B(21) boyutundadr ve dolays ile sonu matrisi olan C de (21) boyutunda olacaktr. Bu ilemi gerekletirmek iin aadaki admlar izleyiniz: 1)Form zerine 8 adet metin kutusu(Text1,Text2,...Text8), 4 adet etiket(Label1,...Label4) ve bir komut butonu yerletiriniz. (ekil I.15) Label in Caption zelliini A MATRS, Labe2 nin Caption zelliini B MATRS, Labe3 n Caption zelliini de D MATRS olarak deitiriniz. Label 4 n Caption alanna ise, ekil I.15 te grlen aklamay yaznz. Komut butonunun Caption alanna ise, matrisin arpm olarak deitiriniz. 2)Form zerinde double-click ilemini uygulayarak kod penceresini getiriniz. Tools/Add Procedur e men admlarn seerek gelen pencereyi ekil I.16 daki gibi doldurunuz. Ok butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil I.15 Matris arpm uygulamas - Tasarm aamasnda formun grn ekil I.16 matcarp adl prosedrn tanmlanmas 3)Karnza gelen kod penceresini aadaki gibi doldurunuz: (ekil I.17) Public Sub matcarp() ReDim a(2, 2), b(2, 1), c(2, 1) Dim i, j, k a(1, 1) = Val(Text1.Text) a(2, 1) = Val(Text3.Text) a(1, 2) = Val(Text2.Text) a(2, 2) = Val(Text4.Text) b(1, 1) = Val(Text5.Text) b(2, 1) = Val(Text6.Text)

VISUAL BASIC LE YAZILIM GELTRME k = 1 For i = 1 To 2 c(i, k) = 0 For j = 1 To 2 c(i, k) = c(i, k) + a(i, j) * b(j, k) Next j, i Text7.Text = Val(c(1, 1)) Text8.Text = Val(c(2, 1)) End Sub ekil I.17 matcarp n ilk birka satrnn grnm 4)Aadaki Command1_Click olay prosedrn oluturunuz. Bunu oluturmak iin, form zerine yerletirdiiniz komut butonunun zerinde double-click ilemi uygulayarak komut butonunun kod penceresine ulamalsnz: 5)Run/Start ile projeyi altrnz. Mouse yardm ile, nce A matrisinin elemanlarn nce clickleyerek aktif hale getiriniz, sonra klavye yardm ile matris elemannn saysal deerini giriniz. Daha sonra ayn ilemi B matrisi iin gerekletiriniz. A ve B ye bilgi girii bitince, matris arpm adl komut butonunu mouse yardm ile clickleyiniz. ekil I.18 deki gibi C arpm matrisinin hesaplandn greceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil I.18 Matris arpm sonu ekran RNEK UYGULAMA 4 : EVRE BELLEKTE(DSK) SAKLI BULUNAN RESM DOSYALARINI AIRMA-RESM KUTUSU(PICTUREBOX), METN KUTUSU, KOMBNE KUTU(COMBOBOX), ETKET(LABEL) Bu uygulamada, kullancnn, bir seenekler listesinde isimleri listelenmi olan eitli resimlerden, arzu ettii birini ekrana, bir resim kutusu nesnesi iine getiren bir proje gelitirilecektir. Bu amala, aadaki admlar izleyiniz: 1)Form zerine, Picture1 adl bir resim kutusu (PictureBox), Text1 adl bir metin kutusu, Combo1 adl bir kombine kutu ve Label1 adl bir etiket nesnesini ekil I.19 daki gibi yerletiriniz. Combo1 adl kontrol nesnesinin Text zelliini RESM LSTES olarak deitiriniz. 2)Picture1 adl, resim kutusunun AutoSize zelliini True yapnz. Appearance zelliini 3D olarak ataynz. 3)Formun zerine double-click ilemi uygulayarak kod penceresini getiriniz ve aadaki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME 4)Combo1 kontrol nesnesine double-click ilemini uygulayarak kod penceresine aadaki kodu giriniz: Private Sub Combo1_Click() Select Case Combo1.Text Case Combo1.List(0) Text1.Text = Combo1.List(0) Picture1.Picture = LoadPicture("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Bitmaps\Assorted\BALLOON.BMP") Case Combo1.List(1) Text1.Text = Combo1.List(1) Picture1.Picture = LoadPicture("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Bitmaps\Assorted\DIAMOND.BMP") Case Combo1.List(2) Text1.Text = Combo1.List(2) Picture1.Picture = LoadPicture("C:\Program Files\Microsoft Visual Studio\Common\Graphics\Bitmaps\Assorted\BELL.BMP") End Select End Sub 5)Run/Start ile projeyi altrnz. ComboBox n yanndaki butonu clickleyerek, iindeki seenekler listesini grntleyiniz. (ekil I.20) Listedeki seeneklerden, mouse yardm ile elmas seiniz ve clickleyiniz. Ekrana ekil I.21 de grlen resmin yklendiini greceksiniz. Bu uygulamada gerekmemekle birlikte, ComboBox taki tm elemanlar karmak iin aadaki gibi bir kod kullanlabilir: x=Combo1.ListCount For i = 0 To x-1 Combo1.RemoveItem i Next i

VISUAL BASIC LE YAZILIM GELTRME ekil I.19 Resim ykleme uygulamas tasarm ekran ekil I.20 Resim ykleme uygulamasnn icras ekil I.21 ELMAS resminin akrana 2 boyutlu olarak yklenmesi RNEK UYGULAMA 5 : TREEVIEW(AA GRNM) NESNES Visual Basic in Professionel Edition srmnde bulunan kontrol nesnelerinden biri de TreeView kontrol nesnesidir. Windows un Explorer bu nesne kullanlarak oluturulmutur. Disk zerindeki dizin

VISUAL BASIC LE YAZILIM GELTRME yaplarn grntlemek ya da hiyerarik yaplar grntlemek amac ile kullanlr. TreeView kontrol nesnesi 32-bitlik Visual Basic versiyonlarna ait olduu iin, Windows 95 ve Windows NT 3.51 altnda ya da bunlarn daha sonraki versiyonlarnda kullanlabilir. TreeView kontrol nesnesi, COMCTL32.OCX dosyas iindedir. TreeView kontrol yapsn kullanabilmek iin COMCTL32.OCX dosyasn projenize katmalsnz. Kontroln grnm aadaki gibidir. imdi TreeView yaps kullanlarak gelitirilen bir uygulama anlatlacaktr. Aadaki admlar izleyiniz: 1)Tr eeView kontrol nesnesini form zerine yerletiriniz.(ekil I.22) ekil I.22 Form zerine yerletirilen TreeView kontrol nesnesinin grnm 2) ekil I.23 te grlen Form_Load prosedrn giriniz. 3) Tr eeView nesnesi zerine double-click ilemini uygulayarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Tr eeView1_DblClick() If TreeView1.Nodes.Item("b").Selected = True Then A$ = "Bu tip dosyalarda kaytlara" b$ = " Sra ile eriilir " MsgBox A$ + Chr(10) + Chr(13) + b$, , "SIRALI" ElseIf TreeView1.Nodes.Item("c").Selected = True Then A$ = "Bu tip dosyalarda kaytlara" b$ = " Kayt numaras ile eriilir " MsgBox A$ + Chr(10) + Chr(13) + b$, , "RASTGELE" ElseIf TreeView1.Nodes.Item("d").Selected = True Then

VISUAL BASIC LE YAZILIM GELTRME A$ = "Bu tip dosyalarda verilere" b$ = "Byte Byte eriilebilir" MsgBox A$ + Chr(10) + Chr(13) + b$, , "RASTGELE" End If End Sub ekil I.23 Form _Load prosedr 4)Run/Start mens ile uygulamay altrnz. ekil I.24 te grlen aa yaps grntlenecektir. Burada SIRALI dmnn zerine mouse yardm ile, double-click ilemi uygulaynz. ekil I.24 te grld gibi, SIRALI eriimli tipteki Visual Basic dosyalar hakknda ksa bir aklama ieren bir mesaj kutusu grntlenecektir. Bu uygulamada grdmz gibi, bir TreeView nesnesinin dmlerine, bir label(etiket) ve istenirse bir de resim(picture) yerletirilebilir. Dmlerin seilmesi ile de, istenen bilgilere eriilebilir. ekil I.24 TreeView uygulamasnn kts

VISUAL BASIC LE YAZILIM GELTRME Uygulamadaki, Dim dug As Node Set dug = Tr eeView1.Nodes.Add(, , " a" , "VISUAL BASIC DOSYA TPLER" ) kod satr ile kk dm oluturulmaktadr. Burada Add metodunda 4 parametresi kullanlmtr. Bo braklan iki parametre, yaratlan dmn hangi dm ile ilikili olacan belirtir. Kk dm iin bu alan doal olarak bo braklmtr. Bo braklan ikinci parametre ise, dmn tipini belirtmektedir. Bir dm baka bir dmn altndaki dm olabilir. Bu durumda, alttaki dm ocuk dmdr ve bu Visual Basic te tvwChild parametresi ile belirtilir. tvwFirst parametresi, ilikili dmle ayn dzeydeki ilk karde dm, tvwLast parametresi ile ilikili dmle ayn dzeydeki son karde dm, tvwNext ilikili dmle ayn dzeydeki ve bir sonraki(komu) karde dm, tvwPr evious parametresi ise, ilikili dmle ayn dzeydeki ve bir nceki(komu) karde dm simgeler. rnein, Set dug = TreeView1.Nodes.Add(1, tvwChild, "b", "SIRALI") Set dug = TreeView1.Nodes.Add(1, tvwChild, "c", "RASTGELE") Set dug = TreeView1.Nodes.Add(1, tvwChild, "d", "KL (BINARY)") komutlar ile, kk dmn ocuklar olarak, etiketleri SIRALI, RASTGELE ve KL (BINARY) olan 3 ocuk dm yaratlmtr. Komutlarndaki 3. Parametre ise(a,b,c,d parametreleri) ilikili dme erimek iin kullanlabilecek bir anahtar (Key) deeri oluturmaktadr. dug.Ensur eVisible ifadesi ise, yaps tanmlanan aacn, ekranda grntlenmesini salamaktadr. Tr eeView1_DblClick olay prosedrndeki TreeView1.Nodes.Item("c").Selected = True eklindeki ifade ise, anahtar deeri verilen(rnekte c) dmn seilip seilmediini kontrol etmektedir. lgili dm seilmise, ona ait bilgiler ekrana MsgBox ifadeleri ile aktarlmaktadr. RNEK UYGULAMA 6: OPSYON(SEENEK) BUTONLARI, EKL(SHAPE) NESNES, KOMUT BUTONU 1)Form zerine 6 adet opsiyon butonu, bir ekil nesnesi ve bir de komut butonu ekil I.25 teki gibi yerletiriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil I.25 - Kontrol nesnelerinin yerletirilmesi 2)Option1 kontrol nesnesini seerek Proper ties penceresinde Caption zelliini DKDRTGEN olarak deitiriniz. Option2 nin Caption zelliini, KARE, Option3 n ELPS,Option4 n DARE, Option5 in YUVARLATILMI DKDRTGEN ve Option6 nnkini de YUVARLATILMI KARE olarak deitiriniz. Shape nesnesinin FillStyle zelliini Solid olarak deitiriniz. Shape nesnesinin FillColor zelliini istediiniz bir renk olarak ataynz. Command1 adl komut butonunun Caption zelliini de Z olarak deitiriniz. (ekil I.26) ekil I.26 Tasarm penceresinde projenin son hali

VISUAL BASIC LE YAZILIM GELTRME 3)Komut butonunun zerini iki kez tklatarak kod penceresini getiriniz ve ekil I.27 se balang ve aada tm listesi grlen kodu giriniz. Pr ivate Sub Command1_Click() If Option1.Value = True Then Shape1.Shape = 0 ElseIf Option2.Value = True Then Shape1.Shape = 1 ElseIf Option3.Value = True Then Shape1.Shape = 2 ElseIf Option4.Value = True Then Shape1.Shape = 3 ElseIf Option5.Value = True Then Shape1.Shape = 4 ElseIf Option6.Value = True Then Shape1.Shape = 5 End If End Sub ekil I.27 - Komut butonuna ait olay prosedrnn balangc 4)Run/Start ile uygulamay icra ediniz. ELPS butonunu mouse yardm ile click leyerek Z butonunu mouse ile seiniz. ekil I.28 deki gibi bir elips izildiini greceksiniz. Her farkl seenek(KARE,DARE vb) seilip Z butonu uyarlrsa, seilen ekil izilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil I.28 - Seilen ekli izdirmek RNEK UYGULAMA 7 : MSFLEXGRID NESNES, METN KUTUSU, EREVE(FRAME) VE OPSYON BUTONLARI Bu rnekte, grid nesnesi ile ilikili ok basit bir uygulama verilmektedir. lk anda kullanm ilkellikleri tanmasna ramen, basitlii bozmamak amac ile kod bu ekli ile braklmtr. Aadaki admlar izleyiniz: ekil I.29 Grid uygulamas tasarm penceresi

VISUAL BASIC LE YAZILIM GELTRME 1)Form zerine bir grid kontrol nesnesi, bir metin kutusu, bir ereve ve ereve iine de iki adet opsiyon butonu yerletiriniz. (ekil I.29) 2)erevenin Caption zelliini FONKSYON, opsiyon butonlarndan birincisinin (Option1) Caption zelliini TOP, ikincisinin Caption zelliini de MAX olarak deitiriniz. 3)Formun zerine double-click ilemi uygulayarak kod penceresini getiriniz ve aadaki kod satrn giriniz: Pr ivate Sub Form_Load() MSFlexGrid1.Col = 5 MSFlexGrid1.Row = 5 Text1.Text = "" End Sub Pr ivate Sub Form_Click() Dim i, j, t, ColBasla, RowBasla, max As Integer t = 0 ColBasla = MSFlexGrid1.Col RowBasla = MSFlexGrid1.Row If Option1.Value = True Then For i = RowBasla To MSFlexGrid1.RowSel For j = ColBasla To MSFlexGrid1.ColSel MSFlexGrid1.Row = i MSFlexGrid1.Col = j t = t + Val(MSFlexGrid1.Text) Next j Next i MsgBox Str(t), , "toplam" End If If Option2.Value = True Then max = 0 For i = RowBasla To MSFlexGrid1.RowSel For j = ColBasla To MSFlexGrid1.ColSel MSFlexGrid1.Row = i MSFlexGrid1.Col = j If Val(MSFlexGrid1.Text) > max Then max = Val(MSFlexGrid1.Text) End If

VISUAL BASIC LE YAZILIM GELTRME Next j Next i MsgBox Str(max), , "maximum" End If Text1.Text = MSFlexGrid1.Text End Sub 4)TextBox nesnesinin kod penceresini aarak aadaki kod satrn ekleyiniz: Pr ivate Sub Text1_KeyPr ess(KeyAscii As Integer ) If KeyAscii = 13 Then MSFlexGrid1.Text = Str(Val(Text1.Text)) End Sub 3)Run/Start ile uygulamay altnz. Mouse metin kutusunu seerek bir say giriniz ve enter tuuna basnz. Sonra mouse-click ile baka bir hcreyi seiniz. Tekrar mouse ile metin kutusunu seerek bir say giriniz. Bu ilemi birka tane say kadar srdrnz. 6)Say girii bitince mouse yardm ile TOP isimli opsiyon butonunu clickleyiniz. (ekil I.30) ekil I.30 Toplam fonksiyonunun seilmesi 7)imdi mouse yardm ile tm saylar seiniz. (o blgeyi karartnz) . Mouse sol tuunu serbest braknca seilen saylarn toplamnn hesaplandn greceksiniz. (ekil I.31)

VISUAL BASIC LE YAZILIM GELTRME ekil I.31 Toplam fonksiyonunun sonucu TOP yerine MAX fonksiyonu seilse idi, seilen blgedeki en byk say bulunacakt. Grid nesnesi ile ilikili zellik ve metotlar, kitabmzn ilgili blmnde bulabilirsiniz. RNEK UYGULAMA 8 : GRNT LSTES (ImageList), AA GRNM(Tr eeView) NESNELERNN BRLKTE KULLANIMI Grnt listesi(ImageList) nesnesi, icra esnasnda grntlenemeyen, fakat baka nesneler tarafndan referans verilen grntleri tayan ve saklayan kontrol nesnesidir. Ara kutusu iinde, solda grlen grntye sahiptir. Windows 95 ya da Windows NT 3.51 veya daha sonraki versiyonlar altnda kullanlabilir. Bu kontrol COMCTL32.OCX dosyas iindedir. ImageList ve TreeView nesnelerini birlikte kullanan aadaki uygulama size bu nesne hakknda somut fikir verecektir. u admlar izleyiniz: 1)Form zerine bir ImageList bir de TreeView nesnesi yerletiriniz. (ekil I.32)

VISUAL BASIC LE YAZILIM GELTRME ekil I.32 - Form zerine yerletirilen, TreeView ve ImageList nesneleri 2)ImageList nesnesini seiniz. Proper ties penceresinde Custom zelliini seiniz. Karnza gelen pencerede Images alternatifini seiniz. Gelen grnt dosyalar iinde, her seferinde Images balkl kutular iine farkl bir ekil yerletiriniz. (ekil I.33) ekil I.33 Grnt listesine grntleri yerletirme 3)Formun kod penceresine aadaki kodu giriniz: Pr ivate Sub Form_Load() Dim x As Node TreeView1.ImageList = ImageList1 Set x = TreeView1.Nodes.Add(, , , "a", 1) Set x = TreeView1.Nodes.Add(1, tvwChild, , "b", 2)

VISUAL BASIC LE YAZILIM GELTRME Set x = TreeView1.Nodes.Add(1, tvwChild, , "c", 3) Set x = TreeView1.Nodes.Add(2, tvwChild, , "d", 4) End Sub Bu kod iindeki Add metotlarnda, parametre, o aa dmne atanacak metin(text) bilgisini belirtmekte, (rnek uygulama 5 e baknz) (a,b,c,d) , 5. Parametre ise (1,2,3 ve 4 deeri), o dmn ImageList nesnesindeki hangi grnt ile ilikilendirildiini tespit etmektedir. 4)Run/Start ile uygulamay icra ediniz. ekil I.34 teki grnty elde edeceksiniz. ekil I.34 Metin ve grnt yerletirilmi olan aa nesnesi RNEK UYGULAMA 9: SRGL CETVEL(SLIDER), METN KUTULARI; ETKETLER Srgl cetvel nesnesi, ara kutusunda, sol taraftaki grnme sahip olan bir kontrol nesnesidir. Windows 95 ya da Windows NT 3.51 veya daha sonraki versiyonlar altnda kullanlabilir. Bu kontrol COMCTL32.OCX dosyas iindedir. Aadaki admlar izleyerek, srgl cetvelin kullanm konusunda somut bir fikir edinebilirsiniz: 1)Form zerine iki adet Slider(Srgl cetvel), iki adet metin kutusu ve iki adet etiket yerletiriniz. lk etiketin(Label1) Caption alanna Celcius , ikincisinin ayn alanna ise Fahr enheit yaznz. (ekil I.35)

VISUAL BASIC LE YAZILIM GELTRME 2)Slider1 nesnesinin Min zelliini 0 ve Max zelliini 100 olarak ataynz. Slider2 nesnesinin ise, Min zelliini 32, Max zelliini ise 212 olarak ataynz. ekil I.35 - Slider nesnesi uygulamas 3)Slider 1 ve Slider2 nesnelerinin kod pencerelerine aadaki kodlar giriniz: Pr ivate Sub Slider1_Click() Text1.Text = Slider1.Value Text2.Text = 1.8 * Slider1.Value + 32 End Sub Pr ivate Sub Slider2_Click() Text2.Text = Slider2.Value Text1.Text = 1 / 1.8 * (Slider2.Value - 32) End Sub 4)Run/Start seiniz. Slider1 i deitirdike bir Celcius scaklk deerinin Text1 adl metin kutusunda ve onun Fahrenheit karlnn da Text2 kutusunda grntlendiini greceksiniz. Slider1, 0-100 arasndaki Celcius deerini grntlerken, Slider2 kullanlarak ta, 32-212 arasndaki Fahrenheit deerleri elde edilebilir.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 10: DOSYA LSTES KUTUSU(FileListBox), SRC LSTES KUTUSU(Dr iveListBox), DZN LSTES KUTUSU(DirListBox), METN KUTUSU(TextBox), ETKET(Label), KOMUT BUTONU(CommandButton) Bu uygulamada, disk ya da disket srcdeki dizin yapsn ve dizin ieriklerini grme ve seilen bir dosyay arma gibi, Windows uygulamalarnn hepsinde standart olarak mevcut olan ilevleri yerine getirecek bir proje gelitirilecektir. Aadaki admlar izleyiniz: 1)Form zerine ekil I.36 da grld gibi, bir metin kutusu(Text1), bir dosya listesi kutusu(File1), bir dizin listesi kutusu(Dir1), bir src listesi kutusu(Drive1), bir etiket(Label1) yerletiriniz. 2)Etiketin(Label1) Caption zelliini DOSYA ADI, komut butonunun Caption zelliini de OK olarak deitiriniz. ekil I.36 - Form zerine yerletirilen kontrol nesneleri 3)Kontrol nesneleri ile ilikili olarak aadaki kodlar giriniz: Pr ivate Sub Command1_Click() Dim uzant a = File1.Path & "\" & File1.FileName If uzant = (FileName3) Then Shell (a) End If End Sub Pr ivate Sub File1_Click() Text1.Text = File1.List(File1.ListIndex) End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Pr ivate Sub Dir1_Change() File1.Path = Dir1.Path End Sub Pr ivate Sub Form_Load() Text1.Text = "" End Sub 4)Run/Start ile uygulamay altrnz. Mouse yardm ile setiiniz src ve dizinlerdeki dosyalarn isimleri, dosya listeleme kutusunda listelenecektir. ayet bir .EXE dosyas seilmise, bu OK butonuna basnca icra edilecektir.(ekil I.37) , .EXE dndaki dosya tipleri seilerek OK butonu seilirse, Run Time Error hatas mesaj alnacaktr. Kullancnn bu tr bir seim yapmasnn engellenmesi de, istenirse, kod iinde kontrol edilebilir. ekil I.37 seilen dizindeki dosyalar listeleme Farkl bir dizin semek iin, dizin listesi kutusundaki bir dizin ad zerinde, mouse ile double-click ilemi uygulanmaldr.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 11 : LERLEYEN UBUK (PROGRESSBAR), 2 ADET ETKET(LABEL), BR RESM KUTUSU(PICTUREBOX) VE BR ADET ZAMANLAYICI(TIMER) lerleyen ubuk(Progressbar), nesnesi, ara kutusu iinde, solda grld gibi grntlenen bir nesnedir. Zamann geiini, grsel olarak vurgulamak ieren uygulamalar iin uygundur. Bu projemizde, zamann geii grsel olarak temsil edilecei iin, progressbar ve timer a ihtiya olacaktr. Aadaki admlar izleyiniz: 1)Form zerine, 2 adet etiket nesnesi yerletiriniz. Label1 adl etiket nesnesinin Caption alann Geen zaman olarak deitiriniz. (ekil I.39) Timer n Interval zelliini 1000 yapnz. Bu, 1000 milisaniye yani 1 saniye anlamndadr. (ekil I.39) Resim kutusunun Picture zelliinin yanndaki butonu clickleyiniz ..\vb\graphics\bitmaps\assorted\ dizinini seerek CLUP.BMP yi resim kutusuna ykleyiniz. (ekil I.38 ve I.39) ekil I.38 Club. bmp nin seilii 2)Mouse ile formun zerinde, Progressbar seiniz. zellikler penceresinde, Max zelliini 60 ve Min zelliini 0 olarak ataynz. (ekil I.40)

VISUAL BASIC LE YAZILIM GELTRME ekil I.39 - Uygulamaya ait kontrol nesneleri ekil I.40 Progressbar zelliini atama 3)ekil I.41 deki gibi, Timer1_Timer adl olay prosedrn oluturunuz. 4)Run/Start ile uygulamay altrnz. ekil I.42 deki gibi, zaman getike, ekranda bunun hem yaz ile, hem de ilerleyen ubuk yardm ile grsel olarak grntlendiini izleyeceksiniz. Bu esnada, resim kutusundaki resim de, Picture1.Visible = Not (Picture1.Visible) satrndan tr bir grnp bir kaybolacaktr.

VISUAL BASIC LE YAZILIM GELTRME ekil I.41 - Timer1_Timer olay prosedr ekil I.42 - lerleyen ubuk uygulamas icra zaman grnts RNEK UYGULAMA 12 : TOOLBAR NESNES 1)Form zerine, ToolBox iinden, bir Toolbar(Ara ubuu) nesnesi yerletiriniz. Ad, default olarak, Toolbar1 olacaktr. Grnm ise ToolBox eklinde ve form zerinde de ekil I.43 teki gibidir. ekil I.43 - Ara ubuu(Toolbar), form zerinde

ta

VISUAL BASIC LE YAZILIM GELTRME 2)Toolbar n, Proper ties penceresinde, Custom zelliinin yanndaki butonu clickleyiniz. Gelen pencerede Buttons u seiniz. Caption zelliine EXCEL yaznz. Inser t Button u seerek ikinci butonun Caption zelliini WORD ve Insert Buton u seerek nc butonun Caption zelliini POWERPOINT olarak ataynz. (ekil I.44) ekil I.44 Toolbar a buton eklenmesi 3)Kod penceresine ekil I.45 teki kodu giriniz. 4)Run/Start ile uygulamay altrarak, EXCEL butonunu tkladnzda, Excel in aldn greceksiniz. Word ve PowerPoint iin de ayn ekilde icra mmkndr. ekil I.45 - Toolbar iin yazlan kod

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 13: TOLLBAR VE IMAGELIST NESNELER Toolbar nesnesi zerine yerletirilen butonlar zerine yukardaki rnekte olduu gibi etiketler(EXCEL, WORD vb) yerletirilebilecei gibi, istenirse, her buton zerine ayrca resimler de yerletirilebilir. Aadaki rnei izleyiniz: 1)Form zerine bir toolbar ve bir de grnt listesi(ImageList) nesnesi yerletiriniz. ImageList in Custom zelliini seiniz. Gelen pencerede Images alternatifini seiniz. FISH.BMP ve CARD.BMP yi ImageList iine yerletiriniz. (ekil I.46) 2)ekil I.47 deki gibi, Toolbar n ImageList zelliini ImageList1 olarak ataynz. 3)Toolbar da, Buttons.Index zellii 1 iken Caption zelliini Balk, Image zelliini 1, Buttons.Index 2 iken Caption zelliini Kart, Image zelliini 2 yaparak, Toolbar daki butonlarla ImageList teki resimleri ilikilendiriniz. 4)OK ilemlerinden sonra sonuta, ekil I.49 daki gibi bir toolbar grnm elde edeceksiniz. ekil I.46 - ImageList e resim yerletirilmesi

VISUAL BASIC LE YAZILIM GELTRME ekil I.47 - Toolbar n ImageList zelliinin, ImageList1 olarak atanmas ekil I.47 Butonlarla Imagelerin ilikilendirilmesi

VISUAL BASIC LE YAZILIM GELTRME ekil I.49 - Resim ve etiketli toolbar butonlar RNEK UYGULAMA 14 : STATUS BAR (DURUM UBUU) UYGULAMASI StatusBar kontrol nesnesi, genellikle, formun en alt satrna yerleerek, uygulamann icras esnasnda eitli olaylar ve data durumu hakknda bilgi listelemek amac ile kullanlr. StatusBar kontrol nesnesi Panel ad verilen nesnelerden en fazla 16 tane ierebilir. Bu nesneler de, Panels adl koleksiyon nesnelerinin elemanlardr. Aadaki uygulamada, StatusBar iine panel ve resim yklenmesi gsterilecektir. u admlar izleyiniz: 1) StatusBar adl kontrol nesnesini form zerine ykleyiniz. Bu nesne, ToolBox iinde, eklinde grnen, form zerine yerletirilince de ekil I.50 deki gibi grnen bir nesnedir. ekil I.50 - SatusBar n grnm 2) SatusBar mouse ile seiniz. View mensnden Proper ties Explorer penceresini getiriniz. Custom zelliinin yanndaki butonu tklatnz. Gelen pencerede Panels i seiniz. ekil I.51 deki grnm elde edilecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil I.51 - Panels penceresi Bu pencerede Insert Panel butonu ile, StatusBar a panel ekleyebilirsiniz. Panelde grntlenmesini istediiniz metni, Text penceresine giriniz. ayet ekran gstergesini panelin stne getirdiinizde bilgi kutusunun gzkmesini istiyorsanz ilgili metni ToolTipText penceresine yazmanz gerekir. Daha sonra bu panele bir anahtar (key) ile erimeyi hedefliyorsanz(doal olarak kod iinde) bu anahtar Key kutusu iine giriniz. Panele resim yklenmesi dnlyorsa, bu durumda Browse butonu ile bu resmin bulunduu dizini ve resmin adn seiniz. Apply butonunu tklatnz. Sonuta aadaki gibi paneller oluacaktr. RNEK UYGULAMA 15 : GENEL DYALOG (COMMON DIALOG) KONTROL NESNES, KOMUT BUTONU VE RESM KUTUSU Genel diyalog nesnesi, icra esnasnda kendisi grntlenmeyen fakat uygulanan metotlarla dosya ama(Open), dosya saklama(Save), bilgiyi yazdrma(Print), renk seimi(Color) ve Font seimi(Font) tipi diyalog pencerelerinin grntlenmesini salar. Bunlarla ilikili metotlar aada listelenmitir:

VISUAL BASIC LE YAZILIM GELTRME Metot levi ShowOpen Dosya ama diyalog penceresini arr ShowSave Dosya saklama diyalog penceresini arr ShowColor Renk seme diyalog penceresini arr ShowFont Font seme diyalog penceresini arr ShowPrint Bilgi yazdrma diyalog penceresini arr ShowHelp Winhlp32.exe dosyasn altrr ve belirtilen help dosyasn grntler CommonDialog kontrol nesnesi, ar a kutusu iinde, eklinde grnen nesnedir ; Ara kutusunda grnmeyebilir . Bu durumda, daha nce kitabmzn eitli ksmlarnda bahsedildii gibi, Project/Components Controls yolu izlener ek ar lmaldr . imdi uygulamamzn admlarn veriyoruz. 1)Form zerine, bir genel diyalog(CommonDialog), bir resim kutusu(PictureBox) ve bir de komut butonu (CommandButton) kontrol nesnesi yerletiriniz. ekil I.52 Komut butonunun Caption zelliini RESM YKLE olarak ataynz. 2) CommonDialog kontrol nesnesini seiniz. Properties penceresinde FileName zelliini C:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Bitmaps\Assorted\ FISH.BMP ataynz. 3)Kontrol nesneleri ile ilikili olarak aadaki kodlar giriniz: Pr ivate Sub Form_Load() Picture1.AutoSize = True End Sub Pr ivate Sub Command1_Click() CommonDialog1.ShowOpen Picture1.Picture = LoadPicture(CommonDialog1.FileName) End Sub

VISUAL BASIC LE YAZILIM GELTRME ekil I.52 Uygulama nesneleri 4)Run/Start ile kodu altrnz. ekil I.53 teki diyalog penceresi gelir. ekil I.53 Open diyalog pencer esi 5)OPEN butonunu seiniz. ekil I.54 teki gibi, balk resminin yklendiini greceksiniz. ekil I.54 - Yklenen r esim

VISUAL BASIC LE YAZILIM GELTRME 0 P RNEK UYGULAMA 16 : NEWTON-RAPHSON KK BULMA YAKLAIMI Bu uygulama matematiksel temelli olup, saysal analiz uygulamalarnn Visual Basic ortamndaki grnm konusunda fikir vermesi amacyla konulmutur. Newton-Raphson algoritmas, bilindii gibi, tek deikenli bir fonksiyonun kkn(sfr noktasn) ardk yaklamlarla bulur ve kulland bant aadaki ekildedir: f (x) = 0 bantsn salayan bir deeri, (x = ) u ekilde verilir: k= 1,2,3,.......n Burada f fonksiyonun trevidir. deeri (kke ilk yaklam) tamamen keyfi olarak seilir. ifadesi ise greceli hata( relative error) olarak tanmlanr. imdi aadaki admlar izleyiniz: 1)Form zerine bir etiket(Label), bir metin kutusu (TextBox) ve bir de komut butonu (CommandButton) yerletiriniz. Etiketin Caption zelliini KK DEER ve komut butonunun Caption zelliini de Z olarak deitiriniz. (ekil I.55 ) ekil I.55 - Uygulama nesneleri 2)Kontrol nesneleri ile ilikili olarak aadaki prosedrleri giriniz: Pr ivate Sub Command1_Click() ff = "x^3-3*x+2" Print ff; "Fonksiyonun Kkleri" Print "NEWTON-RAPHSON ALGORITMASI LE BULUNUU" Print Print k P k P f (Pk 1) f (Pk 1) k k 1 P P = - - |P | |P | 2 |P P | n n 1 n n 1 + - -

VISUAL BASIC LE YAZILIM GELTRME delta = 0.000001 eps = 0.000001 S = 0.000001 Max = 100 kos = 0 p0 = Val(InputBox("lk kk tahmini....", , "")) y0 = f(p0) For k = 1 To Max df = fus(p0) If df = 0 Then kos = 1 dp = 0 Else dp = y0 / df End If p1 = p0 - dp Y1 = f(p1) relerr = 2 * Abs(dp) / (Abs(p1) + S) If relerr < delta And Abs(Y1) < eps Then If kos <> 1 Then kos = 2 End If p0 = p1 y0 = Y1 If kos <> 0 Then GoTo a Next k a: Print k; " nci iterasyon sonucu=", p1 Print "Bir sonraki iterasyon fark=", dp Print "y1=", Y1 Text1.Text = p1 If kos = 0 Then Print "max. iterasyon says asildi" End If If kos = 1 Then Print "0 'la blme hatas..." End If If kos = 2 Then Print "kk istenen toleransla bulundu" End If End Sub

VISUAL BASIC LE YAZILIM GELTRME 3)Kk bulunacak fonksiyonu tanmlayan f ve bu fonksiyonun trevini tanmlayan fus adl genel prosedrleri, Tools/Add Procedur e yolu ile giriniz: 4) Run/Star t ile kodu altrnz. Z butonunu tklatnz. ekil I.56 daki pencere gelir. lk kk tahminini 5 olarak giriniz ve OK butonunu seiniz. ekil I.56 - lk kk tahmini pencersi 5)Sonuta ekil I.57 deki gibi, fonksiyonun 1 olan kk bulunacaktr. ekil I.57 - Kkn bulunuu

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 17 : EN KK KARELER DORUSUNUN ZM N adet veri ifti verilmi olsun. Bunlar (X1, Y1) ,(X2,Y2), ..(Xn, Yn) eklinde gsterelim. yle bir y = Ax+B dorusu bulunsun ki, verilen datay en az hata ile temsil etsi? Burada uzun matematiksel ilemlere girimeden, bu sorunun cevabnn en kk kareler dorusu olduunu syleyeceiz ve aada vereceimiz kod , Xi,Yi veri iftleri verildiinde size bu doruyu belirleyeceklerdir. 1)Form zerine bir resim kutusu (PictureBox), 2 adet etiket (Label), 2 adet metin kutusu(TextBox) ve bir adet komut butonu (CommandButton) yerletiriniz. Etiketlerin Caption zelliklerini A ve B yapnz. Komut butonunun Caption zelliini de BUL olarak ataynz. (ekil I.58) ekil I.58 - Uygulamann nesneleri 2)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() n = Val(InputBox("Veri Miktar...", , "")) ReDim x(n), y(n) For i = 1 To n x(i) = Val(InputBox(Str(i) + "x dizi eleman", , "")) y(i) = Val(InputBox(Str(i) + "y dizi eleman", , "")) Next i xm = 0 ym = 0 For i = 1 To n xm = xm + x(i) ym = ym + y(i) Next i xm = xm / n

VISUAL BASIC LE YAZILIM GELTRME ym = ym / n sx = 0 sxy = 0 For i = 1 To n sx = sx + (x(i) - xm) ^ 2 sxy = sxy + (x(i) - xm) * (y(i) - ym) Next i a = sxy / sx b = ym - a * xm Print "y=Ax+B" If b < 0 Then s = "-" Else s = "+" Print a; "x " + s; b Text1.Text = a Text2.Text = b Picture1.DrawWidth = 2 Picture1.ScaleHeight = 10 Picture1.ScaleWidth = 10 For i = 1 To n - 1 For j = i + 1 To n If x(i) > x(j) Then t = x(i) x(i) = x(j) x(j) = t t = y(i) y(i) = y(j) y(j) = t End If Next j, i Picture1.Scale (-10, 10)-(10, -10) Picture1.Line (x(1), a * x(1) + b)-(x(n), a * x(n) + b) For i = 1 To n Picture1.PSet (x(i), y(i)) Next i End Sub 3)imdi uygulamay aadaki data iin altrmay dnyoruz: i 1 2 3 4 5 X -7 -2 4 5 4 Y -4 1 7 6 9

VISUAL BASIC LE YAZILIM GELTRME Run/Star t ile uygulamay altrnz. BUL butonunu clickleyiniz. Veri miktar sorulunca 5 deerini giriniz. x ve y iftleri iin de tablodaki deerleri giriniz. 4)Son datay girdikten sonra ekil I.59 daki sonucu elde edeceksiniz. ekil I.59 - En kk kareler dorusunun bants ve grafiinin elde edilii

VISUAL BASIC LE YAZILIM GELTRME BLM 19 VISUAL BASIC N LETM SSTEM DZEYNDEK KOMUTLARI

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC TE LETM SSTEM DZEYNDE KOMUT VE FONKSYONLAR Visual Basic iinde, normalde bir iletim sistemi komutu niteliinde olan ve dizin(directory) ama, deitirme, dosya silme vb ilemleri gerekletiren baz komut ve fonksiyonlar mevcuttur. Bu blmde, bunlar tantlacaktr. LETM SSTEM DZEYNDEK KOMUTLAR MkDir KOMUTU DOS tan alnm bir komuttur. Aktif dizinin bir altnda, ya da belirtilen yola(path) uygun olarak bir yeni dizin(directory) yaratr. rnein; MkDir FoxPro komutu ile, aktif dizinin altnda FoxPro isimli dizin yaratlacaktr. RmDir KOMUTU Belirtilen dizini silen bir komuttur. rnein; RmDir C:\MsOffice\Excel\Uygulama komutu ile, yolu belirtilen, Uygulama adl dizin silinecektir. Kill KOMUTU Belirtilen bir dosyay ya da zellikleri verilen dosya grubunu siler. rnein; Kill *.BAT komutu ile, aktif dizin iindeki tm . BAT uzantl dosyalar silinecektir. Kill C:\Sirex\r.exe komutu ile de, kke(C:) bal Sirex dizini iindeki r.exe adl dosya diskten silinecektir. ChDr ive KOMUTU Aktif srcy deitirmek iin kullanlr. rnein; ChDrive D komutu ile, aktif src D olarak deitirilmektedir.

VISUAL BASIC LE YAZILIM GELTRME ChDir KOMUTU Aktif dizini(directory) deitirmek iin kullanlr. rnein; ChDir D:\MsOffice\Ecxel komutu ile, aktif dizin olarak, D srcs MsOffice dizini altndaki Excel dizini seilmektedir. Name KOMUTU Bir dosyann adn deitirmek iin kullanlr. rnein; Name C:\VB\Bordro.Bas As C:\HB\Hesap.Bas komutu ile, Bordro.Bas n ad Hesap.Bas olarak deitirilmekte ve bulunduu dizin ise artk :\HB olmaktadr. LETM SSTEM DZEYNDEK FONKSYONLAR CurDir FONKSYONU Yazl biimi, CurDir$(Src) eklindedir. Eer src belirtilirse, belirtilen srcnn yolunu(path), belirtilmezse o anda geerli olan srcnn yolunu verir. Gnderdii bilgi, str ing tr bir ifadedir. RNEK: 1)Form zerine bir komut butonu yerletiriniz. Caption zelliini SRC GSTER olarak deitiriniz. Komut butonu zerine double-click ilemi uygulayarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Command1_Click() z = InputBox("hangi srcnn yoplu isteniyor...") Print z + " nin yolu " + CurDir$(z) + "dir" Print "Aktid dizin ise.." + CurDir + " dir" End Sub 2)Run/Start ile kodu altrnz. SRC GSTER butonunu tklatnz. Giri penceresine D giriniz. (ekil .1) ekil .1 - D srcsnn yolunu belirleme

VISUAL BASIC LE YAZILIM GELTRME 3)Ok butonunu tkladnzda ekil .2 deki sonucu alacaksnz. ekil .2 - Uygulama sonucu Burada, o esnada allan aktif dizin C:\VB olarak belirtilmekte, D srcsnn yolu ise, D srcsnde alm en son aktif dizinin yolu olarak belirtilmektedir. Shell FONKSYONU Kullanl biimi, Deiken = Shell(Yol Ad, Pencere Stili) eklindedir. Bu fonksiyon, .COM, .EXE, .BAT, .PIF tipi dosyalarn, Visual Basic iinden altrlmasn salar. Yol ad, dosyann bulunduu dizinin yolunu ve dosya adn ierir. Pencere stili ise, icra edilecek dosyann pencere biimini belirler. Pencere stili aadaki sabitlerden biri olabilir: SABT DEER PENCERE TP vbHide 0 Pencere gizli fakat fokste(Yani kontrol orada) VbNormalFocus 1 Normal tipte ve foksl pencere VbMinimizedFocus 2 kon halinde ve foksl VbMaximizedFocus 3 Foksl ve minimize(En kk boyutunda) VbMaximizedNotFocus 4 Normal ve fokssz VbMinimizedNotFocus 6 kon halinde ve fokssz RNEK: 1)Form zerine bir komut butonu yerletirerek Caption zelliini EXCEL olarak deitiriniz. 2)Kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() x = Shell("C:\Program Files\Microsoft Office\Office\EXCEL.EXE", 1) End Sub 3)Run/Start ile kodu altrnz. ekil .3 teki gibi Excel penceresinin aktif hale geldiini greceksiniz.

VISUAL BASIC LE YAZILIM GELTRME Shell fonksiyonunu, x = Shell("C:\Program Files\Microsoft Office\Office\EXCEL.EXE") eklinde, ikinci parametre olmakszn da kullanabilirsiniz. Bu durumda Excel, ikon haline gelecektir. Shell fonksiyonu iin baka bir yazl biimi de, Shell PathName:="C:\Program Files\Microsoft Office\Office\EXCEL.EXE", WindowStyle:=3 eklindedir. ekil .3 Visual Basic ortamnda iken Shell fonksiyonu ile Excel in yklenmesi FileCopy FONKSYONU Yazl biimi, FileCopy Kaynak, Hedef eklindedir. Kaynaktaki dosyay hedefe kopyalar. Wildcard karakterlerine(?,*) msaade edilmez. rnein, FileCopy C:\al.bmp , C:\VB\al.bmp komutu ile, C nin kk dizinindeki al.bmp adl resim dosyas, C nin VB adl alt dizini iine kopyalanacaktr. RNEK UYGULAMA:BR DOSYA KOPYALAMA PROJES Aadaki admlar izleyiniz: 1)Form zerine bir komut butonu yerletirerek Caption zelliini KOPYALA olarak deitiriniz. 2)Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() k = InputBox("KAYNAK DOSYA:") h = InputBox("HEDEF DOSYA:")

VISUAL BASIC LE YAZILIM GELTRME FileCopy k, h End Sub 3)Run/Start ile kodu altrnz. Komut butonunu tklatnz. ekil .5 teki pencere gelecektir. Burada kaynak dosyay C:\DOS\Country.txt olarak giriniz. Ok butonunu seiniz. 4)Hedef dosyay da C:\VB\ulke.txt olarak giriniz. (ekil .5) Ok butonunu seiniz. 5)imdi File Manager veya Windows98 Explorer ile VB dizinine bakarsanz, ulke.txt nin kopyalanm olduunu greceksiniz. (ekil .6) ekil .6 Kaynak dosyann girilii ekil .7 Hedef dosyann girilii ekil .8 - VB dizininde ulke.txt dosyas

VISUAL BASIC LE YAZILIM GELTRME FileDateTime FONKSYONU Bir dosyann en son deiiklie urad tarih ve zaman gnderen bir fonksiyondur. Yazl biimi, FileDateTime(Yol) eklindedir. rnein, FileDateTime(C:\DOS\Autoexec.bat, ) ifadesi ile, DOS dizini iindeki AutoExec.bat isimli dosyann en son deiiklie urad tarih ve zaman bulabilirsiniz. GetAttr FONKSYONU Belirtilen dosyann zelliklerini(attributes) belirler. Yazl biimi, GetAttr (Yol ad) eklindedir. Fonksiyon bir tam say gnderir. Bu tam saynn deerine gre dosyann tipi belirlenir. Mmkn deerler aadaki tabloda verilmitir: zellik likili Sabit Ad Saysal Deer i Normal vbNormal 0 Sadece Okunur(ReadOnly) vbReadOnly 1 Gizli(Hidden) vbHidden 2 Sistem vbSystem 4 Dizin(Directory) vbDirectory 16 Ariv(Archive) vbArchive 32 rnein, x = GetAttr( C:\VB\VB.EXE ) ifadesi ile x in deeri 32 olarak elde edilecektir. Bu, VB:EXE nin ariv dosyas olduu anlamna gelir. Aadaki basit kod ile, klavyeden girilen bir dosyann zellikleri print edilebilir: Pr ivate Sub Command1_Click() k = InputBox("KAYNAK DOSYA:") Print GetAttr End Sub SetAttr FONKSYONU Verilen dosyaya yeni zellikler atama ilevini grr. Yazl biimi, SetAttr YolAd, zellikler eklindedir.

VISUAL BASIC LE YAZILIM GELTRME rnein, SetAttr C:\Vb\x.dat ,vbHidden+vbReadOnly ifadesi ile, x.dat adl dosya, sadece okunabilir ve gizli olarak tanmlanmaktadr. Buradaki sabitler, GetAttr fonksiyonundakilerle ayn anlamdadr. Dir FONKSYONU Yazl biimi Dir(Yol Ad, zellikler) eklindedir. Belirtilen dosya mevcutsa, Dir fonksiyonu bu dosyann adn gnderir. Dosya ad iinde * ve ? eklindeki DOS wildcard karakterleri kullanlabilir. RNEK UYGULAMA: Aadaki admlar izleyiniz: 1)Form zerine bir komut butonu yerletirerek Caption zeliini DOSYA BUL olarak deitiriniz. 2)Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() k = InputBox("KAYNAK DOSYA:") Print Dir(k) Print Dir End Sub 3)Run/Start ile kodu altrnz. Bilgi giri penceresine ekil .7 deki yol ifadesini giriniz: ekil .7 - VB dizinindeki EXE dosyalar listeleme 4)Ok butonunu setiinizde ekil .8 deki ekran gelecektir. Burada Dir fonksiyonu ile, ilk EXE uzantl dosya listelenmi, ikinci Dir fonksiyonu ise, argman kullanmna gerek kalmadan bir sonrakini listelemitir.

VISUAL BASIC LE YAZILIM GELTRME ekil .8 - EXE dosyalarn listesi

VISUAL BASIC LE YAZILIM GELTRME BLM 20 NESNEYE YNELK PROGRAMLAMA TEORS

VISUAL BASIC LE YAZILIM GELTRME NESNEYE YNELK PROGRAMLAMA VE VISUAL BASIC 6.0 Bu blmde, nce, nesneye ynelik programlamann teorisi konusunda bilgi verilecek ve daha sonra da, Visual Basic 6.0 n, nesneye ynelik programlama(Object Oriented Programming-OOP) konusunda, hangi konumda olduu belirtilecektir. NESNEYE YNELK PROGRAMLAMA KAVRAMI Nesneye ynelik programlama, uzun yllar kullanlm olan yordamsal (Prosedrel-ng. Procedural) programlama dillerindeki uygulama aksaklklar gzlenerek, yordamsal programlamaya bir alternatif olarak ortaya konmu yeni bir yaklamdr. Yordamsal dillerdeki yaklam veri(data) ile bu veriyi ileyecek olan programn (Fonksiyonun ya da prosedrn) birbirinden ayr olmasdr. Nesneye ynelik programlamada ise, veri ve bunu ileyecek olan fonksiyon ya da fonksiyonlar bir btn iinde saklanmaldr. Veri ve fonksiyonun bir arada sakland birimler ise nesne(object) adn almaktadr. Nesneye ynelik programlama dillerinde bir program nesnelerden oluur. Bu tarz ise insanlarn dnme biimine ok daha yakndr. Nesneye ynelik programlama teorisinin arkasnda duran ey, gerek dnya rneklerini ok daha iyi aklayabilme abasdr. O nedenle, nesneye ynelik programlama mant, 1980 lere kadar ok yaygn olarak kullanlan, yapsal programlama dillerinin mantndan, kavramsal olarak, byk farkllklara gstermektedir. NESNEYE YNELK PROGRAMLAMANIN TEMEL KAVRAMLARI NESNELER(OBJECT) Bu nesne, verisi ile birlikte bu veri zerinde ilem yapacak olan fonksiyonlar da ieren bir varlktr. Nesneye ynelik programlama terminolojisinde, nesne verisi zerinde ilem yapan fonksiyonlar metot(method) adn almaktadr. Nesne, verisi zerinde ilem yapmak iin, nesne dnda bir fonksiyona gitmek yerine, nesneye bir mesaj gnderilir. Nesne bu mesaj aldktan

VISUAL BASIC LE YAZILIM GELTRME sonra, kendi verisini ilemek zere, mesajn ekline gre, kendi iindeki metotlardan birini harekete geirir. Bir nesne, genellikle bir snf(class) vastas ile tanmlanr. C dilindeki struct, Pascal daki record ve Visual Basic teki type/end type yaplar nesne tanmlamak amac ile kullanlr. Fakat burada metotlar da birlikte belirlemede glkler vardr. Ayrca, Visual Basic 4.0 ,5.0 ve 6.0 daki snf modl de (class module) nesne tanmlamak konusunda kullanlabilecek bir imkandr. Burada metotlar da kolaylkla eklenebilir. Gene C++ taki class yaps da, nesne tanmlamak hususunda mkemmel bir imkandr. Ayn ey, doal olarak Java iin de geerlidir. Nesne kavram, gerek hayat asndan ok anlalabilir bir kavramdr; gerek dnyada da nesneler vardr; nesnelerin zellikleri(properties) sz konusudur. Nesnelerin davranlar(olaylara reaksiyon gsteren metodlar) da anlalmasnda zorluk olmayan bir kavramdr. (ekil OP.1) ekil OP.1 - Nesne, olaylar, metotlar, zellikler PAKETLEME(ENCAPSULATION) Bunun anlam, nesneye ait veri ve metotlarn, nesnenin iinde birlikte saklanmasdr: NESNE=VER+METOTLAR Bants, paketleme zelliini aklamaktadr. Yani, bir nesne iindeki veri, nesne dndaki kodda gizlenmitir. Nesnenin verisi zerinde ilem yapabilmek iin,nesneye, kendisine zg metotlar devreye sokmas iin, bir komut vermek ya da bir mesaj yollamak gerekir. Nesne tipinin i ayrntlar, normal olarak, programn arta kalan ksm iin grnr deildir.

VISUAL BASIC LE YAZILIM GELTRME Bir nesne snfnn gerekletirimini deitirirseniz, o nesnenin d dnyaya olan arayz(interface) ayn kald srce, programnzda baka bir deiiklik yapmanza gerek kalmayacaktr. MRAS ALMA (INHERITANCE) Nesneye ynelik programlamada, bir nesne, genellikle, bir nesne snfnn grnmdr(instance(rnek)), rnein. Albert Einstein, insan snfnn bir instance dr. Bir nesne snfndan, alt snflar(sobclasses) oluturulabiliyorsa, tretme(derivation) zellii vardr denir. rnein, insan snf, canl snfnn bir alt snfdr. Kendisinden, alt snf tretilen snfa, temel snf(base class veya super class) ad verilir. Alt snfn nesneleri, tretildikleri temel snfa ait zelikleri alyorsa, burada miras alma(inheritance) zellii vardr denir. Bu anlamda, inheritance zelliine sahip olan bir nesneye ynelik programlama dilinde, bir nesne snfndan tretilen alt nesne snfna ait nesneler, st snfn zelliklerini(properties, data members) ve metotlarn(methods) aynen alrlar. OK BMLLK (POLYMORPHISM) Farkl nesnelerin, ayn mesaja(olaya veya uyarma) farkl ekillerde cevap verme yeteneidir. Her nesne snf, kendi metotlarn paketledii iin, ve bu metotlar, programn arta kalan ksm iin gizli olduundan, arkl snflar, ayn isimde baz metotlara sahip olabilir. rnein, ekil adl bir sper snfnz olsun ve bu snftan tretilmi daire, kare, gen gibi alt snflarnz olsun. Bu alt snflarn her biri, kedi grnmlerini(instance) izmek iin, iz adl bir metoda sahip olabilirler. Fakat her bir alt snf iin bu metot ayn isimli(iz) olmasna ramen, bu metodu devreye sokmak iin gnderilecek mesajdan sonra, her alt snfa ait nesne farkl bir ekil(yani kendini, yani bir gen, veya daire veya kare) izecektir.

VISUAL BASIC LE YAZILIM GELTRME BLM 21 NESNEYE YNELK PROGRAMLAMA

VISUAL BASIC LE YAZILIM GELTRME NESNEYE YNELK PROGRAMLAMA 1990 lardaki en popler programlama teknii Nesneye Ynelik Programlama(Object Oriented Programming) ad verilen tekniktir. 1970 lerdeki Yapsal Programlama(Structured Programming)nn yerini tamam ile almtr. Nesneye ynelik programlamada, programlama ortamndaki her ey bir nesne olarak kabul edilmekte, nesnelerin zellikleri (Properties) deitirilerek onlara yeni biimler verilebilmektedir. Ayrca her nesnenin duyarl olduu olaylar(Events) mevcuttur. Her nesne zerine uygulanabilecek farkl metotlar(Methods) oluturulmutur. Yapsal Programlamada arlk programlama komutlarnda iken, Nesneye Ynelik Programlamada yazlmcnn ortamdaki nesneler, zellikleri, hassas olduklar olaylar ve nesnelere uygulanabilecek metotlar hakknda da detayl bilgi sahibi olmas gerekmektedir. Visual Basic 4.0, 5.0 ve ardndan 6.0, teorik bir nesneye ynelik programlama yazlmna en ok yaklam Visual Basic versiyonlardr. Fakat gene de Visual Basic in bir Nesneye Ynelik Programlama yazlmnn tm zelliklerinin tad sylenemez. rnein, Visual Basic te yeni nesneler yaratmak, ancak, mevcut nesneler k noktas yaplarak mmkndr. Fakat u da kesindir ki, Visual Basic 6.0 n yapsnda bulunan nesneler gerekten ok zengindir. Ayrca, C++ gibi, Nesneye Ynelik Programlamaya ok daha yakn dillerle retilmi nesneler de, Visual Basic ortamna katlarak kullanlabilir. VISUAL BASIC ORTAMINDA NESNELER Visual Basic te, kod iinde nesnelere referans verirken tercih edilebilecek bir yol, her nesneyi(object) bir nesne deikeni(object variable) ile ilikilendirmek olabilir. Nesne deikenleri iin, Dim, Private, Public, Static, Global gibi anahtar szcklerden biri kullanlarak bildirimde bulunulabilir. Nesne deikenleri de, daha nce normal deikenler iin anlatld gibi, lokal, formdzeyinde veya Public(Global) tipte olabilir. RNEK TANIMLAMA: Dim Xform As Form Dim Button1 As CommandButton Pr ivate BilgiKutusu As TextBox Pr ivate Etiket As Label

VISUAL BASIC LE YAZILIM GELTRME NESNE DZLER Normal dizi tanmlarna benzer ekilde nesne deikenleri ile ilikili diziler de tanmlanabilir: Dim BilgiKutusu(1 To 20) As TextBox Burada, Bilgi Kutusu, adl bir dizi tanmlanmaktadr. Bu dizinin her bir eleman farkl bir TextBox eleman ile ilikilidir. NESNE DEKENLER LE NESNELER LKLENDRMEK Tanmlanan bir nesne deikenini, belirli bir nesne ile ilikilendirmek iin, Set komutu kullanlr. rnein, Set Button1=Command2 Set BilgiKutusu=TextBox1 atamalar ile, aktif formdaki Command2 adl komut butonu, Button1 adl nesne deikeni ile, TextBox1 adl metin kutusu ise BilgiKutusu adl nesne deikeni ile ilikilendirilmitir. Bu atamalardan sonra, Button1 deikeni, Command2 komut butonuna ve BilgiKutusu ise TextBox1 adl metin kutusuna referans vermek iin kullanlabilir. rnein BilgiKutusu, Visible=False atamas ile, TextBox1 in grnlebilirlik zellii False olarak atanmaktadr. Nesne deikenleri, nesnelerle ilikili daha karmak ifadeleri ksaltmak konusunda da ok yararldrlar. rnein, Dim BuFo1 As CommandButton Set BuFo1=Form1.Command1 atamalarndan sonra, Form1.Command1 ifadesi yerine (Form1 iinde Commad1 adl komut butonu nesnesi) sadece BuFo1 ifadesi kullanlabilir. NEW SZC cra esnasnda, belirli bir snftan seilmi aktif bir nesnenin bir benzerinin oluturulmas gerekli olabilir. rnein, Visual Basic 6.0 n icras esnasnda, Form1 adl bir Form tipi bir nesne mevcut olsun. Bu durumda, aadaki ifade, Form1 in bir kopyasn oluturacaktr: Dim Xform As New Form1 cra esnasnda, kontrol nesnesi dizinleri oluturmak iin, New szcn kullanmak mmkn deildir.

VISUAL BASIC LE YAZILIM GELTRME rnein, Dim Xbutton As New CommandButton ifadesi, hata mesaj verecektir. Kullanc, kendi tanmlad nesnelerin icra esnasnda birer kopyalarn oluturmak iin de New szcn kullanabilir. NOTHING SZC Bir nesneyi, bir nesne deikeni ile ilikili hale getirdikten sonra (Set komutu), bu nesne ile ilikili ilemler bitince, bellek tasarrufu salamak iin bellekte bu nesne iin ayrlm yeri silmek mmkndr. Bunun iin kullanlacak komut, Noting szcdr. Nesne deikenini, Noting szcne set etmelisiniz. RNEK: Dim Xbutton As New Command1 ....... Set Xbutton=Noting Ayn nesne ile ilikili olarak, istenirse, birden ok nesne deikeni de kullanlabilir. GENEL NESNE DEKENLER Nesne deikenleri, bazen, daha zel bir snf referans vermek yerine daha genel bir snf referans verilerek ta tanmlanabilir. rnein, bir metin kutusu tipindeki nesne, TextBox szc yerine daha genel olan Object szc ile de tanmlanabilir. Yani, Dim MetinKutu As TextBox tanm yerine, Dim MetinKutu As Object tanm da yaplabilir. Ya da ayn atama, Dim MetinKutu As Control eklinde, TextBox tan daha genel fakat Object ten daha zel bir kontrol nesnesi snf referans verilerek te yaplabilir. Bu tip atamalarda, daha zel bir snf referans vermek, daha genel bir snf referans vermeye gre, daima hzldr. HIZLI YAVA Dim MetinKutu As TextBox Dim MetinKutu As Object veya Set MetinKutu=Text1 Dim MetinKutu As Control Set MetinKutu=Text1

VISUAL BASIC LE YAZILIM GELTRME NESNE DEKENLERNN PROGRAM NDE KULLANILMASI Formlarn ya da form zerindeki kontrol nesnelerinin zellikleri, uygulamann icra edilmesi esnasnda deitirilebilir. Bununla ilikili rnekleri, bu noktaya kadar eitli yerlerde grdk. Bu blmde, daha yeni bir kavramdan bahsedilecektir: bu da, nesne zelliklerinin genel prosedrler kullanlarak deitirilmesidir. Eer, bu tr bir ilem yapacaksa, form yada kontrol nesnelerinin zellikleri, bu genel prosedrler iine, sadece ByVal yntemi ile geirilmelidir: RNEK: Sub D(ByVal a As String, b As String) b=a End Sub Bu prosedr,C all D(Form2.Caption, c$) eklinde arlrsa, burada, c$, Form2 nin balk zelliini tayacaktr. KONTROL NESNELERNN TPN BELRLEMEK Baz uygulamalarda, form zerindeki kontrol nesnelerinin trn kontrol ederek buna gre ilem yapmak gerekebilir. Bu amala aadaki kalp kullanlr: If TypeOf KontrolNesnesiAd Is KontrolNesnesiTipi Then ..... Else End If veya If TypeOf KontrolNesnesiAd Is KontrolNesnesiTipi Then ..... ElseIf TypeOf KontrolNesnesiAd Is KontrolNesnesiTipi Then ..... ElseIf TypeOf KontrolNesnesiAd Is KontrolNesnesiTipi Then ..... Else ..... End If

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: Aadaki admlar izleyerek gerekletireceiniz proje tasarm, yukarda anlatlan kavramlarn son derece netlemesini salayacaktr. 1)Form zerine bir kontrol butonu ile 4 adet opsiyon(seenek) butonu yerletiriniz. (ekilOb.1) ekilOb.1 Uygulamaya kontrol nesnelerinin yerletirilmesi 2) Form zerine iki kez tklatarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Form_Load() For i = 0 To Form1.Controls.Count - 1 Call d(Form1.Controls(i), "SEENEK" + Str(i)) Next i End Sub 3)Kod penceresi akken Tools/Add Procedur e yolu izlenerek prosedr tanmlama penceresini ekil Ob.2 deki gibi doldurunuz: ekil Ob.2 - D genel prosedrnn tanmlanmas

VISUAL BASIC LE YAZILIM GELTRME 4)Ok butonunu setikten sonra gelen kod penceresinde D genel prosedrn, ekil Ob.3 teki gibi giriniz: ekil Ob.3 D genel prosedr 5)Run/Start ile uygulamay altrnz. Form zerinde ekil Ob.4 deki kty elde edeceksiniz. ekil Ob.4 Uygulamann kts Form_Load prosedrndeki, Form1.Controls.Count ifadesi, form zerindeki kontrol nesnelerinin saysn bulmaktadr. D prosedrndeki If TypeOf ifadesindeki kontrolden tr, Form1 yklenince opsiyon butonu trndeki kontrol nesnelerinin Caption zellikleri SEENEK 0, SEENEK 1,... SEENEK 3 eklinde otomatik olarak deitirilmekte, dier tipteki(komut butonu) kontrol nesnelerinde ise bu tr deiiklik yaplmamaktadr. KOLEKSYONLAR(COLLECTIONS) Koleksiyon denilen bir yap, kendisi de bir nesne olan ve iinde benzer tipte nesneler bulunduran bir yapdr. Arzu edildii takdirde, koleksiyon

VISUAL BASIC LE YAZILIM GELTRME iindeki nesnelere de ayr ayr referans verilebilir. Gerekiyorsa, koleksiyon nesnesi, kendisine bir btn olarak referans verilerek te kullanlabilir. rnein, Visual Basic 6.0 iinde, Printers, Forms, Controls koleksiyon nesnelerine rnek olarak verilebilir. Bir Visual Basic uygulamas esnasnda, yaratlm formlara tek tek erimek gerekirse Forms(0) Form(1) ....... Forms(5) eklinde eriilebilir. Count zellii, yaratlm form ya da kontrollerin saysn bulmak iin kullanlr. rnein, aadaki kod ile, mevcut formlarn Nesne zellikleri yazdrlmaktadr: For I = 0 To Forms.Count - 1 Form1.Pr int Forms(I).Name Next I Ayn kodun edeeri, aadaki gibi de yazlabilir: For Each Form In Forms Form1.Pr int Forms(I).Name Next I ITEM METODU Bir koleksiyonun, bir elemanna erimek iin kullanlabilecek olan bir metottur. Yazl biimi, KoleksiyonAd.Item(ndis) eklindedir. Burada, ndis, elemann koleksiyon iindeki srasn belirtmektedir. rnein, KoleksiyonAd.Item(2) ifadesi, koleksiyondaki 2. Eleman gsterecektir. Visual Basic te, hazr olarak bulunan, Forms, Controls ve Printers koleksiyonlarnda, indis 0 ile ElemanSays-1 arasnda deimesine ramen, siz kendi tanmlayacanz koleksiyonlarda, indisi 1 ile eleman says arasnda deitirebilirsiniz. ADD METODU New anahtar szcn kullanarak, bir koleksiyon yaratldnda, bu koleksiyona yeni bir nesne eklemek istediiniz zaman, Add metodunu kullanmalsnz. Koleksiyona eklenecek bilgi, nce Var iant tipi bir

VISUAL BASIC LE YAZILIM GELTRME Deikene atanmaldr. Bu nedenle, bir koleksiyonun elemanlar farkl tipten de olabilir. RNEK: Dim NobelEdebiyat As New Collection Dim Kazanan As Variant Kazanan = "Boris Pasternak" NobelEdebiyat.Add (Kazanan) Kazanan = "Ernst Hemingway" NobelEdebiyat.Add (Kazanan) Kazanan = "Miguel Angel Asturias" NobelEdebiyat.Add (Kazanan) Bu rnekte kullanc NobelEdebiyat adl kendi koleksiyonunu tanmlamakta ve bu koleksiyon iine Nobel Edebiyat dl kazanm yazarlar koymaktadr. imdi, rnein bir Visual Basic projesi olarak daha da gelitirelim. Aadaki admlar izleyiniz: 1) Form zerine bir komut butonu yerletirerek Caption zelliini NOBEL KAZANANLAR olarak ataynz. 2)Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim NobelEdebiyat As New Collection Dim Kazanan As Variant Kazanan = "Boris Pasternak" NobelEdebiyat.Add (Kazanan) Kazanan = "Ernst Hemingway" NobelEdebiyat.Add (Kazanan) Kazanan = "Miguel Angel Asturias" NobelEdebiyat.Add (Kazanan) For i = 1 To NobelEdebiyat.Count Form1.Print NobelEdebiyat.Item(i) Next i End Sub

VISUAL BASIC LE YAZILIM GELTRME 3)Run/Start ile kodu altrnz. Komut butonunu tklatnz. ekil Ob.5 teki gibi Nobel Edebiyat dl kazanan yazarlar ieren Nobel Edebiyat dln kazanan yazarlar ieren NobelEdebiyat adl koleksiyonun elemanlar listelenecektir. ekil Ob.5 NobelEdebiyat koleksiyonu elemanlar Genel olarak, Add metodu ile bir koleksiyon iine eleman eklenirken, eklenen eleman iin, o elemana eriimi hzlandran bir anahtar(key) deeri de kullanlabilir. Bu yaplyorsa, Add metodu aadaki biimde yazlabilir: KoleksiyonNesnesiAd.Add EklenecekEleman As Variant [ Anahtar As String] Anahtar parametresi bir string olmal ve veri ierisinde tekrarsz(tek, unique)olmaldr. Aksi takdirde, icra zaman(Run Time) hatas oluacaktr. RNEK UYGULAMA: 1)Form zerine bir komut butonu yerletirerek Caption zelliini REKTRLER olarak ataynz. 2)Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim Rektorler As New Collection Dim Rek As Variant Rek = "Prof.Dr.Kazm smail Grkan" Rektorler.Add Rek, "Merhum" Rek = "Prof.Dr.Blent Berkarda" Rektorler.Add Item:=Rek, Key:="u andaki rektr" Print "Merhum Rektr", Rektorler.Item("Merhum") Print "u andaki rektr", Rektorler.Item("u andaki rektr") End Sub 3)Run/Start ile kodu altrnz. Komut butonunu tklatnz. ekil Ob.6 daki kty elde edeceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil Ob.6 - Rektrler koleksiyonunu icras REMOVE METODU Bir koleksiyondan, eleman silmek iin kullanlan bir metottur. Aadaki yazl biimine sahiptir: KoleksiyonNesnesiAd.Remove ndeks ndeks, saysal bir bilgi ise, deeri 1 ile koleksiyondaki eleman says arasnda olmaldr. ndeks, string de olabilir; bu durumda, deeri, koleksiyon iindeki elemanlardan birine ait key deeri ile tam olarak uyumaldr. NESNE GZATICISI(OBJECT BROWSER) Nesne gzatcs ile, Visual Basic te hazr olarak yklenmi sabitlerin bir listesi elde edilebilir; ayrca, programcnn kendi yazd prosedrler boyunca dolamas imkan da mevcuttur. Bundan baka, Visual Basic projelerinde kullanabileceiniz snflar, nesneler ve onlara uygulanabilecek metotlar ve zellikle de tam olarak erime imkan salar. Visual Basic te kullanlabilecek nesneler, genel olarak nesne ktphanelerinde (Object Libraries) toplanmtr. Nesne gzatcsnn amalarndan biri de, projenizde kullanacanz nesne ktphanenizi daha iyi anlamanza yardmc olmaktr. ekil Ob.7 deki nesne gzatcsn getirmek iin,

VISUAL BASIC LE YAZILIM GELTRME ekil Ob.7 - Nesne Gzatcsnn View mensnden Object Browser semelisiniz ya da F2 tuuna basmalsnz. Nesne gzatcsn armak iin baka bir imkan ise, toolbardan tool unun tklamaktr. imdi nesne gzatcs penceresinde grnenlere ksaca bir gz atalm: PROJECTS/LIBRARIES LSTELEME KUTUSU Projenizde kullanlabilecek olan ktphaneler grntler; ayrca projeniz iinde bulunan modlleri listeler. Genel olarak, kullanlabilir nesne ktphanelerinden birini seebilir ve mevcut Visual Basic projenize ilave edebilirsiniz. Default(nceden atanm) olarak All Libraries (Btn Ktphaneler) listelenir. Bir nesne ktphanesini setikten sonra, nesne gz atcsnn dier ksmlar, bu ktphane ile ilikili snflar, modller i, prosedr leri metot ve zellikler i inceleme imkan salayacaktr.

VISUAL BASIC LE YAZILIM GELTRME SEARCH TEXT KUTUSU Search text(arama kutusu) kutusuna yazlan bir ifadeyi SEARCH LIBRARIES kutusunda belirtilen ktphane iinde arar. lgili ifade ile ilgili arama sonular Search Results kutusunda grntlenir. SEARCH RESULTS KUTUSU Search text kutusunda yazlan arama ile ilgili arama sonularn grntler. Bulunan ifadenin ait olduu ktphane ve snf bu listeleme ekrannda belirtilir. CLASSES (SINFLAR) LSTELEME KUTUSU Libraries/Projects kutusundaki kendi projenizi setiiniz zaman, Classes kutusu, o proje iinde tanmlam olduunuz snf ve modllerin isimlerini listeleyecektir. rnein, Constants snf seilerek Visual Basic ortamna nceden yklenmi sabitlerin bir listesi incelenebilir. METHODS/PROPERTIES(METOTLAR/ZELLKLER) LSTELEME KUTUSU Libraries/Projects kutusunda bir nesne ktphanesi seer semez, Member s of<Seilmi Aktif Snf> kutusunda, Classes kutusunda seilmi snf iin geerli olan metot ve zelliklerin bir listesi grntlenecektir. HELP BUTONU Bu butonu tklatnca, Classes veya Member s of<Seilmi Aktif Snf> kutularnda seilmi konu ile ilikili olarak Online Help olana grntlenir. VIEW DEFINATION BUTONU Bu butona tklanrsa, Code penceresinde, seilmi olan prosedrn kodu grntlenir.

VISUAL BASIC LE YAZILIM GELTRME COPY TO CLIPBOARD BUTONU Bu butonu tkladnz zaman, mevcut aktif noktadan itibaren, kodunuz iine, prosedr, zellik ve metot ile ilikili bir ablon Clipboard nesnesine otomatik olarak yklenir. Bu ablonu aktif kodunuza katmak iin Edit/Paste men komutunu veya Ctrl+V veya Shift+Insert tularn kullanabilirsiniz. GO BACK VE GO FORWARD BUTONLARI Bu butonlar yardm ile Object Browser penceresinde icra edilmi olan ilemleri tekrarlayabilirsiniz. SEARCH BUTONU Search(arama) kutusuna yazm oluunuz bir ifade iin arama ilemini balatr. HIDE SEARCH RESULTS BUTONU Hide search results (Arama sonularn sakla) butonu ile arama sonularnn gsterildii listeleme kutusu Object Browser penceresinden kaldrr. ayet bu ilemden sonra Object Browser penceresinden kaldrlan Search Results penceresi tekrar grntlenmek istenirse, balk zellii eklinde deien ayn buton kullanlr. VISUAL BASIC TE YEN BR NESNE YARATMA Visual Basic 6.0 da yeni bir nesne yaratmak istiyorsanz, elinizde balca iki imkan vardr: 1)Mevcut bir forma yeni zellikler ekleyerek bu formu, bir snf ablonu olarak kullanmak. 2)Snf modl(Class Module) ad verilen zel tipte bir modl kullanmak.

VISUAL BASIC LE YAZILIM GELTRME Snf modl kullanmann avantaj, bu modllerin istenirse ayr olarak derlenebilmeleri ve dier Windows uygulamalar ile de kullanlabilmeleridir. Snf modl kullanmann balca sakncas ise, bu tip modllerin grsel(Visual) bileenlere sahip olmaylardr. Form temel alnarak oluturulacak nesneler ise grsel elemanlar ierir fakat ayr olarak derlenemezler ve baka projelerle birlikte kullanlamazlar. Hangi metot kullanlrsa kullanlsn neticede yeni nesneler yaratmak demek, bu nesneleri ieren snflara yeni zellikler eklemek demektir . Yeni zellikleri tanmlamak ve bu zellik deerlerine erimek iin Proper ty szcn ieren zel prosedrlerin kullanlmas gerekir. Bu tip prosedrle 3 tanedir: 1)Proper ty Get prosedrleri: zelliin o anki deerine erimek iin kullanlr. Yazl biimi, [Public| Private] [Static] Property Get sim [(Argman Listesi)] [As Type] [Deyimler] [sim=fade] [Exit Property] End Property 2) Proper ty Let prosedrleri: zellie yeni bir deer atamak iin kullanlrlar. Yazl biimi, [Public| Private] [Static] Property Let sim [(Argman Listesi)] [As Type] [Deyimler] [Exit Property] End Property 3) Proper ty Set prosedrleri: Bu tip prosedrler ise, bir zellie deer atamak yerine, dorudan nesneye referans vermek gerekiyorsa kullanlr. Yazl biimi, [Public| Private] [Static] Property Set sim [(Argman Listesi)] [Deyimler] [Exit Property] End Property

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: KULLANICININ KEND SINIFINI OLUTURMASI Yeni bir snf oluturmak iin forma zellikler eklemek ya da snf modln baz olarak kullanmak gerektiini sylemitik. Bir snf modl nesnesi, yeni eklenen zellikler iin kod ve snfn ierecei nesnelere uygulanabilecek metotlarn listesini ierir. imdi yerkr e adl bir snf iin mevsimler le ilikili bir zellik tanmlamak ve bulunulan mevsimi bu zellik deeri olarak atamak ve o andaki mevsimi renmek iin de o zellie erimek istiyoruz. Aadaki admlar izleyiniz: 1)Project mensnden Add Class Module men komutu ile, projeye bir snf modl ekleyiniz. ekil Ob.9 daki pencere gelir. ekil Ob.9 Projeye Class Module eklenmesi 2) Snfnzn Name zelliini YERKURE olarak atayabilirsiniz. Aadaki prosedrleri giriniz:

VISUAL BASIC LE YAZILIM GELTRME

VISUAL BASIC LE YAZILIM GELTRME 3)Form zerine iki komut butonu yerletiriniz. Caption zelliklerini aadaki gibi ataynz ve kod pencerelerine aadaki olay prosedrlerini giriniz: MEVSM ATA butonu iin: Pr ivate Sub Command1_Click() k.MevsimBul() = InputBox("Bulunduunuz mevsim..") End Sub MEVSM BUL butonu iin: Pr ivate Sub Command2_Click() MsgBox k.MevsimBul End Sub 4)Formun General/Declarations ksmna aadaki ifadeyi giriniz: Dim k As New Class1 Class1 yerine YERKURE ismini atad iseniz bildirimde bunu girmelisiniz.

VISUAL BASIC LE YAZILIM GELTRME 5)Run/Start ile kodu altrnz. MEVSM ATA butonunu clickleyiniz. Aadaki pencere gelecektir. KIS mevsimini giriniz: 6)Ok butonunu seerek MEVSM BUL butonunu tklatnz. Aadaki kty elde edeceksiniz: 7)imdi oluturduunuz snf zelliklerini ve metotlarn grmek iin Object Browser i kullanabilirsiniz: Oluturduunuz snfa yeni metotlar eklemek iinse, Public Sub yada Public Function tipi prosedrler kullanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 22 VISUAL BASC LE NESNEYE YNELK PROGRAMLAMA UYGULAMASI

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC 6.0 LE NESNEYE YNELK PROGRAMLAMA YAKLAIMI RNEK PROJE: Bu blmde amacmz, nesneye ynelik programlama yaklam ile gelitirdiimiz rnek projeyi size tm ayrntlar ile aklamak ve doru alabilmesi iin ger ekli tm admlar vermektir . Projeyi hatsz altrmak iin aadaki admlar eksiksiz olarak uygulaynz: Form zer ine iki adet ereve(frame) nesnesi yerletir iniz. Bir inci er evenin Caption zelliini 1.ROKET KUMANDA PANEL ve ikinci er evenin de Caption zelliini 2.ROKET KUMANDA PANEL olarak deitiriniz. Birinci erevenin iine yerletireceiniz etiket nesnesinin(Label1) caption zelliini HIZ GSTERGES ve ikinci ereve iine yerletireceiniz etiket nesnesinin(Label2) de Caption zelliini HIZ GSTERGES olarak deitiriniz. Formun sol st kesine yerletireceiniz etiket nesnesinin(Label3) Caption zellii 1.ROKET ve bunun biraz aasna yerletireceiniz etiket nesnesinin(Label4) Caption zellii de 2.ROKET olarak deitiriniz. Birinci ereve iine yerletireceiniz iki adet komut butonunun Caption zellikleri sras ile HIZLAN(Comand1) ve YAVALA(Commad2) ikinci ereve iine yerletireceiniz iki adet komut butonunun Caption zellikleri de sras ile HIZLAN(Comand3) ve YAVALA(Commad4)olarak deitiriniz. Birnci erevenin en alt ksmna yerletireceiniz komut butonunun Caption zelliini (Command5) adl buton MHA ET! ve ikinci erevenin de en alt ksmna yerletireceiniz komut butonunun (Command6 adl buton) Caption zelliini MHA ET! eklinde deitiriniz. Formun sol alt kesine yerletireceiniz komut butonunun (Command7 adl buton) Caption zellii ise DUR eklinde deitiriniz. Formun sa st kesine bir zamanlayc(Timer) nesnesi yerletiriniz. (ekil OOP.1)

VISUAL BASIC LE YAZILIM GELTRME 2. Form un General/ Declaration ksmna ekil OOP.2 deki bildiri ifadelerini yerletiriniz. ekil OOP.1- rnek projenin form grnts Public renk As Double Public t1 As Boolean Public t2 As Boolean Private roket1 As New Class1 Private roket2 As New Class1 ekil OOP.2- General/ Declaration ksmna yerletirilen bildirimler 3. Form zerine yerletirilen kontrol nesneleri ile ilikili olarak, aadaki olay prosedrlerini giriniz:

VISUAL BASIC LE YAZILIM GELTRME Private Sub Command1_Click() roket1.hizlan 1 End Sub Private Sub Command2_Click() roket1.yavasla 1 End Sub Private Sub Command3_Click() roket2.hizlan 2 End Sub Private Sub Command4_Click() roket2.yavasla 2 End Sub Private Sub Command5_Click() t1 = True End Sub Private Sub Command6_Click() t2 = True End Sub Private Sub Command7_Click() End End Sub Private Sub Form_Load() t1 = False t2 = False Scale (0, 0)-(1200, 900) absisx = 2 * ScaleWidth With roket1 Set .f1 = Me .ord = 8 .renk = "sar" End With With roket2

VISUAL BASIC LE YAZILIM GELTRME Set .f1 = Me .ord = 98 .renk = "lacivert" End With Scale (0, 0)-(1200, 900) End Sub Private Sub Form_Unload(Cancel As Integer) Set roket1 = Nothing Set roket2 = Nothing End Sub Private Sub Timer1_Timer() If Not t1 Then roket1.goster absisx Else roket1.yoket End If If Not t2 Then roket2.goster absisx Else roket2.yoket End If Label1.Caption = Str$(roket1.hizgor) & "km/h)" Label2.Caption = Str$(roket1.hizgor) & "km/h)" End Sub 4. Project/add Class Module mens yardm ile projeye bir snf modl yerletiriniz. Bu modln adn File/Save Class1 mens yardm ile roket olarak deitiriniz. (ekil OOP.3) Bu durumda projeniz iindeki nesneler ekil OOP.4 teki grnmde olacaktr. 5. roket adl snf modlnn General/Declaration ksmna aadaki bildirimleri giriniz: Public f1 As Form Public ord As Double Public absis As Double

VISUAL BASIC LE YAZILIM GELTRME Private hiz As Double Private ren As Double ekil OOP.3 Class1 snf modlnn adnn roket olarak deitirilmesi ekil OOP.4 Proje iindeki nesnelerin grnm 6.Snf modl ierisine aadaki prosedrleri yerletiriniz: Public Sub hizlan(artim) hiz = hiz + artim If hiz > 120 Then hiz = 120 End If End Sub

VISUAL BASIC LE YAZILIM GELTRME Public Sub yavasla(artim) hiz = hiz - artim If hiz < 0 Then hiz = 0 End If End Sub Public Sub Class_Initialize() absis = 130 hiz = 20 End Sub Public Sub goster(absisx) f1.ForeColor = f1.BackColor Call roketgoruntu(absis, ord) absis = absis + hiz If absis >= f1.ScaleWidth Then absis = -absisx f1.ForeColor = ren Call roketgoruntu(absis, ord) End Sub Public Sub roketgoruntu(ByRef x As Double, ByRef y As Double) f1.Line (x + 75, y + 75)-(x + 150, y + 125), , BF f1.Line (x + 150, y + 75)-(x + 200, y + 100), ren f1.Line (x + 150, y + 125)-(x + 200, y + 100), ren f1.Line (x + 150, y + 125)-(x + 200, y + 100), ren f1.Line (x + 15, y + 85)-(x + 75, y + 100), ren f1.Line (x + 15, y + 95)-(x + 75, y + 100), ren f1.Line (x + 15, y + 105)-(x + 75, y + 100), ren f1.Line (x + 15, y + 85)-(x + 75, y + 100), QBColor(8) f1.Line (x + 15, y + 95)-(x + 75, y + 100), QBColor(8) f1.Line (x + 15, y + 105)-(x + 75, y + 100), QBColor(8) End Sub Public Property Get hizgor() As Single hizgor = hiz * 10 End Property

VISUAL BASIC LE YAZILIM GELTRME Public Property Let renk(rnk As String) If rnk = "sar" Then ren = QBColor(14) ElseIf rnk = "lacivert" Then ren = QBColor(1) Else MsgBox "renk gsterilemiyor" ren = QBColor(0) End If End Property Public Property Get renk() As String If ren = QBColor(14) Then renk = "sar" End If If ren = QBColor(1) Then renk = "lacivert" End If If ren = QBColor(0) Then renk = "siyah" End If End Property Private Sub roket_Error(DataError As Integer, Response As Integer) MsgBox DataError End Sub Public Sub yoket() f1.Line (300, 300)-(absis + 60, ord + 60) f1.Line (300, 300)-(absis + 120, ord + 60) f1.Line (300, 300)-(absis + 180, ord + 60) For i = 1 To 60 f1.Circle (absis + 120, ord + 60), i, QBColor(15 * Rnd) Next i End Sub 7. Run/Start ile uygulamay altrnz. ekil OOP.5 teki gibi iki roketin kendi yatay yrngeleri iinde hareket ettiklerini greceksiniz. Her iki

VISUAL BASIC LE YAZILIM GELTRME roketin balang hzlar eit olarak alnmtr ve form zerinde grntlenmektedir. ekil OOP.5 Projenin icrasnda ilk ekran 8. Roketlerin YAVALA butonlar tklandka roketlerin hzlarnn azald, HIZLAN butonlar tklandka da hzlarnn arttn gzleyebilirsiniz. (ekil OOP.7) 9. MHA ET! butonlar tklannca da, roketler bombalanacak ve vurulacaktr. (ekil OOP.6)

VISUAL BASIC LE YAZILIM GELTRME ekil OOP.6 Roketlerin imha edilmesi

VISUAL BASIC LE YAZILIM GELTRME ekil OOP.7 Roket hzlarnn deitirilmesi

VISUAL BASIC LE YAZILIM GELTRME BLM 23 CLIPBOARD NESNES

VISUAL BASIC LE YAZILIM GELTRME CLIPBOARD NESNES NEDR? Windows ortamnda Clipboard nesnesi, Windows uygulamalar arasnda, metin(text) ve grafik tr bilgi deiim ileminde yardmc olan bir nesnedir. Ayrca, belli bir Windows uygulamasnda ise, Cut-Paste ileminde kullanlmaktadr. Clipboard, belli bir anda ayn tipteki bir veri grubunun sadece belirli bir ksmn saklayabilir. Ayn formatta da olsa, yeni bir veri gnderilmesi, nceki verinin silinmesine sebebiyet verecektir. CLIPBOARD IN ERN SLMEK Bu amala Clear metodu kullanlr. Yazl biimi, Clipboard.Clear eklindedir. CLIPBOARD A METN TR BR BLG GNDERMEK Clipboard a metin tr bir bilgi gndermek iin SetText metodu kullanlr. Yazl biimi, Clipboard.SetText Stringfadesi eklindedir. CLIPBOARD DA SAKLANAN VERYE ERMEK Clipboard da saklanan veriye erimek iin, GetText metodu kullanlr. Kullanl biimi, Hedef= Clipboard.GetText() eklindedir. Burada hedef, uygun trde bir deiken ya da bir nesne zelliini olabilir. METN SEM LE LKL ZELLKLER Kullanc bazen bir metin kutusu ya da kombine kutudan, sadece setiim(mouse ile ya da klavyeden ok tular ve SHIFT tuu ile karartt) ksm ileme sokmak isteyebilir. SelStar t zellii, seilen blgenin balang karakterini gsteren bir tamsaydr. SelLenght zelliini, seilen blgenin karakter says olarak uzunluunu verir. rnein 10 karakterlik bir blge seilmise, bu uzunluk 10 olacaktr.

VISUAL BASIC LE YAZILIM GELTRME SelText zellii ise, klavye ya da mouse yardm ile, seilen metnini ieriini elde eder. CLIPBOARD FORMATLARI Clipboardda saklanan eitli tipteki verilerin trlerini tespit edebilmek iin Clipboard.GetFormat(Format%) ifadesi kullanlr. Burada Format% Clipboarddaki verinin trne gre aadaki tabloda verilen deerlerden birini alabilir: Format% Saysal Deeri Format Tr vbCFLink &HBF00 DDE konuma bilgisi vbCFText 1 Metin(.TXT) vbCFBitmap 2 Bitmap(.BMP) vbCFMetafile 3 Windows metafile (.WMF) vbCFDIB 8 Cihazdan Bamsz Bitmap (.DIB) vbCFPalette 9 Renk paleti CLIPBOARD DAN GRAFK TR BLGYE ERMEK Clipboarddaki grafik tr bilgiye erimek iin, Clipboard.GetData(Format%) eklinde bir ifade kullanlr. Burada Format%, yukardaki tabloda bulunan grafik formatlardan bir tanesi olmaldr. (2,3,8 ya da bunlara kar gelen isimler) RNEK UYGULAMA: Aadaki admlar izleyiniz: 1)Form zerine 2 adet etiket, 1 metin kutusu 2 adet resim kutusu ve 4 adet komut butonu yerletiriniz. Bu nesnelerin Caption zelliklerini, ekil C.1 deki grnme gre ataynz. 2)Picture2 adl resim kutusuna, Picture zelliinin yardm ile bir resim ykleyiniz.

VISUAL BASIC LE YAZILIM GELTRME 3) CLIPBOARDDAN METN AL butonunu iki kez tklatarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Command1_Click() If Clipboard.GetFormat(vbCFText) Then Text1.Text = Clipboard.GetText() Else MsgBox ("Clipboardda metin tr bilgi yok") End If End Sub ekil C.1 - Uygulama nesneleri 4) CLIPBOARDDAN RESM AL butonunun kod penceresine de aadaki olay prosedrn giriniz: Pr ivate Sub Command2_Click() If Clipboard.GetFormat(vbCFText) Then MsgBox ("Clipboardda sadece metin tr bilgi var") ElseIf Clipboard.GetFormat(vbCFBitmap) Then Picture1.Picture = Clipboard.GetData(vbCFBitmap) ElseIf Clipboard.GetFormat(vbCFMetafile) Then Picture1.Picture = Clipboard.GetData(vbCFMetafile) ElseIf Clipboard.GetFormat(vbCFDIB) Then Picture1.Picture = Clipboard.GetData(vbCFDIB) Else MsgBox "Alglanabilen resim format yok" End If End Sub

VISUAL BASIC LE YAZILIM GELTRME 5) CLIPBOARDA METN YOLLA adl butonun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command3_Click() Clipboard.Clear Clipboard.SetText Text1.Text End Sub 6)Nihayet CLIPBOARDA RESM YOLLA butonunun kod penceresine de aadaki kodu giriniz. Pr ivate Sub Command4_Click() Clipboard.Clear Clipboard.SetData Picture2.Picture, 2 End Sub 7)Run/Start ile kodu altrnz. nce CLIPBOARDA RESM YOLLA sonra da CLIPBOARDDAN RESM AL butonlarn tklatnz. ekil C.2 deki durumu elde edeceksiniz. ekil C.2 Clipboarddan resmin alnmas 8)imdi CLIPBOARDDAN METN AL butonunu tklatnz. ekil C.3 teki grnm elde edeceksiniz. Dier durumlar da , bu kod yardm ile kolayca deneyebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil C.3 Hatal istee bal mesaj

VISUAL BASIC LE YAZILIM GELTRME BLM 24 DDE(DYNAMIC DATA EXCHANGE) DNAMK VER DEM

VISUAL BASIC LE YAZILIM GELTRME DDE TEKNELOJ S Dynamic Data Exchange (Dinamik Veri Deiimi) teknolojisinin amac, bir Windows uygulamas ile baka bir Windows uygulamas arasnda, ayn zaman diliminde haberleme salamaktr. Uygulamalardan biri(client-istemci) dierinden(server -sunucu) bilgi istemektedir. Windows ortamnda bu ilem, pratikte, iki ak pencere arasnda gerekletirilen haberleme denektir. Bu tr bir haberleme, bir DDE konumas veya bir DDE ba(linki) adn alr. Visual Basic Ortamnda, sadece formlar, sunucu(server ) olabilir. Metin kutular, resim kutular ve etiketler ise istemci(client) olabilirler. Bilgi ak, genel olarak,sunucudan istemciye dorudur. Windows ayn anda, ok sayda DDE konumasna izin vermektedir. Bazen bir nesne, hem istemci hem de sunucu olabilir; yani bir uygulamadan bilgi alrken, baka bir uygulamaya ise bilgi gnderebilir. DDE haberlemesi iin, aada belirtilen hususlar gerekletirilmi olmaldr: 1)Haberleme yaplacak uygulamann ad bilinmelidir. Bu, DDE teknolojisini destekleyen bir uygulamann DDE adnn(DDE name) bilinmesi anlamndadr. rnein, Word iin DDE ad, Winword, Excel iin ise Excel dir. 2)DDE konumas iin konu(topic) belirlenmi olmaldr. Bunun somut karl, dosya adnn, (File Name) belirtilmi olmasdr. rnein, bu, yol bilgisi ile birlikte C:\Excel\bordro.xls ya da C:\Excel\graf.xlc eklinde Excel sheet i ya da grafiinin ad olabilir. 3)Son olarak, DDE konumasnn, konusu iin maddenin(item) ne olaca belirtilmelidir. rnein, konu Excel.xls dosyas eklinde ise, madde(item) bu dosya iindeki bir hcre ya da bir blge olabilir. DDE LNK TRLER DDE konumas esnasnda, balca tr link oluturulabilir: 1)Scak hat(Hot link veya Automatic link): Bu tip balantda, server da (sunucu) meydana gelen deiiklik annda istemciye(client) iletilir. Scak hat, sadece gerek zamanl(real time) uygulamalarda sz konusu olabilir. 2)Souk hat(Cold Link veya Manual Link): Bu balantda ise, server da meydana gelen deiiklikler, client tarafndan aka talep edilmelidir.

VISUAL BASIC LE YAZILIM GELTRME 3)Bildirimli hat(Notification Link) : Bu balantda ise, sunucu istemciye, verinin deimi olduunu bildirir. Fakat, hedefteki(client taki) deime, ancak LinkRequest metodu icra edildikten sonra gerekleir. DDE ZELLKLER LinkTopic Bu zellik, sunucu(server) ad DDE konusunu(topic) belirlemek amac ile kullanlr. Yazl biimi, SunucuAd | Konu eklindedir. rnein, sunucu Excel ve konu onun bir Sheet i ise, bu zellik Excel | C:\Excel\Bordro.xls eklinde atanabilir. LinkItem Sunucudan gerek olarak istemciye aktarlacak olan veri kalemini belirtmek amac ile kullanlr. Bu zellii atamak iin, [FormAd.] KontrolAd.LinkItem = M$ eklinde bir ifade kullanmak gerekecektir. LinkItem zellii, sadece istemci(client) kontrolleri iin geerlidir. Yani, bir resim kutusu, metin kutusu ya da etiket nesnesi iin atanabilir. rnein, bir metin kutusu client ise ve bu Excel in Bordro.xls inin A2 hcresinden bilgi alacaksa, bu zellik; Form1.Text1.LinkItem= R2C1 eklinde atanabilir. Burada, A2, Bordro.xls adl Excel sheet inin 2. satr(R, Row-satr anlamnda) ve 1. stun (C, Column- stun anlamnda) elemandr. LinkMode DDE konumas trn belirtir. 1 deeri Scak Hat (Hot veya Automatic ) , 2 deeri Souk (Cold veya Manual) , 3 deeri Bildirimli(Notification) ve 0 deeri hibiri(none) anlamndadr. LinkTimeOut Visual Basic in ne kadar sre ile, client ve server arasndaki linki tutacan belirler. Default deer 5 saniyedir. Bu zellik, saniyenin 10 da birini birim olarak kulland iin, 5 saniye deeri, 50 olarak grlr. DDE OLAYLARI 4 tane DDE olay mevcuttur:

VISUAL BASIC LE YAZILIM GELTRME LinkOpen DDE linki baar ile kurulmusa, bu olay meydana gelir. Bu olay, kullancya durumu bildiren bir mesaj vermek iin kullanlr. Pr ivate Sub Text1_LinkOpen(Cancel As Integer ) x$ = Text1.LinkTopic + " ile ilikili" x$ = x$ + Text1.LinkItem + " blgesi" x$ = x$ + "ile balant kuruldu" MsgBox x$ End Sub LinkClose DDE balantsnn sona ermesi ile oluur. Bu olay ile ilikili olarak, Private Sub FormAd_LinkClose() ........ End Sub eklinde bir olay prosedr kullanlabilir. LinkExecute DDE istemcisi, DDE sunucusundan bir ey talep edince kullanlr. Bu olay, istemci, sunucuya bir komut gnderince meydana gelir. Aadaki gibi olay prosedr kullanlabilir: Private Sub Form_LinkExecute(KomutStringi As String, Cancel As Integer) ......... End Sub LinkEr ror DDE haberlemesi esnasnda, bir hata olutuu zaman meydana gelir. Private Sub Form_LinkError(LinkErr As Integer) End Sub veya Private Sub KontrolAd_LinkError(LinkErr As Integer) eklinde kullanlr.

VISUAL BASIC LE YAZILIM GELTRME LinkNotify LinkMode zellii 3 olarak atannca meydana gelir. Sunucu, kaynak veriyi deitirmise ve bunu istemciye bildirmek ihtiyacnda ise bu olay oluur. Bu durumda, yeni veriyi almak iin, LinkRequest metodu kullanlr. DDE METOTLARI 4 adet DDE metodu mevcuttur. LinkExecute DDE sunucusuna bir komut gndermek istenirse kullanlr. Yazl biimi KontrolAd.LinkExecute KomutStringi eklindedir. LinkPoke Bir DDE istemcisinin(client), sunucuya(server) veri gndermesi iin tek yol bu metodu kullanmaktr. Visual Basic projenizdeki herhangi bir client n ieriini, server a yollamak iin kullanabilirsiniz. Kullanl biimi, KontrolAd.LinkPoke eklindedir. LinkRequest DDE sunucusunun, kontrol nesnesine bilgi gndermesi gerektii zaman kullanlr. Sadece LinkMode deeri 2 iken kullanlr. Kullanl biimi, KontrolAd.LinkRequest eklindedir. LinkSend Bir Visual Basic formu, bir sunucu(server) olarak alyorsa ve bu form zerindeki bir resim kutusunun ierii bir yere gnderilecekse, kullanmna ihtiya vardr. Kullanl biimi, ResimKutusuKontroAd.LinkSend eklindedir.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: 1)Formun Caption zelliini SEVER olarak deitiriniz. Formun zerine bir metin kutusu yerletiriniz. Formun LinkTopic zelliini Form1 ve LinkMode zelliini 1 (Sour ce) yapnz. (ekil C.1) ekil C.1 - SERVER grevi yklenecek olan form 2)Projeyi, Server.vbp olarak saklaynz. 3) File/New Project mens ile, yeni bir proje anz. Form zerine, 2 adet opsiyon butonu, 2 adet komut butonu, 1 adet metin kutusu yerletiriniz. Opsiyon butonlarnn Caption ve Name zelliklerini sra ile, SOGUKBAG ve SICAKBAG olarak deitiriniz. Komut butonlarnn da, Name ve Caption zelliklerini sras ile GONDER ve AL olarak deitiriniz. Formun Caption zelliini CLIENT olarak deitiriniz. Formun LinkTopic zelliini Form1 ve LinkMode zelliini de 1( Source) olarak ataynz. (ekil C.2) ekil C.2 - CLIENT formunun tasarm

VISUAL BASIC LE YAZILIM GELTRME 4)Formun kod penceresine ekil C.3 teki kodu giriniz. ekil C.3 - Form_Load kodu 5)Formun General/Declarations ksmna ekil C.4 teki kodu giriniz. ekil C.4 - Sabitlerin atanmas 6)AL adl komut butonunun kod penceresine, ekil C.5 teki kodu giriniz. ekil C.5 - AL_Click kodu 7)GONDER adl komut butonunun kod penceresine ise, ekil C.6 daki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME ekil C.6 - GONDER_Click kodu 8)SICAKBAG adl opsiyon butonunun kod penceresine ekil C.7 deki kodu giriniz. ekil C.7 SICAKBAG_Click kodu 9)SOGUKBAG adl opsiyon butonunun kod penceresine ise, ekil C.8 deki kodu giriniz. ekil C.8 SOGUKBAG_Click kodu 10)Projeyi Client.vbp ad ile saklaynz. Run/Star t ile Client.vbp yi icra ediniz. Client program, Server formunu ykleyerek balangta otomatik olarak bir SICAK BA oluturacaktr. imdi, Server n text kutusuna yazacanz bilgi, annda Client n penceresine aktarlacaktr. (ekil C.9)

VISUAL BASIC LE YAZILIM GELTRME ekil C.9 - Server ve Client programlar arasnda scak ba ilikisi 11)imdi, SOUK BA isimli opsiyon butonunu clickleyiniz. Bu durumda, ekranda, GONDER ve AL butonlar belirecektir. imdi, Server daki metin kutusuna yazacanz bir bilgi, annda Client a aktar lmayacaktr . 12)Ancak Client zerindeki AL butonu clicklenirse, Server daki bilgi Client a aktarlacaktr.( ekil C.11) ekil C.10 - Souk ba tekili ekil C.11 - AL butonu ile Server daki bilginin Client a aktarlmas

VISUAL BASIC LE YAZILIM GELTRME BLM 25 OLE ESASLARI

VISUAL BASIC LE YAZILIM GELTRME OLE TEMEL PRENSPLER Object Linking and Embedding (Nesneyi Balama ve Yerletirme) yntemi, Windows iletim sistemince kullanlan yeni bir teknolojidir. Bu teknoloji sayesinde, bir Windows uygulama progr am( Mesela Visual BASIC 6.0) ile gelitir ilen bir proje iine baka bir Windows uygulama programndan(Mesela Word 7.0, Excel 7.0 veya Paint Brush) nesneler aktarmak mmkndr . Bylece Visual BASIC 6.0 program alyorken, bunu iinde bir Word dokman zerinde deiiklik yapmak ya da Excel grafik nesnesi ile ilem yapmak mmkn olmaktadr. WINDOWS ORTAMI NESNELER Nesnenin bir uygulama tarafndan desteklenen ve kod ile ilikili veriyi bir arada bulunduran ayrk bir yap olduunu biliyoruz. eitli Windows uygulama programlar tarafndan, farkl tipte nesneler kullanma sunulmutur. rnein, ok yaygn olarak kullanlan bir hesap tablosu (spreadsheet) uygulamas olan Excel 7.0 tarafndan sunulan nesne tipleri, Worksheet(alma Sayfas), Macrosheet( Makro Gelitirme Sayfas), Chart(Grafik), Cell(Hcre) ya da Range(Blge) gibi olduka eitlilik arz eden yapdadr. Visual Basic 6.0 da ise, Formlar ve Kontrol Nesneleri en nemli nesne gruplarn oluturur. Visual BASIC te bir nesneyi uygulama iinde kullanlr hale getirmek ya da oluturmak iin 3 farkl yol kullanlabilir: Not: Aadaki uygulamalardan birini uygulayarak aracanz Excel veya Word uygulamasnn versiyonu , bilgisayarnza kurduunuz veya kuracanz Office Otomasyon paketinin versiyonuna gre deiiklik arz edecektir. 1) Project mensndeki Components komutunu kullanarak nesneyi ara kutusuna eklemek ne nesneyi dorudan form zer ine yer letirmek. Bu teknik, yabanc nesneyi, uygulamamz iindeki bir formun arayz dahilinde yerletirir.

VISUAL BASIC LE YAZILIM GELTRME RNEK: Visual BASIC te gelitirdiimiz uygulama iinde PaintBrush (MSPAINT.exe) uygulamasn armak. Aadaki admlar izleyiniz: a)Project mensnden Components alt mensn seiniz. Karnza gelen pencerede Inser table Objects tab ndan Bitmap Image seeneini iaretleyiniz. OK butonunu seiniz. PaintBrush ikonu, ara kutusuna eklenecektir.( ekil O.1) ekil O.1 PaintBrush Visual Basic uygulamasna katma b)imdi ara kutusundan PaintBrush ikonunu seerek, mouse yardm ile form zerine yerletiriniz. ( ekil O.2) Bu andan itibaren, Visual Basic formunuz zerinden PaintBrush a eriebilirsiniz. 2)Kod iinde nesneyi yaratmak. Bu amala, CreateObject veya GetObject fonksiyonlarn kullanabilirsiniz. Bu teknik, Visual Basic uygulamas icr a edildikten sonra yabanc uygulamaya ait nesneyi yaratacaktr .

VISUAL BASIC LE YAZILIM GELTRME RNEK: Visual BASIC uygulamas iinden Excel Worksheet i zerinde ilem yapmak. Aadaki admlar izleyiniz: ekil O.2 - Visual Basic formu zerinden Paint Brush a erime a) Project mensnden Refer ences alt mensn seiniz. Gelen diyalog penceresi iinde Microsoft Excel Object Libr ary yi iaretleyiniz. b) Form zerinde double-click yaparak, gelen kod penceresine aadaki kodu giriniz(ekil O.3) ekil O.3 OLE ilemini gerekletirecek kod

VISUAL BASIC LE YAZILIM GELTRME c)Run/Star t men admlar ile kodu icra ediniz. Excel uygulamas yklenecektir. RNEK: Excel 7.0 Sheet ini ykleyerek C stununa 2 den 16 ya kadar otomatik say ykleyen ve C20 hcresine bunlarn toplamn yazdran bir Visual BASIC uygulamas gelitiriniz. Bu rnekte istenileni gerekletirmek iin aadaki admlar izleyiniz. a) Project/Refer ences mens ile elde edilen diyalog penceresinde Microsoft Excel Object Libr ary yi seiniz. b) Form zerine bit text kutusu (TextBox) yerletiriniz. Bunun adnn Text1 olduunu varsayalm. c) Form zerine double-click ilemi uygulayarak kod penceresini getiriniz. Burada Click olayn seerek ekil O.4 teki kodu giriniz. ekil O.4 Form_Click kodu d)Run/Start men admlarn seerek Visual Basic projesini altrnz ve form zerinde mouse sol tuunu tklaynz. Aadaki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil O.5 Saylarn Visual Basic tarafndan hcrelere yerletirilmesi Bu ekran , saylarn yerletirilmesi ve toplanmas ii bitince kaybolur ve saylarn toplam formun zerine aktarlr. e)imdi ekrana ekil O.6 daki sonu gelecektir. Burada metin kutusu iinde 135 deeri grlmektedir. Bu say Excel Sheet ine C1 ile C15 arasna yerletirilen 2 den 16 ya kadar saylarn toplamdr. imdi kodu aklayalm: Dim ExcelNesne As Object satr ile ExcelNesne adl deiken , bir nesne deikeni olarak tanmlanmaktadr. Set ExcelNesne = CreateObject("EXCEL.SHEET") satr ile de CreateObject fonksiyonu yardm ile Excel Sheet tipinde bir nesne yaratlarak ExcelNesne isimli deiken ile ilikili hale getirilmektedir.

VISUAL BASIC LE YAZILIM GELTRME ExcelNesne.Application.Visible = True satr ise Excel uygulamasn grnr hale getirmektedir. For x= 1 To 15 ExcelNesne.Application.Cells(x,3).Value=x+1 Next x evrimi ile, Excel sheet inin 3. stununda (C stunu) , 1 ile 15 nci satrlar arasna 2 den balayarak (x+1 ifadesi ile) 16 ya kadar olan tam saylar otomatik olarak yerletirilmektedir. ExcelNesne.Cells(20,3).Application.Formula = =Sum(C1:C15) Satrndaki ifade ile Excel sheet inde C20 hcresine =SUM(C1:C15) forml yerletirilmektedir. Bu forml ile , C1:C15 hcreleri arasndaki blgede bulunan saylarn toplam hesaplanacaktr. Text1.Text = ExcelNesne.Application.Cells(20,3) Satrndaki ifade ile de C20 deki toplam forml zerindeki Text1 adl Text kutusuna yerletirilerek grntlenmektedir. ExcelNesne.Application.Quit Komutu ile Excel den klmaktadr. Set ExcelNesne = Nothing komutu ise ExcelNesne deikenini yok ederek bellei boaltmaktadr.

VISUAL BASIC LE YAZILIM GELTRME ekil O.6 Metin kutusuna Excel deki C1:C15 hcreleri toplamnn yazl 3)OLE ieren kontrol nesnesi iine yabanc uygulamaya ait bir nesneyi yerletirme ve/veya balama. Bu amala , ara kutusu iinde, zerinde OLE szc bulunan kontrol nesnesinden yaralanlr. RNEK: Bir Visual BASIC uygulamas iinde WORD uygulamasna eriimi salaynz. Bu rnekte istenilen ilem iin, aadaki admlar izlemelisiniz: a) Form zerine OLE kontrol nesnesi yerletiriniz. Karnza bir diyalog penceresi gelecektir.(ekil O.7) Burada Cr eate New seeneini iaretleyiniz. Listeden Microsoft Word Document (Microsoft Word Belgesi) seiniz. Ayrca Display As Icon(kon olarak gster) seeneini iaretleyiniz ve OK butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil O.7 OLE diyalog penceresi ekil O.8 OLE kontrol nesnesi iine yerletirilen Word uygulamas

VISUAL BASIC LE YAZILIM GELTRME b) ekil O.8 de grld gibi, Word uygulamasna ait ikon, OLE kontrol nesnesi iinde belirecektir. c) imdi Run/Star t men admlar ile Visual BASIC uygulamasn altrnz. ekil O.9 daki ekran gelir. Burada Word ikonu zerine double-click ilemini uygulaynz. ekil O.9 cra esnasnda OLE nesnesi d) Word ortamna geilecektir. (ekil O.10) Burada File/New ile yeni bir dkman anz ve WORD-OLE UYGULAMASI yazarak ve WOLE adn vererek saklaynz. (ekilO.11) File/Exit ile Word den knz. e) Visual BASIC uygulamanz tekrar altrarak, Word ikonunu double-click ilemine tabi tutunuz. Word yklenecektir. File/Open mens ile gelen diyalog kutusunda WOLE dkmann seerek OK butonunu tulaynz. Biraz nce sakladnz bilgi gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil O.10 - Word ortam ekil O.11 Word ortamnda saklama Yukarda Word dkman ile ilgili anlatlan ilemleri, tasarm ortamnda OLE kontroln seerek mouse un sa butonu tklannca alan menden Edit men komutunu seerek de gerekletirebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 26 VISUAL BASIC 6.0 DA DOSYA YAPILARI

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC 6.0 DA DOSYA TRLER Visual Basic 6.0 da 3 farkl trde doya yaps mevcuttur: 1.Sral Eriimli Dosya(Sequential File) 2)Rasgele Er iimli Dosyalar (Random File) 3)kili Dosya(Binary File) Aadaki blmlerde bu dosya trlerinin zellikleri ayrntl olarak incelenecektir. DOSYALARIN KAVRAMSAL YAPISI Bir dosyann kavramsal olarak yaps aadaki gibi gsterilebilir: Dosya(File), ok sayda kayttan(Record) olumutur. Kaytlar, birbirinden belirli karakterlerle veya bir sistematik ile ayrlrlar. Kaytlar iinde, belirli bir btnlk oluturan bilgiler grubu bulunur. Kayt iindeki alt bilgi birimi alan(Field) adn alr. rnein personel dosyas tutulacaksa, her kaytta Personel Sicil No,Ad,Soyad,Brt Maa vb gibi alt bilgi birimleri bulunabilir ve bunlarn her biri alan(field) adn alr. SIRALI ERML DOSYA(SEQUENTIAL FILE) Sral eriimli dosyalarn en nemli zellii udur: Bu dosyalarda herhangi bir kayta eriebilmek iin, ondan nceki btn kaytlara eriilmesi zorunludur; yani, dorudan istenilen kayta eriilemez. Buradaki mantk, mzik kasetlerindeki yapya benzer. rnein, 5. sradaki arkya erimek iin, ondan nceki 4 arkya da erimek(onlar sarmak, gemek)zorundasnz.

VISUAL BASIC LE YAZILIM GELTRME Sral eriimli dosyalar, bu zellikleri ile, ancak snrl baz alanlarda kullanlrlar. Bir uygulama sadece, yn halinde bilgiyi bilgisayarda saklayp gene tmn birden listelemek eklinde gereksinimlere sahipse, sral eriimli dosya yaps bunun iin uygun olacaktr. Fakat, bir uygulamada sk sk belirli kaytlar aranacak ise ya da bilgi zerinde ok sk deiiklik ilemi(gncelleme-update) gerekiyorsa, sral eriimli dosya yaps bu ilemler iin elverili deildir. Sral eriimli dosyalarda, kayt uzunluklar deikendir yani bir kayt baka bir kayttan farkl uzunlukta olabilir. Kayt sonunu belirleyen ey ASCII 13 ve ASCII 10 (CHR+(13)+CHR$(10)) karakter kombinezonudur. SIRALI ERML BR DOSYANIN ALIMA MODLARI Sral eriimli bir dosya 3 farkl modda alabilir: 1)OUTPUT Modu: Dosya bu mod ile almsa, zerine bilgi kayd yaplacaktr . Bu durumda dosya nceden mevcut bir dosya ise zerindeki tm bilgiler silinecektir. 2)INPUT Modu: Daha nceden mevcut bir dosyadan bilgi okumak amacyla kullanlr. 3)APPEND Modu: Normal olarak, daha nceden mevcut ve zerinde bilgi ykl olan bir dosyaya en sonundan itibaren yeni kaytlar eklemek iin kullanlr. Bo bir dosya iin bu mod kullanlrsa, 1. Kayttan itibaren bilgi kayd gerekletirilir. SIRALI ERML BR DOSYAYA BLG KAYDETME Bunun iin aadaki admlar izlenmelidir: 1) Dosya OPEN komutu ile OUTPUT modunda almaldr. rnein, OPEN PERS FOR OUTPUT AS #1 komutu ile PERS adl dosya bilgi kayd iin 1 numara ile almaktadr. Dosya ad, bir string sabiti ya da bir string deikeni, olabilir. Aadaki OPEN komutu da geerlidir:

VISUAL BASIC LE YAZILIM GELTRME OPEN X$ FOR OUTPUT AS #2 Dosyann numaras, alan dosyaya zg bir bilgi deildir. Sadece o alma modunda, dosyann bellekle evre bellek arasnda hangi giri-k kanaln (Input-Output Channel veya I/O Channel) kullanacan belirler. Bu anlamda, bir dosya her alma modunda ayr bir giri-k kanaln kullanabilir. Dolays ile her alma esnasnda farkl bir numara ile alabilir. Birden fazla dosya, ayan anda ayn numaray kullanamaz. Dosya adnn, kullanlan iletim sistemine ait kurallara uygun olmas gerekir. Bununla ilikili olarak aadaki bilgiler yararl olacaktr: DOS LETM SSTEMNDE DOSYA SMLENDRME KURALLARI a) Dosya adn en fazla 8 karakter olabilir. Bir nokta sembol ile ayrlm uzants ile 3 karakter uzunluundadr. RNEK: Per sonel.Dat Dosya Ad(File Name) Nokta Ayrac Uzants(Extencion) b) Dosya ad iin kullanlabilecek karakterler: A-Z aras harfler ( ) { } @ # $ % 0-9 aras rakamlar & ! - _ , / ~ c) Kk harfler, otomatik olarak byk harfe evrilir. d) \ ? : * >< | karakterleri, dosya ad iinde kullanlamaz. WINDOWS 95 VE WINDOWS NT LETM SSTEMLER N DOSYA SMLENDRME KURALLARI a) Dosya isimleri 255 karakter uzunlua kadar olabilir. b) Dosya isimleri iinde, boluk karakteri kullanlabilir. c) Dosya isimleri iin yukardaki DOS karakterleri geerlidir. d) \ ? : * >< | karakterleri, dosya ad iinde kullanlamaz.

VISUAL BASIC LE YAZILIM GELTRME 2) Dosyann almasndan sonra, dosyaya bilgi kaydetmek iin PRINT# veya WRITE# komutlar kullanlabilir. rnek: PRINT #1, stanbul 15,000,000 komutu ile ak bulunan dosyaya bilgi aktarlabilir. Bu tip bir komut u ilemi gerekletirecektir: 1 No lu iletiim kanalndan bilgi aktarm yaplan dosyaya stanbul 15,000,000 bilgisi aynen aktarlacaktr. Dosyaya sembolleri gnderilmeyecektir. Aktarlan bilginin sonunda da otomatik olarak CHR$(13)+CHR$(10) karakterleri yerletirilecektir. Dosyann grn stanbul 15,000,000 CHR$(13) CHR$(10) Kayt Balangc Kayt Sonu Gerekte, PRINT komutu ekran zerine hangi prensiplerle bilgi aktarlyorsa, PRINT# komutu da, dosyaya ayn prensiplere gre bilgi aktarr. Nasl ki, PRINT komutu, bilgiyi ekrana aktardktan sonra otomatik olarak satr ba yapyorsa, PRINT# de buna kar gelen CHR$(13)+CHR$(10) karakterlerini kayt sonuna eklemektedir. PRINT te olduu gibi, PRINT# komutunda da, en sona konulan ; sembol (veya, sembol), yeni satra geme ilemini iptal eder yani dosya, sz konusu olduu zaman bu durumda kayt sonuna CHR$(13)+CHR$(10) karakterleri eklenmeyecektir. rnek: PRINT #1, stanbul 15,000 ,000 ; Komutu ile dosyann grn: stanbul 15,000,000 eklinde olacaktr.

VISUAL BASIC LE YAZILIM GELTRME WRITE# KOMUTU WIRITE# komutu, PRINT# komutundan farkl olarak listedeki tm elemanlar dosyaya gnderir. Bu nedenle, WIRITE# listedeki deiken veya sabitleri birbirinden ayran, ya da; sembolleri de dosyaya aktarlr. Ayrca WIRITE# komutu, PRINT# den farkl olarak listedeki mevcut string sabitlerine ait sembollerini de dosyaya yerletirir. RNEK: WIRITE# ve PRINT# komutlar arasndaki fark grebilmek iin aadaki uygulamay gerekletirelim: 1)Aadaki olay prosedrn oluturunuz: 2)Run/Start ile program altrnz. Formu clickleyiniz. Bylece PRINT# komutu x ve WIRITE# komutu da y dosyasna kayt yapacaktr. imdi dosya ieriklerini grmek isteyelim Bunun iin eitli imkanlar vardr. Biz burada aadaki yntemi kullanacaz: 3)Windows 95/98/Me in Explorer nn (veya Windows 3.x in File Manager ) arnz. Burada Visual Basic in ykl olduu dizini seiniz.

VISUAL BASIC LE YAZILIM GELTRME 4)Bu dizin iinde yukarda altrdnz olay prosedrnn oluturduu x dosyasn double-click ile arnz. Karnza aadaki ekran gelecektir:

VISUAL BASIC LE YAZILIM GELTRME Burada WORDPAD i iaretleyiniz ve OK butonunu seiniz. PRINT# komutunun oluturduu x dosyasnn grnm karmza gelecektir. PRINT# komutunun oluturduu x dosyasnn grnm 5)imdi ayn yntemle, WRITE# komutunun oluturduu y dosyasna eriiniz. Bu dosyann aadaki grnmde olduunu greceksiniz: WRITE# komutunun oluturduu y dosyasnn grnm

VISUAL BASIC LE YAZILIM GELTRME 3) Dosyaya kayt ilemi bittikten sonra, dosyann CLOSE komutu ile kapatlmas gerekir. CLOSE komutu, dosyann, kulland haberleme kanal ile olan balantsn kesecektir. CLOSE komutu aadaki ekillerde kullanlabilir: a) CLOSE #1 ,#2 Bu komut ile, ak bulunan 1 ve 2 No lu dosya balantlar kapatlmaktadr. b) CLOSE Burada olduu gibi, CLOSE komutunda, dosya numaras belirtilmezse, o esnada ak bulunan tm dosyalar kapatlacaktr. SIRALI ERML DOSYALARDAN BLG OKUMA Sral eriimli bir dosyadan bilgi okumak iin aadaki admlar izlenmelidir: 1) Dosya OPEN komutu ile INPUT modunda almaldr. rnein OPEN x FOR INPUT As #1 komutu ile x isimli sral eriimli dosya okuma yapmak amac ile INPUT modunda almaktadr. 2) Dosyadan okuma yapabilme amac ile INPUT# veya LINE INPUT # komutlarndan biri kullanlr. Ya da dosyay karakter baznda okuyabilmek amac ile INPUT$ fonksiyonundan da yararlanlabilir. INPUT# KOMUTU Yazl biimi INPUT #Dosya Numar as, Deiken listesi eklindedir. Numaras belirtilen dosya iinden, virgllerle ayrlm olan her veriyi ayr bir deikene atayarak okuma yapar. Verilerle deikenler say ve tr olarak uyumaldr. RNEK: x dosyasnda aadaki bilgiler olsun: Ahmet Okan ,34,67000000 OPEN x FOR INPUT As 1 eklinde alm olan x dosyasndan INPUT#1, AD$,YAS,MAAS komutu ile okuma yaplrsa

VISUAL BASIC LE YAZILIM GELTRME AD$= Ahmet Okan YAS=34 ve MAAS=67000000 deerleri atanacaktr. Hata ve karklklar minimize etmek iin INPUT# komutu daima WRITE# komutu ile birlikte kullanlmaldr. LINE INPUT# KOMUTU Yazl biimi LINE INPUT #Dosya Numar as, Str ing Tr Deiken eklindedir. Belirtilen dosya numaras ile ilikili dosyada Enter(CHR$(13)) veya CHR$(13)+CHR$(10) karakter ikilisi ile karlaana kadar grd btn karakterleri listesindeki String tr deikene ykler. Bu komutun da daha ziyade PRINT# komutu ile ilikili olarak kullanlmas uygun olacaktr. RNEK: x dosyas aadaki bilgiyi iersin: Ahmet Okan ,34,67000000 Bu dosyay OPEN x FOR INPUT As 1 komutu ile anz. Sonra LINE INPUT#1, G$ eklinde okuma yaparsanz ve PRINT G$ ile yazdrrsanz form zerinde Ahmet Okan ,34,67000000 stringi grntlenecektir. Yani, LINE INPUT# komutu, dosyada enter karakteri grene kadar olan tm karakterleri( ve , sembolleri de dahil) G$ iine yklemitir. INPUT$ FONKSYONU Bir dosyadan, belirtilen sayda karakter okuma imkan salayan bir fonksiyondur. Yazl biimi Str ing Deikeni = INPUT#( Okunacak kar akter says, Dosya numaras) eklindedir. RNEK: x dosyas Ahmet Okan ,34,67000000 bilgilerini iersin. Bu dosyay OPEN x FOR INPUT As 1 komutu ila aarak X$=INPUT$(5,1) komutu uygularsanz ve PRINT X$ ile bu deikeni yazdrrsanz.

VISUAL BASIC LE YAZILIM GELTRME Ahme sonucunu alacaksnz. sembol de dahil ilk 5 karakter dosyadan okunmutur. EOF FONKSYONU EOF (end of file) fonksiyonu, sral eriimli bir dosyada, dosya sonuna eriilip eriilmediini kontrol eden bir fonksiyondur. Okuma esnasnda dosya sonuna eriilmise fonksiyonun deeri True olacaktr. Yazl biimi, EOF(Dosya Numar as) eklindedir. Sral eriimli bir dosyadan okuma yaplrken, EOF fonksiyonu genellikle aadaki biimde kullanlr: .......... OPEN x FOR INPUT AS 1 DO UNTIL EOF(1) .......... INPUT#1,Deiken listesi .......... LOOP Bu kontrol yaps ile, #1 No lu dosyadan, bu dosya sonuna eriilene kadar okuma yaplacaktr. Fr eeFile FONKSYONU Bir programda, o esnada kullanlmam olan ilk dosya numarasn verir. zellikle ok sayda dosya alan uygulamalarda, programcnn yanllkla ayn dosya numarasn kullanmasn nlemek asndan yaraldr. Aadaki gibi kullanlabilir: D%=Fr eeFile OPEN x FOR INPUT AS #D% 3) Sral eriimli dosyadan okuma ilemi bitince, dosya gene CLOSE komutu ile kapatlmaldr.

VISUAL BASIC LE YAZILIM GELTRME SIRALI ERML BR DOSYAYA BLG EKLEME Sral eriimli bir dosyaya bilgi eklenmesi iki trl olabilir: a)En sondan itibaren ekleme b)Araya kayt girme a)En sondan itibaren ekleme Bunun iin aadaki admlar izlenir: 1.Dosya APPEND modunda alr OPEN x FOR APPEND As 3 2)Dosyaya bilgi kayd gene PRINT# veya WRITE# komutlar ile gerekletirilecektir. Ancak bu kez, APPEND modunda alld iin, dosyaya bilgi aktarm dosyann sonundan itibaren olacaktr. 3)Ekleme ilemi bitince, dosya CLOSE komutu ile kapatlr. b) Araya kayt girme ilemi ise, sral eriimli dosyalarda gncelleme(update) ilemi veya kayt silme ilemi iin kullanlan teknie benzer tekniklerle gerekletirilir. Aadaki blmde bu teknikler anlatlmaktadr. SIRALI ERML BR DOSYADAK BLGLERN DETRLMESGNCELLEME(UPDATE) LEM Sral eriimli bir dosyada kaytl bilgile zerinde deiiklik yapmak gerektii zaman, yardmc bir dosyaya ihtiya olacaktr. Bunun sebebi aikardr(aktr). Orijinal dosyadan nce deitirilecek bilgiyi okumak yani bu bilgiye erimek zorunludur. Bu ilem, dosyann INPUT modunda almasn gerektirir. Deitirilecek bilginin yeni ierii ise dosyaya kaydetmek iin dosyann OUTPUT modunda almas gerekir. Sral eriimli bir dosya ayn anda iki farkl modda(hem INPUT hem de OUTPUT) alamayaca iin, yardmc bir dosya gerekecektir. Gncellemenin admlar aadaki gibidir:

VISUAL BASIC LE YAZILIM GELTRME 1)Orijinal dosya INPUT modunda alr. 2)Yardmc dosya OUTPUT modunda alr. 3)Orijinal dosyadan bilgi okunur. Bu bilgi, deitirilecek bir bilgi ise, bu bilginin yeni ierii yardmc dosyaya aktarlr. Deitirilmeyecek bir bilgi ise, aynen yardmc dosyaya aktarlr. 4)Orijinal dosyada ktk sonu(end of file) oluana kadar bu ilem srdrlr. 5)Orijinal dosyada ktk sonu oluunca, dosyalar kapatlr. Orijinal dosya silinir. Yardmc dosyann ad, orijinal dosya ad ile deitirilir. RNEK UYGULAMA: imdi aadaki bilgiyi gznne alalm: Personel Sicil No Ad Brt Maa(Milyon TL) 1 Fatih rek 80 2 Aldo 70 3 Yldo 140 4 kuum Aydn 130 Bu bilgiyi Per sonel adl bir dosyaya yklemek iin aadaki admlar izleyebilirsiniz: 1)Form zerine bir komut butonu yerletiriniz. 2)Komut butonunun Caption zelliini KAYIT olarak deitiriniz. 3)Komut butonunun zerine double-click yaparak kod penceresini anz ve aadaki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME 4)Run/Start ile projeyi altrnz. Aadaki ekran gelecektir:

VISUAL BASIC LE YAZILIM GELTRME 5)Komut butonunu clickleyiniz. Aadaki ekran gelecektir: Burada ilk personelin sicilini girerek OK butonunu seiniz. 6)Aadaki ekran gelecektir. Bu ekranda ilk personelin adn ve soyadn girerek OK butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME 7)Son olarak aadaki ekranda, ilk personelin brt maan girerek OK butonunu seiniz. 8)imdi aadaki ekran gelir. Burada bilgi girmeye devam etmek istediimiz iin e tuuna basarak OK butonunu semeliyiz.

VISUAL BASIC LE YAZILIM GELTRME 9)Ayn ekilde dier personelin bilgileri de girilerek en son diyalog penceresinde e/h sorusuna h cevabn vererek kayt ilemini sona erdiriniz. 10)imdi personel adl dosyadan bilgileri okuyarak maalara %23 zam yapacak bir gncelleme program yazmak isteyelim. Bunun iin nce forma double-click yaparak Tools/Add Procedur e mensn seiniz. Diyalog penceresinde Name kutusuna guncelle yazarak OK butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME Gelen kod penceresine aadaki kodu giriniz: 11) imdi guncelle adl prosedr altrmak iin, form zerine bir komut butonu yerletirerek komut butonunu Caption zelliini GNCELLE olarak deitiriniz. 12)Komut butonunu iki kez tklatarak kod penceresini anz. 13)Kod penceresine aadaki kodu giriniz: 14)Run/Star t ile projeyi altrnz. Aadaki ekran gelince Gncelle butonunu tklatnz.

VISUAL BASIC LE YAZILIM GELTRME 15)imdi personel isimli dosyadaki maalar %23 zam yaplarak gncellenmitir. Program Run/End mens yardm ile durdurunuz. 16)Windows Explorer veya File Manager ile, yukarda anlatld gibi personel dosyasnn iine bakabilirsiniz. Bunu gerekletirirseniz sonu ekrannda aadaki data grlecektir. Bu data incelenirse, ilk girilen maalarn gerekten de %23 orannda arttrld gzlenebilir. rnein 80 milyonluk maa 98.4 milyon, 70 milyonluk maa ise 86.1 milyon olmutur.

VISUAL BASIC LE YAZILIM GELTRME 17) Personel isimli dosyay okumak amac ile aadaki yol da izlenebilir: Form zerine bir komut butonu yerletirerek Caption zelliin OKUMA yaplr. Bu buton ile ilikili aadaki kod girilir: Sub Command3_Click okuma End Sub 18)Tools/Add Procedure men admlar ile okuma ad verilen bir prosedr oluturulur. 19)Run/Start ile proje altrlp OKUMA butonu seilirse, personel dosyasnn ierii listelenecektir.

VISUAL BASIC LE YAZILIM GELTRME Okuma adl prosedr ile Personel dosyasnn listelenmi ekli RichTextBox KONTROL NESNES LE DOSYA OKUMA Windows 95/98/Me altnda, Visual Basic 6.0 n Professional Edition veya Enterprise Edition alyorsanz, sral eriimli bir dosyann ieriini dorudan doruya bir RichTextBox kontrol nesnesinin iine okuyabilirsiniz. Bu amala, aadaki ilemleri gerekletiriniz: 1)Form zerine bir RichTextBox kontrol nesnesi yerletiriniz.Bunun ad, otomatik olarak RichTextBox1 olarak atanacaktr. 2)Form zerine bir komut butonu yerletiriniz ve Caption zelliini YKLE eklinde deitiriniz. 3)Double-click ile komut buton kontrol nesnesinin kod penceresini getiriniz ve aadaki kodu giriniz: Private Sub Command1_Click() RichTextBox1.LoadFile "C:\vb\personel", rtfText End Sub

VISUAL BASIC LE YAZILIM GELTRME 4)Run/Start ile projeyi altrnz. YKLE butonunu clickleyiniz. RichTextBox1 iine, personel adl dosyann ierii yerleecektir. Bir RichTextBox nesnesinin ierii ise SaveFile metodu ile diskete saklanabilir: rnein:R ichTextBox1.Savefile c:\vb\pers1 ,rtfText eklinde bir komut, RichTextBox nesnesinin o andaki ieriini pers1 adl dosyada belirtilen dizin altnda saklayacaktr. NOT: LoadFile ve SaveFile metodlarnn uygulanabilmesi iin, Windows 95/98/Me veya Windows NT 3.51 iletim sistemleri ile allyor olmas zorunludur. SIRALI ERML BR DOSYADAN KAYIT SLME Personel isimli dosyadaki baz kiiler irketten ayrlm olabilir. Bunlarla ilikili kaytlar personel dosyasndan silmek gerekecektir. Bu ilemin teknii gncelleme ile ayndr. Aada gerekli admlar verilmitir: 1)Orijinal dosya INPUT modunda alr 2)Yardmc dosya OUTPUT modunda alr. 3)Orijinal dosyadan bilgi okunur. Bu bilgi, silinecek bir bilgi ise, bu bilgi yardmc dosyaya aktarlmaz. Silinmeyecek bir bilgi ise, aynen yardmc dosyaya aktarlr. 4)Orijinal dosyada ktk sonu(end of file) oluana kadar bu ilem srdrlr. 5)Orijinal dosyada ktk sonu oluunca, doyalar kapatlr. Orijinal dosya silinir. Yardmc dosyann ad, orijinal dosya ad ile deitirilir. Gerekli bilgisayar kodu ise aada verilmitir: Open "personel" For Input As 1 Open "yardimci" For Output As 2 xx = InputBox("silinecek sicil no", "personel", "") Do Until EOF(1) Input #1, sicil, ad, brutmaas If sicil <> xx Then Write #2, sicil, ad, brutmaas End If

VISUAL BASIC LE YAZILIM GELTRME Loop Close Kill personel Name yardimci As Personel Kodda kolayca grld gibi, silinecek kayda ait sicil no xx deikenine yklenmekte ve bu dosyadan okunan sicillerle mukayese edilmektedir. xx e eit olamayanlar yardmc dosyaya aktarlmakta(yani silinmiyorlar), sadece xx no lu sicilli personel yardmc dosyaya aktarlmamakta(yani silinmektedir.) RASTGELE ERML DOSYALAR(RANDOM FILES) Bu tip dosyalar aadaki zelliklere sahiptirler: 1)Rastgele eriimli dosyalarn kayt(record) uzunluklar sabittir. Bu uzunluk ayrca dosya OPEN komutu ile alrken LEN=ifadesi ile de belirtilir: OPEN kitap AS 1 LEN=100 Bu komut ile, kitap adl bir rastgele eriimli bir dosya kayt uzunluu 100 byte olarak almaktadr. 2)Rastgele eriimli dosyalarda, sral eriimli dosyalarda olduu gibi farkl alma modlar(OUTPUT,INPUT,APPEND) yoktur. Rastgele eriimli dosya alnca ayn anda hem kayt hem de okuma yaplabilir. 3)Rastgele eriimli dosyann herhangi bir kaytna dorudan erimek mmkndr. Bunun iin sadece eriilmek istenen kayt numarasn belirtmek gerekir. 4)Bir rastgele eriimli dosya 16,777,216 tane kayt ierebilir. RASTGELE ERML DOSYALARA KAYIT Bir rastgele eriimli dosyann bir kayt iersinde hangi bilgilerin(alanlar) bulunaca Type-End Type yaps ile belirtilebilir: rnein, Type Pers Sicil As String * 8 Ad As String * 10 Soyad As String * 10 Brut As Double End Type

VISUAL BASIC LE YAZILIM GELTRME eklinde, personel ile ilikili bilgiler ieren bir rastgele eriimli dosyann kayt yaps tanmlanabilir. Bu tanmlamadan sonra, Dim Personel As Pers eklinde bir tanm, Personel adl veri yapsn Pers tipinde oluturacaktr. Buna gre PUT#1,5,Personel eklindeki bir komut ile de #1 No lu dosyann 5.Kaytna Personel adl veri yapsnn iindeki tm bilgiler kaydedilecektir. Dorudan eriimli dosyalarda, yukarda grld gibi, istenilen kayta, kayt numaras verilerek eriilebilir. DORUDAN ERML BR DOSYADAN KAYIT OKUMA Bu amala kullanlan komut GET komutudur. GET #1,5,Personel eklinde bir GET komutu ile, #1 Numara ile alm olan dosyann 5. Kaytndaki bilgi Personel adl veri yaps iine yerleir. RNEK UYGULAMA: Dorudan eriimli bir dosyaya bilgi kaydn ve dosyadan bilgi okuma ilemini gerekletirecek bir uygulama gelitirmek istiyoruz. Bu amala aadaki admlar gerekletiriniz: 1)Project/Add Module mensn seerek aadaki kayt tanmn giriniz:

VISUAL BASIC LE YAZILIM GELTRME 2)Form zerine bir komut butonu yerletiriniz ve Caption zelliini KAYIT olarak deitiriniz. 3)KAYIT butonuna double-click ilemi uygulayarak kod penceresini getiriniz ve aadaki kodu giriniz:

VISUAL BASIC LE YAZILIM GELTRME 4)Form zerine yeni bir komut butonu yerletiriniz. Caption zelliini OKUMA yapnz. 5)OKUMA butonunu ift tklayarak kod penceresini getiriniz ve aadaki kodu giriniz. Pr ivate Sub Command2_Click() Dim person As Pers Open "pers" For Random As #1 Len = 36 n = LOF(1) / 36 For i = 1 To n Get #1, i, person Print person.Sicil; person.Ad; person.Soyad; person.Brut Next i Close End Sub 6)Run/Start men admlarn seerek uygulamay altrnz. ekil F.1 deki ekran gelir. Burada KAYIT butonunu tklaynz. ekil F.2 deki ekran gelecektir. Burada ilk personele ait sicili girerek OK

VISUAL BASIC LE YAZILIM GELTRME butonunu seiniz. Daha sonra gelen giri ekranlarnda ayn ekilde bilgi girii gerekletirerek bilgi girii bitince e/h sorusuna h cevabn vererek bilgi giriini sona erdiriniz. ekil F.1- Dorudan eriimli dosya- Kayt ve Okuma Uygulamas ekil F.2 - Kaytta ilk adm 7)OKUMA butonunu tklaynz. Dorudan eriimli dosyaya kaydettiiniz bilgiler ekil F.3 teki gibi listelenecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil F.3 Dorudan eriimli dosyadan okuna bilgiler KL DOSYALAR(BINARY FILES) Bu tip dosya eriimi, daha nce PC-BASIC te bulunmayan ve Visual Basic e ilave edilmi olan eriim biimidir. kili dosyalara eriim Byte dzeyinde olabilmektedir. Bu anlamda, dosyadaki bilgiye byte byte eriilebilir. Belirli bir byte tan balayarak bilgi okunabilir veya belirli byte tan balayarak dosyaya bilgi yazlabilir. KL DOSYALARDAN BLG OKUMA kili dosyadan bilgi okuma da GET komutu ile gerekletirilir. Bu komut: GET #DosyaNo, Pozisyon, ByteDizisi eklindedir. DosyaNo su ile belirli dosyadan belirtilen pozisyondaki byte tan balayarak, ByteDizisi nin boyutu kadar byte okunabilir.

VISUAL BASIC LE YAZILIM GELTRME KL DOSYAYA BLG KAYDI PUT komutu ile gerekletirilir. PUT komutunun yaps GET komutuna benzer. Yazl biimi PUT #DosyaNo,Pozisyon,ByteDizisi eklindedir. DosyaNo su ile belirtilen dosyaya, Pozisyon ile belirtilen byte tan balayarak ByteDizisi kadar bilgi kaydeder. RNEK UYGULAMA: Bu uygulamada 1 den 100 e kadar tam saylar bir dizi iine yklenerek ikili bir dosyaya aktarlacak ve sonra dosyadan okunan ekrana yazdrlacaktr. Bu amala aadaki admlar izleyiniz: 1)Form zerinde KAYIT ve OKUMA adl iki komut butonu oluturunuz. 2)OKUMA butonu iin ekil F.4 teki kodu giriniz. 3)KAYIT butonu iinse ekil F.5 teki kodu giriniz. 4)Run/Start mensn seerek uygulamay altrnz. nce KAYIT butonunu tklatnz. 5)OKUMA butonunu tklattnz zaman ekil F.6 daki gibi, 1 den 100 e kadar tam saylarn ikili dosyadan okunarak ekrana aktarldn greceksiniz ekil F.4 kili dosyaya bilgi kayd iin prosedr

VISUAL BASIC LE YAZILIM GELTRME ekil F.5 kili dosyadan bilgi okum prosedr ekil F.6 kili dosyadan okunan veriler

VISUAL BASIC LE YAZILIM GELTRME SEEK KOMUTU kili bir dosyada, dosya gstergesini(file pointer ) arzu edilen byte n zerine getirmeyi salar. Yazl biimi SEEK#DosyaNo,Pozisyon eklindedir. rnein SEEK#1,15 eklinde kullanlrsa, bundan sonraki bir okuma veya yazma ilemi 15, Byte tan balayacaktr. SEEK komutu, SEEK(DosyaNo) eklinde de kullanlr. Bu durumda bir ikili veya sral eriimli dosyadan en son okunmu olan byte n pozisyonunu verecektir. SEEK komutunun, rastgele eriimli dosyalar iin de kullanlmas sz konusudur. #1, bir rastgele eriimli dosya ise, SEEK(1) ifadesi bize, bu rastgele eriimli dosya iin en son eriilmi kayttan bir sonraki kaytn numarasn gnderir. RNEK UYGULAMA: 1)ekil F.7 deki olay prosedrn oluturarak Run/Star t ile altrnz. ekil F.7 Rastgele eriimli dosyada SEEK komutu uygulamas

VISUAL BASIC LE YAZILIM GELTRME ekil F.8 SEEK komutu ktlar ekil F.8 deki ktlarda v deikeni, GET komutlarndan nceki dosya pozisyonunu, n deikeni ise GET komutu icra edildikten sonraki dosya gstergesi pozisyonunu gstermektedir. NOT: Bu rnei altrmak iin rnei kaydettiiniz yerde daha nceki rneklerde oluturduunuz pers dosyasn koyabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 27 VISUAL BASIC TE REKRSF LEMLER

VISUAL BASIC LE YAZILIM GELTRME REKRSF PROSEDR NE DEMEKTR? Visual Basic, dier baz modern programlama dilleri gibi, rekrsif ilemlere izin vermekte ve rekrsif prosedr yapsn iermektedir. Rekr sif prosedr ,(ng. Recur sive procedur e) kendisini ar abilen prosedr demektir. Rekrsif szc yerine, baz kiiler, z yineli szcn de kullanmaktadrlar. Baz algoritmalar, doalar gerei, rekrsiftirler. En ok bilinen rekrsif algoritmalardan biri,faktryel hesab algoritmasdr. Matematikte. Matematikte faktryel n!:1.2.3..........n eklinde, tanmlanmaktadr. 0!=1 dir. Negatif saylarn ise faktryeli tanmszdr. imdi ,yukardaki ifadeyi n!=1.2.3.....n=F(n) eklinde tanmlarsak 1.2.3. (n-1) ifadesi de bu durumda F(n-1) eklinde dnlebilir. Buna gre, n!=1.2.3...n=F(n)=1.2.3....(n-1).n=F(n-1).n ifadesi yazlabilir. imdi F(n)=F(n1).n ifadesi rekrsif bir ifadedir. Bu tr bir rekrsif ifadeyi, Visual Basic te rekrsif bir fonksiyon ile hesaplatabiliriz. Bu rnek iin, aadaki admlar izleyiniz. 1)Form zerine bir komut butonu yerletirerek Caption zelliini FAKTRYEL olarak deitiriniz. 2)Komut butonunu double-click ilemine tabi tutarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Command1_Click() Dim f As Long u = InputBox("Faktryeli hesaplanacak say...", , "") n = Val(u) f = FAK(n) If f > 0 Then MsgBox f, , Str(n) + "!=" End If End Sub 3) Formun kod penceresinde iken Tools/Add Procedur e mensn seiniz ve gelen ekran aadaki gibi doldurarak OK butonunu seiniz:

VISUAL BASIC LE YAZILIM GELTRME 4)Gelen kod penceresine, ekil R.1 deki kodu giriniz. ekil R.1 - Rekrsif faktryel kodu 5)Run/Start ile uygulamay icra ediniz. Komut butonunu mouse ile tklaynz. ekil R.2 deki pencerede 5 deerini giriniz ve OK butonunu seiniz. 6) ekil R.3 teki sonu elde edilecektir. 7)OK butonunu setikten sonra FAKTRYEL adl komut butonunu tekrar clickleyerek bu kez 7 saysn girerseniz ekil R.4 teki mesaj alrsnz. ekil R.2 - Faktryeli hesaplanacak saynn girilii

VISUAL BASIC LE YAZILIM GELTRME ekil R.3 5 saysnn faktryeli 120 olarak bulunur. ekil R.4 Negatif Saynn faktryeli QUICKSORT(HIZLI SIRALAMA) SIRALAMA ALGORTMASI ok nl ve rekrsif zellikteki sralama algoritmalarndan biri de QuickSor t sralama algoritmasdr. QuickSort algoritmasnn dier bir ad da PartitionExchangeSor t (Paralama-Yerdeitirme Sralamas) tur. QuickSort algoritmas, zellikle byk veri tablolarnn sralanmasnda olduka iyi performans gsteren bir sralama algoritmasdr. Yntemin esas, veri iinden seilecek bir anahtar deerine gre, sralanacak tabloyu ikiye paralamaktr. yle ki , ilk para iindeki veriler anahtarlardan kk, ikinci para iindeki veriler ise, anahtarlardan byk olacaktr. Anahtar eleman pivot adn da alr. Daha sonra bu iki para da kendi ilerinde, ayn prensibe gre ikier paraya ayrlr ve bu ilem veri sralanana kadar srer. rnein, eklinde bir veri mevcutsa ve ilk eleman pivot seilirse, ilk paralama , eklinde olacaktr. imdi aadaki admlar izlerseniz, QuickSor t algoritmas ile, rasgele retilmi olan bir veri dizisini sralayan bir proje gelitirmi olacaksnz.

VISUAL BASIC LE YAZILIM GELTRME 1) Form zerine bir komut butonu yerletirerek Caption zelliini, QIUCKSORT LE SIRALAMA olarak deitiriniz. 2)Komut butonu zerinde, double-Click ilemi uygulayarak kod penceresini getiriniz ve aadaki kodu giriniz: Pr ivate Sub Command1_Click() For i = 1 To 15 v(i) = Int(Rnd() * 1000) Next i v(16) = 99999999 Call QUICKSORT(v(), 1, 15) Form1.Show For i = 1 To 15 Form1.Print v(i) Next i End Sub 3)Formun kod penceresini double-click ile getirerek Tools/Add Procedur e men admlarn izleyiniz. Gelen pencereyi ekil R.5 teki gibi doldurunuz. OK butonunu seiniz. 4)Gelen kod penceresine aadaki kodu giriniz: Public Sub PARCALA(v(), ilk, son, s) 1=ilk u = son + 1 k = v(ilk) d = False Do While Not d 1=1+1 Do While v(1) < k 1=1+1 Loop u = u - 1 Do While v(u) > k u = u - 1 Loop If 1 < u Then e = v(1)

VISUAL BASIC LE YAZILIM GELTRME v(1) = v(u) v(u) = e Else: d = True End If Loop e = v(ilk) v(ilk) = v(u) v(u) = e s = u End Sub ekil R.5- PARCALA Prosedrnn tanmlanmas 5)Ayn ekilde Tools/Add Procedur e yolunu seerek gelen pencerede QUICKSORT ad ile bir Sub tipi genel prosedr tanmlayarak OK butonunu seiniz. Gelen kod penceresine aadaki kodu griniz: Public Sub QUICKSORT(v(), alt, ust, s) Call PARCALA(v(), alt, ust, s) Call QUICKSORT(v(), alt, s - 1) Call QUICKSORT(v(), s + 1, ust) End If End Sub 6) Formun General/Declarations blmne aada ekil R.6 da grlen tanmlar giriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil R.6 - Form dzeyinde geerli verilerin tanmlanmas 7) Run/Star t ile uygulamay altrnz. Komut butonunu tklaynz. ekil R.7 de grld gibi, rasgele retilmi 15 adet saynn sralanm olduunu greceksiniz. ekil R.7 QuickSort algoritmas ile sralanm olan veriler

VISUAL BASIC LE YAZILIM GELTRME BLM 28 VISUAL BASIC N VER TABANLARI LE ETKLEM

VISUAL BASIC LE YAZILIM GELTRME VER TABANI SSTEM Veri Taban kavram, bilgi ilem dnyasnda uzun tecrbe ve aamalardan sonra ulalm bir kavramdr ve klasik dosya ynetimine bir alternatif olarak ortaya kmtr. Klasik bir dosya ynetim srecinde en nemli zellik uygulamaya baml olmaktr; yani bir dosya hangi yazlm tarafndan oluturulmusa o yazlma baml olarak dosyaya eriilebilir; oysa veri yaban ynetiminde prensip olarak veri-uygulama bamszl vardr; yani bir kez oluturulmu verilere teorik olarak her tr programlama dili ya da uygulama program ile erimek imkan vardr. Bu zelliin doal sonucu olarak, veri taban sisteminin sorgulanmasnda(veri taban iinden belirli koullar salayan verileri almak) standart bir sorgulama dili kullanlr; bu dilde halen SQL (Structured Query Language - Yapsal Sorgulama Dili) dir. SQL dili dier programlama dilleri ile etkileim iindedir. Bu anlamda Visual Basic iinden ya da C veya COBOL dili iinden SQL dilini kullanmak imkan vardr. Veri taban sistemi( Data Base System) Ver i Taban ve bunu ynetecek olan zel bir yazlmdan oluur. Bu zel yazlm Ver i Taban Ynetim Yazlm (Data Base Management Softwar e) adn alr. rnein , ACCESS DBASE 5, ORACLE gibi yazlmlar bu tr yazlmlardr. VER TABANI Veri Taban (Data Base, birbiri ile ilikili veriler topluluudur. Veri taban sadece veri deil, onlar arasndaki ilikileri de saklar. Bugn kullanlan ilikisel modele dayal(relational model) modern veri tabanlar, Tablo(Table) denilen elemanlardan oluur. VISUAL BASIC VE VER TABANI YNETM Visual Basic 6.0 ile, klasik Basic dosyalarn oluturup ynetmenin yannda, Veri Taban yaratmak, Veri Tabann sorgulamak, mevcut veri tabanlarna erimek te mmkn olmaktadr.

VISUAL BASIC LE YAZILIM GELTRME Visual Basic in Professional Edition ve Enterpr ise Edition adl versiyonlarnda, SQL komutlar tamam ile ykldr; dolays ile bu komutlarla Veri Taban yaratmak ve sorgulamak mmkn olacaktr. Visual Basic in Standard Edition adl versiyonunda ise SQL komutlarnn bir alt kmesi mevcuttur. Standard Edition da Veri Taban ynetimi iin en etkin nesne Grsel Veri Yneticisi(Visual Data Manager ) adl nesnedir. Aadaki blmde bu nesne anlatlacaktr. GRSEL VER YNETCS(VISUAL DATA MANAGER) Grsel veri yneticisi, Visual Basic 6.0 n tm versiyonlarnda, Add Ins/Visual Data Manager men admlarn izleyerek eriilebilecek bir bileendir. Visual Basic in Standard Edition versiyonunda, Veri Yneticisi, bir veri taban oluturmak iin kullanlabilecek tek imkandr. Gerekte veri yneticisi, Visual Basic ten ayr olarak ta altrlabilecek bir uygulamadr. Veri yneticisinin dosya ad VISDATA dr. Add-Ins mensnden Visual Data Manager seerseniz karnza ekil D.1 deki ekran gelecektir. Burada File mens mouse yardm ile seilirse, ekil D.2 de grlen alt men seenekleri grntlenecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil D.1 - Grsel Veri Yneticisi( Visual Data Manager) balang mens ekil D.2 - Grsel Veri Yneticisi File mensnn alt menleri

VISUAL BASIC LE YAZILIM GELTRME GRSEL VER YNETCSN KULLANARAK YEN BR VER TABANI OLUTURMAK Grsel Veri Yneticisini kullanarak, mevcut olmayan bir veri taban ilk kez oluturmak iin aadaki admlar izleyebilirsiniz: 1)Add-Ins/Visual Data Manager men admlarn izleyiniz. ekil D.1 deki balang mens gelecektir. Burada File/New men admlarn izleyiniz. Alan aadaki men seeneklerinde arzu edilen veri taban ve versiyon numaras seilir. rnekte Access tipi bir veri taban seilmitir. Bu ilemden sonra ekil D.4 teki ekran gelecektir: ekil D.3 Access tipi Veri Tabannn 7.0 versiyonunun seilmesi ekil D.4 - Yeni bir Veri Tabannn-Balang ekran

VISUAL BASIC LE YAZILIM GELTRME 2) File Name kutusuna, oluturmak istediiniz veri tabannn adn yaznz. Bu, rnekte Pers1 olarak seilmitir. Access tipi veri taban oluacaktr ve uzants mdb dir. Save butonunu seiniz. 3)imdi ekil D.5 teki ekran gelmitir. Veritaban Penceresi (Database Window) zerinde mouse un sa tuuna baslnca alan men penceresinde New Table butonunu seiniz. ekil D.6 daki ekran gelecektir. Bu ekranda, Pers1.mdb adl veri tabannzn ilk tablosu Per sonel al tablo olduu iin, Table Name kutusuna Personel yazp Add Field butonunu tklaynz. Alan Add Field diyalog penceresinde Name kutusuna, personel tablosundaki ilk alan ad olan Sosyal Gvenlik Numarasn Sosy_g_no eklinde giriniz. Type kutucuuna ise, mouse ve bu kutunun yanndaki buton yardm ile Text veri ttn yerletiriniz. Bu trdeki bilginin alan ad uzunluu Size kutusuna 10 yazlarak belirtilir. Bylece, Sosyal gvenlik numarasn Text(metin tr- string veya karakter) bir bilgi olarak tanmlam oluyorsunuz. (ekil D.7) imdi bu alan Personel adl tabloya eklemek ve bir sonraki alan tanmlamak iin OK butonunu seiniz. ekil D.8 deki ekran gelir. ekil D.5- Yeni bir Veri Tabann oluturma-kinci adm

VISUAL BASIC LE YAZILIM GELTRME ekil D.6 - Veri Tabanna Tablo Ekleme ekil D.7 Personel adl tablonun alanlarnn tanmlanmas

VISUAL BASIC LE YAZILIM GELTRME ekil D.8 Personel tablosunun ad adl alannn tanmlanmas Burada Name yerine ad yaznz. Data Type Text seiniz. Tekrar OK butonunu seerek bir sonraki alan tanmna geiniz. Daha sonraki alanlar aadaki tabloda verilen isim, tr ve uzunluklarla(Size) giriniz: Alan Ad (Field Name) Ver i Tipi( Data Type) Boyut( Uzunluk-Size) sicil Integer soyad Text 10 dog_tar Date/Time N/A adres Text 50 cins Boolean N/A brut Double bol_no Integer yon_s_g_n Text 8 Sonuta ekil D.9 da grlen tablo oluacaktr. Build Table butonunu seiniz. ekil D.10 daki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil D.9 Personel Tablosunun Tanmlanm Hali ekil D.10 Personel Tablosu ve SQL sorgulama penceresi

VISUAL BASIC LE YAZILIM GELTRME ekil D.11 bolum tablosunun tanmlanmas 4) ekil D.5 teki ekran olduu gibi yine New Table seeneini seerek, Per s1.mdb adl veri tabanndaki ikinci tablo olan bolum tablosunu oluturmaya balaynz. (ekil D.11) bolum tablosunun alanlar aadaki gibidir. Alan Ad (Field Name) Ver i Tipi( Data Type) Uzunluk(Size) bolum_ad Text 15 bolum_no Integer y_sos_g_n Text 8 y_is_b_tar Date/Time Sonuta bolum adl tablo da tanmlanarak ekil D.12 deki ekran gelir

VISUAL BASIC LE YAZILIM GELTRME ekil D.12 - Pers1.mdb Ver Tabannn personel ve bolum adl tablolar 5)Tablolarn alan isimleri ve trleri tanmlandktan sonra yaplmas gereken i, her tablo alan iin en az birer alan indeks(index) olarak tanmlamaktr. Bu ilem, tablolara daha hzl eriimi salayacaktr. Bunun iin, nce ekil D.12 deki ekranda personel tablosunu seiniz ve mouse sa tuuna tklaynca alan men penceresinden Design men komutunu seiniz. Karnza ekil D9 daki ekran gelecektir. Aslnda bu ekran personel tablosunu oluturmak iin kullandmz ekrandr. Index oluturma iini tabloyu oluturmadan nce de gerekletirebiliriz. Biz, alan tanmlama ve index oluturma gibi bir tablo iin iki nemli ilemi, daha somut olarak birbirinden ayrmak iin farkl madde balklar altnda anlattk. Burada Add Index butonunu seiniz. ekil D.13 deki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil D.13 Add Index Penceresi ndeks tanmlama penceresinde Sos_g_n alann birincil index olarak tanmlamak istiyorsanz. Name kutsuna Sos_g_n yaznz. Mouse yardm ile listeden bu alann adn seiniz. Primary Index( Birincil ndex) kutusunu iaretleyiniz. Ayrca Unique kutusunu iaretleyiniz. Bylece tabloda, birbirinin ayn olan sosyal gvenlik numaralarnn yerlemesine engel olursunuz. OK butonunu seiniz. Personel tablosu Sos_g_n ya gre indekslenmitir. 6)imdi dier pencereleri Close ile kapatarak ekil D.12 deki pencereye dnnz. Burada bolum tablosunu seerek tablo iin bolum_no yu ayn ekilde bir incil index olarak ataynz. 7) u anda ulalan nokta, tablolarn alan isimleri, indeksleri ve veri trlerinin tanmlanm olmasdr. imdi, tanmlanan tablolar iine veri yklemek gerekecektir. nce personel tablosuna veri yklemek isteyelim. Bunun iin

VISUAL BASIC LE YAZILIM GELTRME ekil D.12 deki pencerede mouse yardm ile personel tablosunu seiniz. Mouse un sa tuu yardm ile Open men seeneini seiniz. 8) ekil D.14 de grlen ekran gelecektir. Bu ekran sayesinde, personel tablosuna ait ilk kayt (record) ya da ilk satr (row) girebilirsiniz. (ekil D.15) ekil D.14 Personel Tablosuna Bilgi Giri Ekran lk kayta ait bilgileri girdikten sonra Update butonunu seiniz; sonra Add butonunu seiniz. Karnza gelecek bo ekrana bu kez ikinci personel bilgilerini girerek bu ilemi tablo bitene kadar srdrnz. Tabloya bilgi girii bitince Close butonu ile tabloyu kapatnz. rnek data olarak aadaki tabloyu girdiinizi varsayalm: Per sonel Tablosu sicil sosy_g_n ad soyad dog_tar adres cins brut bol_no yo_s_g_n 112 27641 ali can 01/05/60 fatih .T. 80000000 1 037165

VISUAL BASIC LE YAZILIM GELTRME 178 37654 aye en 04/07/65 kadky .F. 70000000 1 037165 317 176241 akn ncel 11/07/64 skdar .T. 60000000 2 277143 517 37615 can ner 05/08/65 fatih .T. 40000000 2 277143 618 57253 beril meral 08/07/62 pendik .F. 37500000 2 277143 1540 44721 aye cansu 07/08/63 beikta .F. 48000000 3 577211 ekil D.15 Personel Tablosuna lk Kaytn Girilmesi 9) Ayn ekilde bolum tablosu da aadaki ekilde oluturulmu olsun: Bolum Tablosu bolum_ad bolum_no y_sos_g_n y_is_b_tar sat 1 037165 01/07/89 muhasebe 2 277143 02/08/91

VISUAL BASIC LE YAZILIM GELTRME retim 3 577211 04/06/92 Eitim 4 443421 01/05/91 Bilgi ilem 5 288111 05/02/92 TABLODAN BR KAYITIN SLNMES Update butonu ile tabloya kesin olarak kaydedilmi bir tablo satrn(kayt) silmek iin, bu satr aktif halde iken Delete butonunu semek gerekir. TABLONUN YAPISI ZERNDE DEKLK YAPMA Tablonun stun balklarn(alanlarn) deitirmek isteyebilirsiniz. Bu deiiklik alan isim ve trlerinde olabilecei gibi yeni alan ekleme ya da mevcut alanlar silme eklinde de olabilir. Bu amala aadaki ekil D.16 da grlen ekran getiriniz: ekil D.16 Veri tabanndaki tablolar ekil D.16 daki ekran, zerinde deiiklik yapmak istediiniz tabloyu mouse yardm ile seiniz. Sonra mouse' un sa butonunu tklatlnca alan

VISUAL BASIC LE YAZILIM GELTRME ekil D.16 da ki men penceresinden Design men komutunu seiniz. ekil D.17 deki ekran gelecektir. ekil D.17 Tablo yapsnda deiiklik iin alan ekran ekil D.17 de, deiiklik yaplmak istenen tablo alan Field List kutusundan mouse ile seilir. Table Structur e penceresinin sa tarafndaki kutularda bu tablo alan ile ilgili bilgile otomatik olarak doldurulur. Deiiklik yaplmasna izin verilen tablo alan zellikleri ile ilgili istenen deiiklikler bylece gerekletirilir. Add Field butonu seilirse tabloya yeni bir alan(stun) eklemek iin gerekli ekran gelecektir. (ekil D.18) Mouse yardm ile bir alan seilip Remove Field butonu tklanrsa, bu durumda da seilen alan tablodan silinecektir. MEVCUT BR VER TABANINDAK VERLERE ERM imdi Pr es1.mdb adl veri tabann oluturduumuzu ve iine veri yklediimizi biliyoruz. Visual Data Manager kapattmz varsayalm.

VISUAL BASIC LE YAZILIM GELTRME Visual Data Manger yeniden ykleyerek File mensnden Open Database / Microsoft Access i seelim. ekil D.19 daki ekran gelir. Burada Per s1.mdb yi seerek OK butonuna tklayalm. ekil D.18 Tabloya alan eklenmesi iin gerekli ekran ekil D.19 pers1.mdb adl veri tabannn almas

VISUAL BASIC LE YAZILIM GELTRME Bu durumda ekil D.20 deki ekran gelir. ekil D.20 Ver i tabanna ekr an Burada veri taban iindeki bilgileri incelemek iin iki yol vardr: 1) Sorgulanacak tabloyu mouse un sa butonu yardm ile seip Open men komutunu seerek veya sorgulanacak tablo zerinde ift tklayarak tabloyu amak. Bu durumda karmza ekil D.21 deki ekran gelecektir. Bu ekranda butonu ile tablonun ilk kaytna butonu ile de son kaytna gidebilirsiniz. butonu bir nceki kayta ve butonu ise bir sonraki kayta gidii salayacaktr. Bu ekranda, krsr indeksli alan zerinde iken Find butonu seilirse, belirtilen ifade tablo iinde aranr ve istenen kayt bilgileri grntlenir. Bir koul bildirerek sorgulama yapmak iin ise Query Builder men komutu seilir. ekil D.21 Veri tabann sorgulama ekran

VISUAL BASIC LE YAZILIM GELTRME ekil D.22 Koullu sorgulama ekran ekil D.22 deki ekranda rnein ad aye olan kiileri bulmak iin, Field Name alannda persone.ad alan seilir. Operator olarak = sembol ve Value olarak ta aye yerletirilir. List Possible Values butonu ile seilen alann ierdii bilgilerle ilgili yardm alnabilir. And into Cr iter ia veya Or into Cr iteria butonlar ile bu ifade Cr iter ia penceresine aktarlr. Run butonu seilirse, tablodaki ilk aye nin bulunduu kayt gelecektir. (ekil D.23) Show butonu seilen sorgulama sonucu retilen SQL ifadesini grntler. (ekil D.24) Copy butonu ile bu SQL ifadesi SQL Statement penceresine kopyalanr. Save butonu ile de her defasnda bu admlar uygulamadan, ilgili sorgulama tanmna Database penceresinden ift tklanarak daha nce oluturulmu bir sorgulama pratik bir ekilde altrlabilir. imdi dikkat edilirse, ekil D.23 teki ekranda yatay hareket ubuunun sol yannda ki ifadesi ile sorgulama sonucunda elde edilen toplam iki kayttan ilkinin grntlendii bilgisi kullancya iletilmektedir.

VISUAL BASIC LE YAZILIM GELTRME ekil D.23 Koullu sorgulama sonucu ekil D.24 - Sorgulama iin retilen SQL ifadesi Butonu ile, koulu salayan en son kayta, butonu ile koulu salayan bir nceki kayta, butonu ile koulu salayan bir sonraki kayta ve butonu ile de koulu salayan ilk kayta gidilebilir. Clear botunu ise, koul belirterek yaplan sorgulamay iptal eder. 2)SQL Statement(SQL Deyimi) penceresine, tablonun sorgulanmas ile ilikili SQL deyimi yazmak. rnein ekil D.24 teki gibi SQL deyimi yazlp Execute butonu seilirse, gene ekil D.23 teki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil D.25 Tabloyu SQL Deyimi ile sorgulama SQL, Structured Query Language( Yapsal Sorgulama Dili), modern veri taban ynetim yazlmlar tarafndan, veri tabanlarnn yaratlmas ve sorgulanmas iin kullanlan standart bir dildir. SQL ile ilikili ayrntl bilgi edinmek iin, bu konuda yazlm yabanc dildeki kitaplar ya da Trke deki tek kaynak kitap olan SOL Veri Taban Sorgulama Dili Prof.Dr.Mithat Uysal, Beta Yaynlar kitabn inceleyebilirsiniz. VER KONTROL NESNES LE VER TABANLARINA ERMEK Visual Basic te, veri tabanlarn sorgulamann baka bir imkan da, Veri Kontrol Nesnesini (Data Control) kullanmaktr.

VISUAL BASIC LE YAZILIM GELTRME Ver i Kontrol Nesnesi, Ara Kutusu (Toolbox) iinde, yukardaki gibi grnr. Veri kontrol nesnesini, form zerine yerletirdiinizde ise, aadaki grnm alacaktr: RNEK UYGULAMA: imdi, Veri Kontrol Nesnesini kullanarak, Pers1.mdb adl veri tabanndan bilgi, almak zere bir uygulama gelitirelim. Bu amala aadaki admlar izleyiniz. 1)Form zerine Data1 adl bir veri kontrol nesnesi ve Text1, Text2, Tex3 adl 3 tane metin kutsu yerletiriniz. (ekil D.26) ekil D.26 Veri Kontrol Nesnesi ve Text kutular ekil D.27 - Veri Kontrol Nesnesini Veri Tabanna balama

VISUAL BASIC LE YAZILIM GELTRME 2)Data adl veri kontrol nesnesinin DatabaseName zelliine, Pers1.mdb yi yerletiriniz. (ya da arzu ettiiniz ve mevcut olan baka bir veri taban ismini) (ekil D.27) 3) Data1 adl veri kontrol nesnesinin RecordSour ce(KaytKayna) zelliini seiniz. Buraya, setiiniz veri tabannn ierdii tablodan birinin adn yerletiriniz. Biz, rnek uygulamamzda, Per sonel adl tabloyu yerletirdik. (ekil D.28) ekil D.28 - Tablo adn semek 4) Text1 i seiniz. Proper ties penceresinde, DataSource zellii yerine, Data1 i yerletiriniz. DataField zellii yerine de, Per sonel tablosunun ad alann yerletiriniz.(ekil D.29) 5) Ayn ekilde, Text2 nin, DataSour ce zelliini Data1 yapnz ve DataField zelliini de soyad olarak dzenleyiniz. 6)Nihayet, Text3 n DataSource zelliini Data1 ve DataField zelliini de brt olarak ataynz.

VISUAL BASIC LE YAZILIM GELTRME ekil D.29 Text1 in ad alan ile ilikili klmak 7)Run/Start ile projeyi altrnz. ekil D.30 Ver kontrol nesnesi uygulamasnn icra zaman grnts ekil D.30 daki gibi, personel tablosundaki ilk kaytn grntlendiini greceksiniz. butonu ile bir sonraki kayta, butonu ile da bir nceki kayta gidilebilir. butonu ile kayta ve butonu ile de en son kayta gidilebilir. TASARIM ESNASINDA DEER ATANAN ZELLKLER Veri kontrol nesnesinin, genellikle tasarm esnasnda deer atanan baz zellikleri vardr. Bunlar aada belirtilmitir. EXCLUSIVE ZELL Exclusive zellii Boolean( mantksal) tipte bir zelliktir. Deeri True olarak atand takdirde, veri tabanna, veri tabann aan kimse haricinde

VISUAL BASIC LE YAZILIM GELTRME hikimse eriim yapamaz. Veri tabn kapatldktan sonra bakalar eriim iin aabilir. Default deeri False tur CONNECT ZELL Connect zellii, genellikle, allan veri taban ynetim sistemi ile ilikili dosya addr. rnein FoxPro 2.6, DbaseV gibi. Microsoft Access ile allyorsa, bu zelliin atanmas zorunlu deildir. RECORDSETTYPE ZELL Kod yardm ile ya da veri kontrol nesnesi ile bir RecordSet nesnesi yaratlmak istendii zaman bu zellie atama yapmak gerekir. RecordSetType zellii 3 farkl deere sahip olabilir: 0-Table(Tablo) 1-Daynaset 2-Snapshot READYONLY ZELL Deeri True ya da False olabilir. Deeri True ise, veri tabanndan sadece okuma yaplabilir. Veri taban zerinde gncelleme(update) ilemi yaplamaz. Deeri False ise, bu durumda veri tabanndan hem okuma yaplabilir hem de veri taban zerinde gncelleme ilemi gerekletirilebilir. Yaygn kullanm ekli yledir: Bu zellik, tasarm esnasnda True olarak atanr; icra esnasnda ise, deeri bir ifreye bal olarak False a evrilir. VER KONTROL NESNES LE VERYE BALI GRD NESNESNN LKLENDRLMES Visual Basic 4.0 la beraber gelen ve Visual Basic 5.0 ve 6.0 la da kullanlabilen yeniliklerden biri de, Veriye bal grid kontrol nesnesi (DBGrid Control) nin kullanlabilme olanadr. Bu kontrol nesnesi, veri kontrol nesnesi ile ilikilendirilerek bir veri tabannn ierii,

VISUAL BASIC LE YAZILIM GELTRME bir hesap tablosu programnn (Excel, Lotus vb) salad sheet tr bir grnmle listelenebilir. ekil D.31 de, bu kontrol nesnesi grlmektedir: a)Form zerindeki grnm b)Ara kutusu(Toolbox) iindeki grnm ekil D.31 DBGrid Kontrol nesnesi RNEK UYGULAMA-DBGr id Control NESNES YARDIMI LE PERS1.MDB NN GRNTLENMES Bu amala aadaki admlar izleyiniz: 1)Form zerine Data1 adl veri kontrol nesnesini be DBGrid1 adl DBGrid kontrol nesnesini yerletiriniz. (ekil D.32) ekil D.32 Data1 ve DBGrig1 adl kontrol nesneleri 2) Data1 adl veri kontrol nesnesinin DataBaseName zelliini Pers1.mdb ve RecordSour ce zelliini de Personel tablosu olarak set ediniz(Pers1.mdb nin yukarda anlatld ekilde sisteminizde oluturulduunu ve Personel tablosunu da ierdiini var sayyoruz.) 3)DBGrid adl kontrol nesnesinin DataSour ce zelliini Data1 olarak ataynz.

VISUAL BASIC LE YAZILIM GELTRME 4)Run/Start ile projeyi altrnz. ekil D.33 deki gibi, veri taban ieriinin listelendiini greceksiniz. Tasarm esnasnda, DBGrid nesnesinin geniliini fazla tutarsanz, mmkn olan en fazla stunun listelenmesine olanak tanm olursunuz. Veri kontrol nesnesini(Data1) kullanarak, gene bir kayt iler/geri gitme ilemlerini ya da en son/en bataki kayta gitme ilemlerini gerekletirebilirsiniz. ekil D.33 DBGrid nesnesi ile veri taban ieriinin listelenmesi VER KONTROL NESNESNN CRA ESNASINDA KONTROL EDLEN ZELLKLER Veri kontrol nesnesinin baz zellikleri iin, ilevleri gerei, icra esnasnda kontroller yaparak deer atamak sz konusudur. rnein, veri taban tablosu iindeki kaytlarn sadece okunabilir zellikte mi yoksa istenirse gncelleme de yaplabilir nitelikte mi olduunu, bir kod ile icra esnasnda aadaki gibi kontrol edilebilir. If Data1.RecordSet.Updatable Then Gerekli Gncelleme komutlar Else Veri Taban Tablosunun sadece grntlenebilir nitelikte olduuna dair mesaj End If Burada, belirtilen ilemi gerekletirmek iin veri kontrol nesnesinin Updatable zellii, kod iinde, icra esnasnda kontrol edilmektedir.

VISUAL BASIC LE YAZILIM GELTRME BOF EOF ZELLKLER Bunlar, veri taban tablosunun balangcnda m yoksa sonunda m olduunuzu kontrol etmek iin kullanlan zelliklerdir. BOF Beginning Of File Dosyann Ba EOF End Of File - Dosyann Sonu anlamndadr. Tablonun banda iseniz, BOF zellii True, tablonun sonuna gelmiseniz EOF zellii True olacaktr. rnein, tablo sonuna gelip gelmediiniz kod iinde aadakine benzer bir kod ile kontrol edebilirsiniz: If Data1.RecordSet.EOF Then lem sonunda yaplmas gereken komutlar Else Tabloyu taramaya devam Veri kontrol nesnesindeki nesnesinin ilevini kod iersinde, Data1.RecordSet.MoveFirst metodunu uygulayarak, nesnesinin ilevini de Data1.RecordSet.MoveLast metodunu uygulayarak gerekletirebilirsiniz. sembol iin Data1.RecordSet.MoveNext kodu ve sembol iin de Data1.RecordSet.MovePrevious kodu kullanlabilir. ALAN NESNES LE LEMLER Bir veri taban tablosunun stun balklar ya da bir kayt iindeki farkl trdeki bililer bir alan(field) olutururlar. rnein personel tablosundaki Ad, Soyad, Brt vb birer alandr. Bir veri tablosu iindeki mevcut olan alanlar istenirse grntlenebilir. rnein, personel tablosu iindeki alanlar grntlenmek istenirse, aadaki gibi bir kod yazlabilir: Pr int Data1.RecordSet.Fields( Personel ) Ayn komutu Pr int Data1.RecordSet( Personel ) eklinde de yamak mmkndr. Field(alan) nesnesi ile ilikili olarak aadaki zelliklerin belirtilmesinde yarar vardr: 1)Size zellii, alann byte trnden bykln belirtmektedir.

VISUAL BASIC LE YAZILIM GELTRME 2)Attributes zellii, alann sahip olduu belli bal nitelikleri belirlemektedir. rnein alan sadece okunabilir mi ya da gncellenebilir mi vb. 3)Type zellii, alann ierdii verilerin tr bakmndan bilgi vermektedir. Alan nmerik bilgi mi ieriyor yoksa bir string bilgisi mi tayor vb. 4) Value zellii, alan iersinde saklanan deeri gstermektedir. METOTLAR VE OLAYLAR UPDATE METODU Bu metot, kopyalama buffer nn ieriini tabloya ya da DynaSet e gnderir. Kopyalama buffer , bilgilerin veri tabanna aktarlmadan nce geici olarak tutulduu bellek blgesidir. Update metodu, SnapShot nesnesi ile kullanlamaz Kullanl biimi: Data1.RecordSet.Update REFRESH METODU Bu metot, bir veri kontrol nesnesine uygulanrsa, veri tabannn almasna sebebiyet verir. DataBaseName, ReadOnly, Exclusive ya da Connect zelliklerini deitirdiiniz zaman, veri tabann yeniden amak zere bu metodun uygulanmas zorunludur. Kullanl biimi: Data1.Refr esh eklindedir. ADDNEW METODU Kopyalama buffer n siler ve kayt gstergesini tablo sonuna gtrr. Sistem tarafndan kullanlan kopyalama buffer boaltld iin buraya yeni bilgi yollanabilir. Sonuta, tabloya yeni bir satr eklenmesi iin gerekli koullar

VISUAL BASIC LE YAZILIM GELTRME salanm olur. Kullanl biimi: Data1.RecordSet.AddNew eklindedir. AddNew metodu, tabloya yeni veri gndermemekte bu ii gerekte Update metodu yapmaktadr. RNEK: Personel adl tablodaki baz alanlarn icra esnasnda gncellenebilmesi iin, aadaki gibi bir kod yazlabilir. Data1.Recordset.AddNew Data1.Recordset.Fields("brut") = 70000000 Data1.Recordset.Fields("adres") = "Cumhuriyet C.45-Taksim-stanbul" Data1.Recordset.Update UPDATECONTROLS METODU ReadOnly zellikte olmayan tablolar zerinde, aktif kaytn ierdiini kopyalama buffer na aktararak edit(ierii deitirme, dzenleme) olana salar. RNEK: Aadaki kod ile, personel tablosunda aktif kayttaki brt maa deitirilmektedir: Data1.Recordset.Edit BrutMaas = Data1.Recordset.Fields("brut") Call MaasDegis(BrutMaas) Data1.Recordset.Fields("brut") = BrutMaas Data1.Recordset.Update Burada MaasDegis, maa zerine deiiklik yaplan prosedrn addr.

VISUAL BASIC LE YAZILIM GELTRME UPDATERECORD METODU Edit metoduna benzer. DBControl nesnesinin ieriini, tablonun aktif kaytna gndermek amac ile kullanlr. DELETE METODU RecordSet teki aktif kaytn silinmesini salar. Belli bir anda tek bir kayt siler. Kullanl biimi: Data1.RecordSet.Delete eklindedir. Bir kayt sildikten sonra, kayt gstergesi baka bir kaytn zerine gnderilmelidir. (Move metotlarndan biri ile) Data1.RecordSet.MoveFirst Data1.RecordSet.Delete Data1.RecordSet.MoveNext VER TABANININ KAPATILMASI Pers1.mdb adl veri tabann kapatmak iin Close metodunu kullanmalsnz: Pers1.Close KOD NDE VER TABANI YARATMA Kullandnz Visual Basic 6.0 yazlm, Professional Edition veya Enterprise Edition ise, bir veri tabann yaratmak ve deitirmek iin kod oluturmak mmkndr. Bu amala aadaki admlar izleyiniz: 1)Project/Refer ences men komutu ile DAO veri eriim nesnesini (Data Access Object) seiniz. (ekil D.34)

VISUAL BASIC LE YAZILIM GELTRME ekil D.34 - Veri Eriim Nesnesinin (DAO) seilmesi 2)Dim komutunu kullanarak, veri tabann ilikilendireceiniz bir nesne deikeni tanmlaynz. Dim Dbase1 As DataBase 3) Bo bir veri taban dosyas ve Database yaratmak iin Workspace nesnesi zerine Cr eateDatabase metodunu uygulaynz. Cr eateDatabase metodu, kullanlan dili ve J et DataBase Engine in ( Veri Taban ynetim modl) versiyonunu belirler. (nceden atanm deer dbVersion30 dr): Set Dbase1=Workspaces(0),CreateDatbese ("DataBase1", _dbLangGeneral, _dbVersion30) 4) imdi, veri tabannda yer alacak olan her tablo tanmlanmaldr. Bunu gerekletirmek iin nce her tablodaki alanlar tanmlanmaldr. Aadaki admlar izleyerek, veri taban tablolarn ve zerlerindeki alanlar tanmlaynz: a.Database nesnesi zerinde, Cr eateTableDef metodunu kullanarak her tablo iin bir TableDef nesnesi yaratnz. Bu metot, veri taban tablolarn isimlendirecektir:

VISUAL BASIC LE YAZILIM GELTRME Dim Tt As TableDef Set Tt = Dbase1.Cr eateTableDef("Personel") b)TableDef nesnesi zerine Cr eateField metodunu uygulayarak her alan iin bir Field nesnesi yaratnz. Dim Fo As Field Set Fo = Tt.Cr eateField("Sicil", dbLong) Fo.Attributes = dbAutoIncrField Tt.Fields.Append Fo Set Fo = Tt.Cr eateField("Ad", dbText, 20) Tt.Fields.Append Fo c. Yeni TableDef nesnesini, Database nesnesinin TableDefs koleksiyonuna ekleyiniz. Bu adm, veri taban dosyasnda, nesneyi gerek olarak yaratan admdr. Bir kez eklenince, eklenen alan tanmnda deiiklik yaplamaz; fakat mevcut alan tanmlar silinebilir ve yeni alanlar eklenebilir: Dbase1.TableDefs.Append Tt 5)TableDef nesnesi zerinde, Cr eateIndex metodunu uygulayarak her tablo iin bir ya da daha ok sayda Index nesneleri yaratabilirsiniz. Bu ilem, zorunlu deildir. Her Index i yarattktan sonra, hangi alanlarn anahtar olarak kullanlacan anlatmak zere bir Field nesnesi yaratnz. Index lerden birinin Pr imary zelliini True yapnz. Unique zellii True yaplrsa, J et DataBase Engine, seilen indekse gre tekrarl olmasn nler: a. Dim Ind As Index Set Ind=Tt.Cr eateIndex( PersonelIndeksi ) b. Index nesneleri zerine, Cr eateField metodunu uygulayarak, anahtarn bileeni olan her alan iin, bir Field nesnesi yaratnz. Her Field nesnesini, Index nesnesinin Fields koleksiyonuna ekleyiniz. Set Fo = Ind.Cr eateField( sicil ) Fo.Pr imary = True Ind.Fields.Append Fo c. Append metodu ile, her Index nesnesini, TableDef in Indexes koleksiyonuna ekleyiniz: Tt.Indexes.Append Ind

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA: Bu uygulamada Ver iTab1 adl bir veri taban ilk kez kod ile yaratlacak ve bu veri taban iinde, Ad ve Sicil alanlarna sahip olan bir Personel tablosu oluturulacaktr. Aadaki admlar izleyiniz: 1)Form zerine bir komut butonu yerletirerek Caption zelliini VER TABANI YARAT olarak deitiriniz. (ekil D.35) ekil D.35 Veri taban uygulamas iin komut butonu 2)Command1 adl bu komut butonu ile ilikili aadaki kodu oluturunuz: Private Sub Command1_Click() Dim Dbase1 As Database Set Dbase1 = Workspaces(0).CreateDatabase("VeriTab1", dbLangGeneral, dbVersion30) Dim Tt As TableDef Set Tt = Dbase1.CreateTableDef("Personel") Dim Fo As Field Set Fo = Tt.CreateField("Sicil", dbLong) Fo.Attributes = dbAutoIncrField Tt.Fields.Append Fo Set Fo = Tt.CreateField("Ad", dbText, 20) Tt.Fields.Append Fo Dbase1.TableDefs.Append Tt Set Ind = Tt.CreateIndex("PersonelIndeksi") Set Fo = Ind.CreateField("sicil") 'Fo.Primary = True Ind.Fields.Append Fo

VISUAL BASIC LE YAZILIM GELTRME Tt.Indexes.Append Ind End Sub 3)Run/Start ile kodu altrnz. Aktif dizinde VeriTab1 adl veri taban oluturulacaktr. (ekil D.36) ekil D.36 VB dizininde oluanVeriTab1.mdb adl veri taban Oluturulan veri tabanna, veri girmek iin bir yol yukarda anlatlan Visual Data Manager kullanmaktr. Visual Data Manager ykleyip Open Database/Microsoft Access... seenei seilirse, ekil D.37 deki ekran gelir. ekil D.37 VeriTab1.mdb yi amak Burada VerTab1.mdb seilerek OK butonu clicklenirse, ekil D.38 deki ekran gelir. Personel tablosu seilerek, Open butonu aktive edilirse, iinde Personel tablosu ve bu tablo ile ilgili zellikleri ieren Database penceresi gelecektir. Ver i girii iin, Personel tablosu zerinde ift tklannca alan Table: Personel penceresini kullanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Veri girii iin ikinci bir yol ise, tabiidir ki kod ile veri giriini salamaktr. Aada bu konu anlatlmaktadr. ekil D.38 VeriTab1 veri taban ve iindeki personel tablosu KOD YARDIMI iLE VER TABANINA BLG GR Aada, oluturulan veri tabanna kod yardm ile bilgi girii salayan bir proje gelitirilmitir: 1)Form zerine bir komut butonu yerletirerek, Caption zelliini VER GR olarak deitiriniz. (ekil D.39) ekil D.39 VER GR butonu

VISUAL BASIC LE YAZILIM GELTRME 2)Command2 adl VER GR butonu ile ilikili olarak aadaki kodu oluturunuz: Private Sub Command2_Click() Dim DBase1 As Database, Tablo1 As Recordset Set DBase1 = Workspaces(0).OpenDatabase("Veritab1.mdb") Set Tablo1 = DBase1.OpenRecordset("personel", dbOpenTable) Tablo1.AddNew Tablo1("sicil") = 234 Tablo1("Ad") = "Mithat Uysal" Tablo1.Update DBase1.Close End Sub 3)Run/Start ile projeyi altrnz. Veri tabanna bilgiler atanacaktr. Gayet doald ki, bilgi giriini, bir evrim yaps iinde ve bilgi giri komutlarn da kullanarak( InputBox vb) daha genel bir ekle de getirebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME BLM 29 VERTABANI MOTORU NESNES (DBEngine Object)

VISUAL BASIC LE YAZILIM GELTRME VER TABANI NESNES (DBEngine Object) DBEngine adl, Veri taban motoru nesnesi, Veriye Eriim Nesne Modelinin(VENM) (DAO-Data Access Object) en st dzeydeki nesnesidir. Alttaki ekilde DBEngine ve alt dzey nesneleri grlmektedir. DBEngine nesnesi, VEMN nesneleri hiyerarisi iinde, dier btn nesneleri ierir ve kontrol eder. DBEngine, herhangi bir nesne koleksiyonunun eleman deildir; yani bamsz ve tek bir nesnedir. Ayrca ilave DBEngine nesneleri yaratmanz mmkn deildir, sadece mevcut olanlar kullanabilirsiniz. Bir OBDC(Open Date Base Connectivity- Ak Veri Taban Balants) veri kayna, dorudan, Veri Eriim Nesnesi(DAO- Data Access Object) sayesinde erimek istediiniz zaman, bu kaynak, OBDCDirect Workspace (OBDCDorudan alma Alan) adn alr. Bu durum, OBDC veri kaynana Microsoft Jet Workspace i kullanarak dolayl olarak erimekten farkl bir durumdur. OBDC veri kaynaklarna erimek isteyen her metot, iki farkl Workspace nesnesinden birine gereksinim duymaktadr. (Yani ya Microsoft Jet Engine ile veri tabanna eriilecektir veya OBDCDirect ile d veri kaynaklarna eriilecektir); bu amala, DBEngine nesnesinden yaratacamz Workspace nesnesine ait deeri atamalsnz. (Yukardaki iki farl yntemden biri) Workspace nesnesinin tipi ve ilikili veri kayna, hangi Veriye Eriim Nesnesi(DAO- Data Access Object), metot ve zellikleri kullanabileceinizi belirler.

VISUAL BASIC LE YAZILIM GELTRME Herhangi bir veritaban ya da balants ile aadaki ilemleri gerekletirebilirsiniz: - Veri Eriim Nesnesi(DAO- Data Access Object) nin versiyon numarasn elde etmek iin Versiyon zelliini kullannz. -OBDC login timeout deerini elde etmek ya da bu deeri atamak iin LoginTimeout zelliini kullannz. OBDC LoginTimeout zellii, bir OBDC veri tabanna balandktan sonra, bir network hatas ya da Server n almamas nedeni ile bir hata olumas durumunda balantnn kesilmesinden, yeniden balanana kadar beklenecek sreyi belirler. Default deer 20 saniyedir. Kullanc bunun yerine baka bir deer atayabilir. RNEK: dbEngine nesnesine ait default LoginTimeout zelliinin deitirilmesi Sub LoginTimeoutX() DBEngine.LoginTimeout = 120 'sn cinsinden Dim wrkOBDC1 As Workspace Dim wrkOBDC2 As Workspace Dim wrkOBDC3 As Workspace Set wrkOBDC1 = CreateWorkspace("", "admin", "", dbUseOBDC) Set wrkOBDC2 = CreateWorkspace("", "admin", "", dbUseOBDC) Set wrkOBDC3 = CreateWorkspace("", "admin", "", dbUseOBDC) wrkOBDC1.LoginTimeout = 60 wrkOBDC2.LoginTimeout = -1 wrkOBDC3.LoginTimeout = 0 wrkOBDC1.Close wrkOBDC1.Close wrkOBDC1.Close End Sub

VISUAL BASIC LE YAZILIM GELTRME Veritaban Motoru Nesnesi (Database Engine) kullancnn veya sistemin veri tabanlarna veri kaydeden ve bu veri tabanlarnda veri elde eden bir veri taban ynetimi sistemidir. Visual Basic veritaban sisteminin tm veritaban ilemlerini yrtr. Bu yn ile veritaban sisteminin beyni gibi alr. Bir mdb uzantl Access dosyasna ve Paradox veri tabanna ya da OBDC yolu ile arka yzdeki(back-end) veri taban sunucusuna eriirken Jet Database Engine kullanr. Microsoft Jet in arkasndaki gerek oklu veri tiplerine erimek iin bir arayz kullanabilmektedir. Bu sayede ayn Jet veritaban fonksiyonlarn kullanarak bir metin dosyasna veya Excel dosyasna eriebilir yada Microsoft Access veri tabanlar zerinde veri eriimleri gerekletirebiliriz. Microsoft Jet farkl veri tabanna eriim sz konusu olduunda hedef veri tabannn istekleri hedef veri tabannn anlayabilecei formlara dntrebilen rutinler ierir. Bu rutinleri eviri rutinleri olarak isimlendirebileceimiz bu rutinler Access dndaki dBase, FoxPro , Paradox gibi veri tabanlarna eriim yaplrken kullanlr. RDO lar ise Microsoft Jet data-access nesnelerine (DAO) benzer olarak programlanabilir nesnelerdir. RDO topluluu (koleksiyonu) DAO topluluundan farkl olarak uzak sistemlerde saklanan verilere eriim salayan ilave zellikler ve metotlara sahiptir. Genel olarak DAO nesne topluluunun ierdii nesneler aadaki gibidir. DBEngine nesnesi Workspace nesnesi Database nesnesi TableDef nesnesi Field nesnesi Index nesnesi Relation nesnesi Connection nesnesi Recordset nesnesi RDO topluluundaki nesneler ise aadaki gibidir. RdoEngine nesnesi RdoEnvironment nesnesi RdoConnection nesnesi RdoTable nesnesi RdoColumns nesnesi

VISUAL BASIC LE YAZILIM GELTRME Ver i Eriim Nesneleri (Data Access Object) 3.5 DAO Microsoft, Access ve farkl veri tabanlarnda tutulan verilere ulamak iin kullanlan nesne modelidir. DAO nun en iyi srm 3.5 srmdr. Microsoft Visual Basic 5.0 ve sonrasnda, Microsoft Office 97 ve Microsoft Visual C++ da geerlidir. DAO nun bu srm ile istemci/sunucu veri taban uygulamalar gelitirmek isteyenlere daha yeni ve gl frsatlar sunmaktadr. DAO istemci/sunucu uygulamalarnn zorunlu bir paras olan Microsoft SQL Server ve Oracle veri tabanlar gibi uzak veri taban sunucularna da eriim salar. Microsoft Jet bir grup veri eriim nesnesi (Data Access Object) ierir. Bu nesneler topluluk (collection) olarak isimlendirilen birliktelikler olutururlar v e kendilerine mahsus zellik ve metotlar ieririler. Bu nesne topluluu ile alrken aadaki temel kavramlarn bilinmesi gerekir. Topluluklar (Collections), ayn tip veri eriim nesneleri (rnein veri eriim nesneleri) ieren birlikteliklere verilen isimdir. zellikler (Properties), nesneyi tanmlayan karakteristiklere verilen isimdir. Nesnelerin zelliklerine tasarm annda veya icra annda yeni deerler atanabilir. Metotlar, bir nesne zerinde yrtlebilecek yordamlara verilen isimdir. Microsoft Jet veri eriim nesneleri yukardan aaya bir hiyerari olutururlar. Bu hiyerari banda DBEngine nesnesi bulunur. DBEngine Ver i Er iim Nesnesi Visual Basic ile veritaban eriimlerinde kullanlan veri eriim nesnesidir. Bu nesneye programmzn iinde aka yaplan bir referans yoktur fakat dier veri eriim nesnelerine eriim yaparken dolayl olarak kullanrz. nk DBEngine nesnesi veritaban ilemleri yneten ve DAO daki hiyerarinin en tepesinde bulunan nesnedir. DBEngine nesnesi 3 ayr nesne topluluu ierir. Bunlar, Workspaces : Tanml tm Workspaces nesne topluluudur. Workspace nesnesi kullanc iin bir oturum(session) tanmlar. Bu oturum kullanc veritabanna balandktan sonra(log on) balanty kesinceye kadar yrtlen ilemleri ierir.

VISUAL BASIC LE YAZILIM GELTRME Er rors: Veri taban ilemlerinde oluan hatalarn oluturduu bir topluluktur. Proper ties: DBEngine nesnesinin zelliklerini ieren topluluktur. DBEngine nesnesinin zelliklerine deer atama, bu zellikleri listeleme ilemleri Properties topluluuna erierek yaplr. DBEngine Nesnesinin zellikler ine Deer Atamak Kod yazarak programmzn iinde DBEngine nesnesinin zelliklerine deer atayabiliriz. rnein InitPath zelliini ilikisel veritabann ilemek iin gerekli zel ISAM srcsn gstermek iin kullanabiliriz. ISAM Indexed Sequential Access Method( ndeksli Sra Eriim Metodu) kelimelerinin ba harflerinden oluan bir akronimdir ve Dbase, Microsoft Excel, Paradox gibi harici veri tabanlarna eriim iin kullanlan src tanmlanmaktadr. DBEngine.InitPath= HKEY_LOCAL_MACHINE\Software\Microsoft\ & Jet\3.5\ISAM Formats\FoxPro 3.0 DBEngine Nesnesinin Metotlar DBEngine veri-eriim nesnesi aadaki metotlar ierir: RepairDatabase: Zarar grm Microsoft Jet veritaban dosyalarn dzeltir. CompactDatabase: Sabit disk zerinde ksmlara ayrlan veri paralarn bir araya getirmek iin kullanlr. Bylece veri taban daha az yer kaplar ve daha hzl alr. Ayrca bu metotla veri tabannn kopyasn alabilir, baz zellikleri(versiyon numaras veya enkripsiyonunu-veritabannn ifreli biimde tutulmas) deitirebilirsiniz. RegisterDatabase: D veri kayna ile Microsoft Jet veri tabann arasndaki balanty kurmak iin kullanlr. Idle: Veri ileme prosedrn askya almak iin kullanlr. Bylece Jet DBEngine yarm kalan ilemleri (rnein hafza optimizasyonu gibi )bitirme imkan tanr.

VISUAL BASIC LE YAZILIM GELTRME Cr eateWorspace: Bir ya da daha ok veri tabanna erime iin workspace oluturur. RepairDatabase Metodu Zarar gren veri tabann RepairDatabase metodunu kullanarak dzeltebilirsiniz. Bu metod tamamlanmam bir okuma/yazma ilemi neticesinde geersiz hale gelen veri tabann dzeltir. Bu tr bozulmalar sistemin normal bir ekilde kapatlmamasndan kaynaklanr. RepairDatabase metodu ile olas btn bozulmalar dzeltmeyebilirsiniz. RepairDatabase metodu doru balant iin veri tabanndaki tm sayfalar kontrol eder, tm sistem tablolarn ve dizinleri gnceller. Bu metodun kullanm aadaki gibidir. DBEngine. RepairDatabase Veritaban smi CompactDatabase Metodu Microsoft Jet veri tabanndaki bo yerleri temizler ve eriim hzn arttrr. Ayrca bu metodu Microsoft Jet veri tabanlarnn eski versiyonlarn yeni versiyonlara evirmek iin de kullanabilirsiniz. Yazlm aadaki gibidir. DBEngine.CompactDatabase eskiVeritaban, yeniVritaban, lokal, seenekler EskiVeritaban argman dzenleyecek veritabannn sabit disk zerindeki yol tanmn da ieren isim iin kullanlr. Lokal ise verinin yazld dilin ismidir. Bu argman seimliktir ayet kullanlacaksa Trke veriler ieren bir veritaban iin dbLangTurkish sabiti kullanlabilir. Seenekler argman da seimliktir ve dzenlenecek yeni veritabann Microsoft un farkl bir srmne gre veya ifreli(Encrpty) yada ifresiz(Decrpty) olarak oluturmak iin kullanlr. Farkl seenekleri + ise birlikte belirtebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME RegisterDatabase Metodu RegisterDatabase metodu Microsoft Jet eriimi iin bir OBDC veri kaynan sisteme tantmay salar. Bu i iin genellikle Denetim Masasndaki OBDC ikonunu tklatnca alan aadaki OBDC Data Source Administrator penceresi kullanlr. Bu ilemi Visual Basic iinde yapmak iin RegisterDatabase metodunun kullanlmas gerekir. Yazlm aadaki gibidir: DBEngine.RegisterDatabase KaynakAd, SrcAd, SilentFlag, zellikListesi KaynakAd: OpenDatabase metodunda veritaban ismi olarak kullanlabilecek isim.

VISUAL BASIC LE YAZILIM GELTRME SrcAd: Yklenmi WorkStation da geerli OBDC srcsnn ad. SilentFlag: Windows un OBDC kaydetme diyalog kutusunu karmas iin False deeri tanr. zellikListesi: OBDC kayna iin kullanlacak zelliklerin listesini ierir. rnein sunucu aygt ismi, veritaban ismi vb. veritaban sunucusunun istedii dier parametreler olabilir. SetOption Metodu DBEngine nesnesinin SetOption Metodu programn alma annda Registry deki performans deerlerinin stne yazma imkan tanr. Aadaki tablo SetOption Metodu kullanlarak yaplabilecek ayarlar gstermektedir. Sabit Tanm dbPageTimeout PageTimeOut anahtar dbSharedAsyncDelay SharedAsyncDelay anahtar dbExclusiveAsyncDelay ExclusiveAsyncDelay anahtar dbLockRetry LockRetry anahtar dbUserCommitSync UserCommitSync anahtar dbImplicitCommitSync ImplicitCommitSync anahtar dbMaxBufferSize MaxBufferSize anahtar dbMaxLockPerFile MaxLockPerFile anahtar dbLockDelay LockDelay anahtar dbRecycleLVs RecycleLVs anahtar dbFlushTransactionTimeout FlushTransactionTimeout anahtar

VISUAL BASIC LE YAZILIM GELTRME rnein LockEntry ayarlar iin aadaki kodu yazabiliriz. DBEngine.SetOptions dbLockRetry=dbLockRetry*15 Registry ayarlarnda yaplan deiiklikler sadece programmz alt srece geerlidir. Windows Registry e kaydedilmezler. Idle Metodu Idle Metodu tm ak veri-eriim nesnelerinde yaplm bir deiiklik yakalandnda Visual Basic in almasna ara verdirerek bu deiikliklerin yerine getirilmesi salanr. ok youn veri taban trafiine sahipsek veya ok sayda veri-eriim nesnesi kullanyorsak bu metodu kullanmak faydal olabilir. Yazlm aadaki gibidir. DBEngine.Idle UZAK VER NESNES(REMOTE DATA OBJECT-RDO) RDO lar DAO-Jet Data-Access nesnesine benzer ekilde programlanabilir nesneler ierirler. Bu nesneler DAO dan farkl olarak uzaktaki veriye eriim iin kullanlabilecek extra zellik ve metotlar ierirler. Bu nesneler aadaki gibidir. Nesne Aklamas rdoColumn Microsoft Jet Field nesnesinin RDO daki karldr. rdoConnection Microsoft Jet Database nesnesinin karldr. rdoEngine Uzaktaki veriye erimek iin kullanlan yksek seviye veri yntem sistemidir. rdoEnvironment Microsoft Jet Workspace nesnesinin karldr. rdoParameter RdoQuery nesnesinin sorgulama parametreleri iin zel bir topluluktur. rdoQuery Microsoft Jet QueryDef nesnesinin RDO daki karldr. rdoResulset Microsoft Jet Recordset nesnesinin RDO daki karldr. rdoTable Microsoft Jet Table nesnesinin RDO daki karldr.

VISUAL BASIC LE YAZILIM GELTRME Veri eriim nesneleriyle almaya altysanz RDO lar ile de zorluk ekmeden alabilirsiniz. Programlar birbirine ok benzer. RDO nesne topluluu de DAO nesne topluluu gibi bir hiyerari ierir. RdoEngine nesnesi bu hiyerarinin en tepesinde bulunur. RdoEngine nesneleri rdoEngine nesnelerini yaratabilir. Uzak sistemlerdeki veriye eriim bu balant nesneleri aracl ile gerekleir. Her bir rdoConnection nesnesi bir yada daha fazla rdoResulset nesnesi oluturabilir. RdoResulset nesnesi veri satrlarndan oluur. RdoConnection nesnesinden rdoQuery nesnesi veya rdoTable nesneleri yaratlabilir yada bu nesnelere ulaabilirsiniz. RdoQuery nesnesi ayrca sorgulama ilemi esnasnda gnderilen parametreleri ynetmek iin kullanlan rdoParameter nesnesine sahiptir. rdoEngine Nesnesi RDO nesne topluluunda en yksek seviyedeki nesne rdoEngine nesnesidir. Az sayda zellie sahiptir. Visual Basic kullanlarak bir tane rdoEngine rnei oluturabilirsiniz. Aadaki kk programck OBDC penceresinde tanml bir veritaban iin rdoEngine nesnesinin zelliklerini gstermektedir. Pr ivate Sub cmdRDOEngine_Click() Dim strMsg As String Dim rdoEng As rdoEngine Dim aryCursorDriver As Variant aryCursorDriver = Array("rdUseIfNeeded", "rdUseOdbc", "rdUseServer", "rdUseClientBatch", "rdUseNone")

VISUAL BASIC LE YAZILIM GELTRME Set rdoEng = rdoEngine strMsg = strMsg & "rdoDefaultCursorDriver=" & aryCursorDriver(rdoEng.rdoDefaultCursorDriver) & vbCrLf strMsg = strMsg & "rdoDefaultErrorThreshold=" & CStr(rdoEng.rdoDefaultErrorThreshold) & vbCrLf strMsg = strMsg & "rdoDefaultLoginTimeout=" & CStr(rdoEng.rdoDefaultLoginTimeout) & vbCrLf strMsg = strMsg & "rdoDefaultPassword=" & rdoEng.rdoDefaultPassword & vbCrLf strMsg = strMsg & "rdoDefaultUser=" & rdoEng.rdoDefaultUser & vbCrLf strMsg = strMsg & "rdoLocaleID=" & CStr(rdoEng.rdoLocaleID) & vbCrLf strMsg = strMsg & "rdoVersion=" & CStr(rdoEng.rdoVersion) & vbCrLf MsgBox strMsg, vbInformation, "RDOEngine" Set rdoEng = Nothing End Sub rdoEnvironment Nesnesi rdoEnvironment nesnesinden veri balantlar iin kullanlan ortam hakknda bilgi edinilir. Microsoft Jet Workspace nesnesinin RDO karl rdoEnvironment nesnesidir. RdoEnvironment nesnesi altnda oklu rdoEnvironments topluluu bulunur. Aadaki programck rdoEnvironment nesnesinin zelliklerinin nasl elde edileceinin anlamanza yardm edecektir.

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub cmdRDOEnvironment_Click() Dim strMsg As String Dim rdoEnv As rdoEnvironment Dim aryCursorDriver As Variant aryCursorDriver = Array("rdUseIfNeeded", "rdUseOdbc", "rdUseServer", "rdUseClientBatch", "rdUseNone") For Each rdoEnv In rdo.Engine.rdoEnvironment strMsg = strMsg & "rdoDefaultCursorDriver=" & aryCursorDriver(rdoEnv.DefaultCursorDriver) & vbCrLf strMsg = strMsg & "rhEnv=" & CStr(rdoEnv.rhEnv) & vbCrLf strMsg = strMsg & "LoginTimeout=" & CStr(rdoEnv.LoginTimeout) & vbCrLf strMsg = strMsg & "Name=" & rdoEnv.Name & vbCrLf strMsg = strMsg & "Password=" & rdoEnv.Password & vbCrLf strMsg = strMsg & "UserName=" & rdoEnv.UserName & vbCrLf strMsg = strMsg & strMsg & vbCrLf Next MsgBox strMsg, vbInformation, "rdoEnvironment" Set rdoEnv = Nothing End Sub

VISUAL BASIC LE YAZILIM GELTRME rdoConnection Nesnesi rdoConnection nesnesi uzak sistemlerdeki veriye eriebilmek iin gerekli balanty kurmak iin kullanlr. Ayn rdoEnvironment nesnesi altnda birden fazla rdoConnection nesnesi bulunabilir. Microsoft Jet Database nesnesinin RDO topluluundaki karl rdoConnection nesnesidir diyebiliriz. Tm rdoConnection nesneleri rdoConnections topluluunda bulunur. Bu nesne zellikleri ve bu zelliklerin kullanm ile ilgili aadaki programck size yardmc olacaktr. Pr ivate Sub cmdRDOConnection_Click() resultsets i gsterir. Dim strMsg As String Dim rdoEnv As rdoEnvironment Dim rdoCon As rdoConnection Dim rdoNewCon As rdoConnection Dim aryCursorDriver As Variant aryCursorDriver = Array("rdUseIfNeeded", "rdUseOdbc", "rdUseServer", "rdUseClientBatch", "rdUseNone") Set rdoEnv =rdoEngine.rdoCreateEnvironment( rdoTEMP , admin , ) Set rdoNewCon= rdoEnv.OpenConnection(dsn)

VISUAL BASIC LE YAZILIM GELTRME For Each rdoCon In rdoEnv.rdoConnections strMsg=strMsg& "AsyncCheckInvertal=" & CStr(rdoCon.AsyncCheckInvertal) & vbCrLf strMsg = strMsg & "Connect=" & rdoCon.Connect & vbCrLf strMsg = strMsg & "CursorDriver=" & aryCursorDriver(rdoCon.CursorDriver) & vbCrLf strMsg = strMsg & "hDbc=" & CStr(rdoCon.hDbc) & vbCrLf strMsg = strMsg & "LoginTimeOut=" & CStr(rdoCon.LoginTimeOut) & vbCrLf strMsg = strMsg & "LogMessages=" & rdoCon.LogMessages & vbCrLf strMsg = strMsg & "Name=" & rdoCon.Name & vbCrLf strMsg = strMsg & "QueryTimeOut=" & CStr(rdoCon.QueryTimeOut) & vbCrLf strMsg = strMsg & "RowsAffected=" & CStr(rdoCon.RowsAffected) & vbCrLf strMsg = strMsg & "StillConnecting=" & CStr(rdoCon.StillConnecting) & vbCrLf strMsg = strMsg & "StillExecuting=" & CStr(rdoCon.StillExecuting) & vbCrLf strMsg = strMsg & "Transactions=" & CStr(rdoCon.Transactions) & vbCrLf strMsg = strMsg & "Updatable=" & CStr(rdoCon.Updatable) & vbCrLf strMsg = strMsg & "Version=" & rdoCon.Version & vbCrLf Next MsgBox strMsg, vbInformation, "rdoConnections" rdoNewCon.Close rdoEnv.Close Set rdoEnv = Nothing Set rdoCon = Nothing Set rdoNewCon = Nothing End Sub

VISUAL BASIC LE YAZILIM GELTRME rdoTable ve rdoColumns Nesneler i rdoTable nesnesini rdoConnection nesnesinden elde edebilirsiniz. Uzak sistemde tutulan tablo satrlar hakknda bilgi edinmek iin kullanlr. rdoTables topluluu rdoConnection vastas ile geerli tm temel nesnelerin listesini alabilirisiniz. rdoColumns nesnesi rdoTable yada rdoResulset nesnelerindeki her bir veri stunu iin zellikler ve ierik hakknda ayrntl bilgi ierir. rnein stun says, stun balklar, stun veri tipleri vb. Microsoft Jet Field nesnesine karlk gelir. Tm rdoColumn nesneleri rdoColumns topluluu iinde bulunur. Aadaki bu nesnelerin kullanm ile ilgili rnekleri inceleyebilirsiniz. Pr ivate Sub LoadTreeRDO() Dim rdoEnv As rdoEnvironment Dim rdoCon As rdoConnection Dim rdoTbl As rdoTable Dim rdoCol As rdoColumn

VISUAL BASIC LE YAZILIM GELTRME Dim B As Integer Dim Y As Integer B = 1 Y = 1 'env/con'u set eder Set rdoEnv = rdoEngine.rdoCreateEnviroment("rdoTEMP", "admin", "") Set rdoCon = rdoEnv.OpenConnection(dsn) 'tables topluluunu gnceller rdoCon.rdoTables.Refresh TreeView1.Nodes.Clear Set nodeRDO = TreeView1.Nodes.Add(, , "Bas", "RDO Yaps") Set nodeRDO = TreeView1.Nodes.Add(, , "Bas", tvwChild, "VTable", "RDO Tablolar") For Each rdoTbl In rdoCon.rdoTables Set nodeRDO = TreeView1.Nodes.Add("VTable", tvwChild, "T" & B, rdoTbl.Name) nodeRDO.Expended = True For Each rdoCol In rdoTbl.rdoColumns Set nodeRDO = TreeView1.Nodes.Add("T" & B, tvwChild, "F" & B & Y, rdoCol.Name) Y = Y + 1 Next B = B + 1 Y = 1 TreeView1.Refresh Next End Sub

VISUAL BASIC LE YAZILIM GELTRME Private Sub TreeView1_DblClick() Dim rdoEnv As rdoEnvironment Dim rdoCon As rdoConnection Dim rdoCol As rdoColumn Dim rdoTbl As rdoTable Dim strMsg As String Dim TableName As String Dim ColName As String Set rdoEnv = rdoEngine.rdoCreateEnviroment("rdoTEMP", "admin", "") Set rdoCon = rdoEnv.OpenConnection(dsn) 'table a tkland ise If Left(TreeView1.SelectedItem.Key, 1) = "T" Then 'set env/con 'update the tables collection rdoCon.rdoTables.Refresh TableName = TreeView1.SelectedItem Set rdoTbl = rdoCon.rdoTables(TableName) 'show table properties strMsg = strMsg & "Name=" & rdoTbl.Name & vbCrLf strMsg = strMsg & "RowCount=" & CStr(rdoTbl.RowCount) & vbCrLf strMsg = strMsg & "Type=" & CStr(rdoTbl.Type) & vbCrLf strMsg = strMsg & "Updatable=" & CStr(rdoTbl.Updatable) & vbCrLf strMsg = strMsg & vbCrLf MsgBox strMsg, vbInformation, "rdoTable" strMsg = "" 'field a tkland ise ElseIf Left(TreeView1.SelectedItem.Key, 1) = "F" Then rdoCon.rdoTables.Refresh TableName = TreeView1.SelectedItem.Parent.Text Set rdoTbl = rdoCon.rdoTables(TableName) ColName = TreeView1.SelectedItem Set rdoCol = rdoTbl.rdoColumns(ColName) 'get column info strMsg = strMsg & "AllowZeroLength=" & CStr(rdoCol.AllowZeroLength) & vbCrLf

VISUAL BASIC LE YAZILIM GELTRME strMsg = strMsg & "Attributes=" & Hex(rdoCol.Attributes) & vbCrLf strMsg = strMsg & "ChunkRequired=" & CStr(rdoCol.ChunkRequired) & vbCrLf strMsg = strMsg & "Name=" & CStr(rdoCol.Name) & vbCrLf strMsg = strMsg & "OrdinalPosition=" & CStr(rdoCol.OrdinalPosition) & vbCrLf strMsg = strMsg & "Required=" & CStr(rdoCol.Required) & vbCrLf strMsg = strMsg & "Size=" & CStr(rdoCol.Size) & vbCrLf strMsg = strMsg & "SourceColumn=" & rdoCol.SourceColumn & vbCrLf strMsg = strMsg & "SourceTable=" & rdoCol.SourceTable & vbCrLf strMsg = strMsg & "Type=" & CStr(rdoCol.Type) & vbCrLf strMsg = strMsg & "Updatable=" & CStr(rdoCol.Updatable) & vbCrLf MsgBox strMsg, vbInformation, "rdoColumn" strMsg = "" End If rdoCon.Close rdoEnv.Close Set rdcol = Nothing Set rdTbl = Nothing Set rdoCon = Nothing Set rdoEnv = Nothing End Sub

VISUAL BASIC LE YAZILIM GELTRME BLM 30 ADO VER KONTROL NESNELER

VISUAL BASIC LE YAZILIM GELTRME ADO DATA KONTROL NESNES ADO Data Kontrol(ADODC), VB 6.0 da, VB nin daha nceki versiyonundaki Data Kontrolleri yerine kullanlan ve onlar da destekleyen yeni kontrol nesnesidir. ADODC Data Kaynan form zerindeki dier kontrollere balayabiliyoruz. Veri Kayna Balant Sonu Seti ADODC Data Control Veri TextBox DataGrid Dier Kontroller ekil 1-ADO Data Kontrol Akm emas ADODC i kullanmak iin ilk nce, ilgili bileen projenize eklemek ve geerli balant stringini set etmek zorundasnz. Geerli balant stringini set etmek iin ya ADODC zellikleri penceresinden faydalanabilirsiniz ya da bu ilemi kod ile gerekletirebilirsiniz. GEERL BALANTI STRINGNN KOD KULLANILARAK SET EDLMES Aadaki kod Pubs SQL Server veri taban ile DSN zerinden balant kurar: With ADODC1 .ConnectionString= Pubs .CommandType=adCmdText .RecordSource= Select*form Authors End with

VISUAL BASIC LE YAZILIM GELTRME Aadaki kod DSN olmadan direkt OBDC zerinden Pubs veritabanna balant salar ve Authors tablosundaki tm satrlar geri dndrr: With ADODC1 .ConnectionString = "driver={SQL Server};server=(local); Pwd=;uid?sa;database=pubs" .CommandType = adCmdTable .RecordSource = "Authors" End With Balant iin OLE DB salaycsndan da faydalanlr. Aadaki kod JET OLE DB yardm ile Access veri tabanndaki Customers tablosundan iki kolon geri dndrr: With ADODC1 .ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=C:\my documents\nwind.mdb" .CommandType = adCmdText.RecordSource = "Select CompanyName,ContactName From Costomers" End With ADO Data Kontrol le Form zer indeki Dier Kontrolleri Balamak Form zerindeki kontrol nesnelerinin ADODC ye balanmas tasarm annda ADODC nin DataSource zelliinin set edilmesi ile ya da alma annda aadaki koddaki gibi gerekletirilir: With Text1 .DataField = "Customerld" Set .DataSource = ADODC1 End With

VISUAL BASIC LE YAZILIM GELTRME ADO NESNELER ADO nesneleri btn veri tiplerine hzl ve kolay eriiminizi salar. Aadaki ekil farkl ADO nesneleri ve bu nesnelerin bir dieri ile ilikilerini gstermektedir: Komut(semeli) Aktif Balant altrma Parametre koleksiyonu Kaynak Balant Parametre(semeli) Aktif Balant altrma Alan Koleksiyonu Kayt Seti Hata Koleksiyonu (semeli) Hata(semeli) Alan ekil 2-ADO Programlama Modeli Nesne Ama Komut(Command) Veri kayna zerinde sorgu veya ifadeyi altrr. Balant(Connection) Veri kaynana direkt balant salar. Hata(Error) Veri kaynandan hata dndrr. Alan(Field) Kayt iindeki bir kolonun verisini ierir. Parametre(Parameter) Komut iin parametre tutar. Kayt Seti (Recordset) Komut ile dnen sonu kmesini tutar. Aadaki rnek 3 temek ADO nesnesinin birbirine bal olarak nasl altn gsteriyor:

VISUAL BASIC LE YAZILIM GELTRME Veri Kayna (nwind veri taban) Aktif Komut altrldnda Balant sonu kmesi dner altrma Balant (nwind.mdb) Komut: (Select*Form Costomers) Sonu kmesi Ak Kayt Kmesi (Customer Verisi) RECORDSET NESNES Recordset nesnesi ADO iinde en karmak ve en deerli nesnedir. Recordset, bir veri kaynandan bir komut veya sorgu altrldnda, dnene kaytlarn koleksiyonudur. Bir kete recordset yaratldnda, kayt kmesi iinde kaytlar kullanabilir ve kaytlar arasnda arama yapabilirsiniz. Baz Recordset zellikleri zellik Aklama Geerli Dizi BOF Eer gsterge satrn ncesine gelmise sinyal verir. True True/False EOF Eer gsterge son satrn sonrasna gelmise sinyal veriri True True/False

VISUAL BASIC LE YAZILIM GELTRME State Kayt kmesinin geerli durumunu dndrr. adStateClosed Enum PageCount Geerli kayt kmesinde sayfalarn numaralarn dndrr. 0 >=0 PageSize Sayfa iindeki kaytlarn numarasn dndrr. 1 >=0 CursorLocation Krsorun yerine set edere veya dndrr. asUseServe Enum CursorType Krsor tipini set eder vay dndrr. adOpenForwardOnl y Enum RecordCount Geerli kayt kmesinde satrlarn numarasn dndrr 0 >=0 EOF ZELL Eer kullanc kayt kmesindeki son kayt sonrasna girmek isterse True olur. While Not rst.EOF Rst.MoveNext Wend BOF ZELL Eer kullanc kayt kmesindeki ilk kaydn ncesine gitmek isterse BOF zellii True olur Eer kayt kmesi bo ise hem EOF hem de BOF True olur: If rst.EOF And rst.BOF then MsgBox Kayt Yok End If

VISUAL BASIC LE YAZILIM GELTRME Baz Recordset Yntemleri Yntem Aklama AnnNew Kayt kmesine yeni satr ekler. Cancel Kayt kmesinde ilenen ilemi iptal eder. Close Geerli kayt kmesini kapatr. Delete Bir veya daha fazla satr kayt kmesinden siler. Find Kayt kmesinde satr bulunur. Move MoveNext MovePrevious MoveFirst MoveLast Kayt kmesinde istenilen satra gidilir. Open Komutu altrr ve krsor aar. Requery Komutu tekrara altrr ve kayt kmesisin tekrara oluturur. Update Geerli satra deiiklikleri iler. Move Yntemi Yntem Aklama Move Belirli numaradaki kayda gider. MoveFirst Gstericiyi kayt kmesindeki ilk kayda gtrr MoveLast Gstericiyi kayt kmesindeki son kayda gtrr MoveNext Gstericiyi kayt kmesindeki bir sonraki kayda gtrr MovePrevious Gstericiyi kayt kmesindeki bir nceki kayda gtrr Eer kayt kmesindeki ilk kayttaysak BOF, son kayttaysak EOF kontrol yapmamz lazm. rnein aadaki kod son kayttayken sonraki butona basnca ses mesaj gnderir.

VISUAL BASIC LE YAZILIM GELTRME With rst If .Eof Then Beep MsgBox Bu son kayt MoveLast End If End With Burada kayt kmesinin sonunda olup olmadmz kontrol ediliyor, eer kayt kmesinin sonunda isek(yani son kayttaysak), nce bir bip sesi ve ardndan Bu son kayt eklinde bir mesaj geliyor. Daha sonra krsormz son kayda konumlanyor AddNew Yntemi Par ametr e Deer In/Out Aklama FileList In Alan isimlerinin listesi Values In Kullanlan deerlerin listesi Girilen deerleri ilgili alanlara yerletirir. Ancak AddNew yntemini ardktan sonra mutlaka Update yntemini armalyz. rnek kod: AddNew([Array( Field1 , Field2 )],[Array( Value1 , Value2 )]) Update Yntemi Veri ekleme olayn tamamlar. rnek kod: Update([FieldList As Array],[Values As Array]) Par ametr e Deer In/Out Aklama FileList In Alan isimlerinin listesi Values In Kullanlan deerlerin listesi

VISUAL BASIC LE YAZILIM GELTRME BLM 31 VISUAL BASIC 6.0 DA VERTABANI PROJELER

VISUAL BASIC LE YAZILIM GELTRME DATA REPORT DESIGNER (VER RAPOR TASARIMCISI) LE ALIMAK Data report designer yeni bir rapor oluturmaya veya mevcut bir raporun biimini deitirmeye imkan tanyan bir ActixeX tasarm ortamdr. Bir raporun veri kayna ADO(ActiveX Data Objects), ADODC veya bir Data Environment olabilir. Eer kaynak olarak bir Data Environment kullanyorsanz, rapor zerine, veriye bal kontroller yaratmak iin, Data Environment ten alanlar srkle-brak yntemi ile alabilirsiniz. Data report designer aadaki ksmlardan oluur. DataRepor t Nesnesi Visual Basic formuna veya DHTML sayfa tasarm penceresine benzer bir ilevi vardr. Hem grsel tasarm hem de kod sayfasn ierir. DataReport un tasarm penceresi hazrlanmak istenen raporun bir tasla olarak kullanlr. Kod penceresinde yazacak olduumuz kodlar, fonksiyonlar ve prosedrler ile de tasarm penceresindeki kontrollere veya pencere zerindeki ksmlara mdahale etmemiz mmkndr. Section Nesnesi Data Report tasarm penceresindeki her bir ksm Sections koleksiyonunda bir Section nesnesi olarak temsil edilir. Tasarm ortamnda bu ksmlar birer balk olarak grebilirsiniz. Bu ekilde bu ksmlara nesneler yerletirip fare yardmyla istediiniz boyutu ve pozisyonu verebilirsiniz. Data Repor t Kontroller i Visual Basic te ara kutusunda hangi tasarm ortamnda alyorsanz o ortama ait kontrolleri grebilirsiniz. Data Report kontrolleri de sadece Data Report Tasarm penceresinde alabilen zel kontrollerdir. Data Report kontroln stnde Visual Basic e ait kontrolleri veya herhangi bir ActiveX kontroln kullanamazsnz.

VISUAL BASIC LE YAZILIM GELTRME DATA REPORT ZERNDEK KISIMLAR Data Report zerindeki yukardaki ekranda da grlebilecei gibi ok sayda ksm mevcuttur. Access teki rapor tasarm penceresini andran aslnda onun bir benzeri olan bu penceredeki ksmlar ve aklamalar aada verimitir. Repor t Header (Rapor Bal) Hazrlanan raporu btn sayfalarnda sayfann en stnde olmas istenen metinleri ierir. Bu bilgiler raporun bal, raporu hazrlayan veya raporun hazrland veri kayna gibi bilgiler olabilir. ayet bu bilgilerin sadece ilk sayfada grntlenmesini daha sonraki sayfalarda tekrar etmesini istemiyorsanz raporun For cePageBreak zelliini aadaki gibi rptPageBreakAfter olarak deitirmeniz gerekir.

VISUAL BASIC LE YAZILIM GELTRME Page Header (Sayfa Bal) Bu ksmda belirtilen bilgi her sayfann banda grnr. rnein raporun bal gibi bilgiler bu ksma yerletirilir. Group Header/Footer(Grup Bal ve Dipnotu) Raporda tekrar eden gruplandrlm ksmlar iine alr. Details Raporun tam ortasndaki tekrar eden ksm yani satrlar ierir. Page Footer (Sayfa Dipnotu) Sayfa bal ile benzer bir ilevi vardr. Farkl olarak sayfann alt ksmnda bulunur. Aktif sayfann numaras bu ksmda yazdrlabilir. Repor t Footer (Rapor Dipnotu) Raporun en sonunda olmas gereken bilgiler iin kullanlabilecek bir ksmdr. rnein bir zet veya irtibat adresi gibi. Raporda en son sayfann bal ile dipnotu arasnda grnr. DATA REPORT DESIGNER I YKLEMEK Data Report Designer , Visual Basic balarken otomatik olarak yklenir. Eer bir kullanc dizaynr kaldrrsa, projeye rapor eklemek iin tekrara yklenmesi gerekir. Projeye Rapor eklemek Project mensnden Components i sein. Designer sekmesine gein. Data Report seeneini iaretleyin. OK butonuna tklayn.

VISUAL BASIC LE YAZILIM GELTRME ayet proje olarak Data Project i semi iseniz yukardaki ekranda Data Repor t ve Data Environment seenekleri iaretli olarak gelecektir. Project mensnden Add Data Repor t u sein

VISUAL BASIC LE YAZILIM GELTRME Eer Project mensnde Data Repor t grnmyorsa daha nceden yklenmemi demektir. Bu ilemden sonra raporunuzu dizayn etmeye balayabilirisiniz. lk olarak raporumuza bir veri kayna balamamz gerekiyor. Daha sonra veri kayna zerindeki veri alanlarn rapordaki kontrollere balamalsnz: Aadaki grafik bunun gstermektedir. Veri kaynan tanmlamak iin aadaki admlar izleyiniz. 1)Yeni bir DataProject uygulamas ile projeye ilave edilen Data Environment penceresini anz.

VISUAL BASIC LE YAZILIM GELTRME 2)Yukardaki pencerede Connection1 balantsn seerek pencerenin stnde bulunan rnekler(Properties , yukardaki ekranda gsterilmektedir.) butonuna tklaynz. Bu ilemden sonra aadaki ileti penceresi alacaktr. 3)Bu ileti kutusunda listenin en stndeki Microsoft Jet Ole DB Provider alternatifini seiniz ve Connection(Balant) sekmesine tklaynz. 4)Select or enter a database (Veritaban adn sein veya girin) kutusunun yanndaki butona tklayp veri tabann seiniz. Biz burada rneimizde Access veritaban kullandmz iin bir nceki admda Microsoft J et Ole yi setik

VISUAL BASIC LE YAZILIM GELTRME Test Connection(Balanty Sna) butonuna tklarsanz balantnn kurulup kurulmadn anlayabilirisiniz. Yukardaki pencerede Test connection succeeded (Snama balants baarl oldu) mesaj balantnn baarl bir ekilde kurulduunu gstermektedir. OK butonu ile Data Link Proper ties penceresini kapatnz. Ardndan Data Environment ve Connection iin uygun isimleri aadaki gibi ataynz. rneimizde Data Environment nesnesi iin deKitaplik isminin atanmas aadaki ekilde grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME DEConnection nesnesinin adn da aadaki gibi cntKitaplik olarak deitiriniz. Bu ilemden sonra yaplmas gereken ey, raporun elde edilmesi iin, verinin elde edilecei Recordset nesnesini tanmlamak olacaktr. Recordset nesnesi veri kaynandan verilerin alnp tutulduu nesnedir. Aslnda yrtlen mantk normal bir veritaban uygulamasnda yaplan ilemlerden farkszdr. nce veritaban alacak daha sonra Recordset nesnesi ile sabit diskte bulunan veriler ilenecektir. ADO da bu ilem iin command nesnesi kullanlr. Command nesnesi ile veri tabanna gnderilen sorgunun sonucu az nce bahsettiimiz Recordset nesnesinde tutulur. Bu hiyerariyi aadaki gibi gstermek mmkndr. Yukardaki rneimize Command nesnesi eklemek iin tasarm penceresinin st tarafnda bulunan Add Command butonunu kullanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Add Command butonu ile cntKitaplik balant nesnesinin altna yukardaki rnekte de olduu gibi bir command nesnesi eklenir. Fare yadm ile bu nesneyi seerek farenin sa tuuna tklaynz. Yukarda alan ksa yol mensnde Properties seilecek olursa bu nesnenin zellik sayfalar ekrana gelecektir. Bu ekran sayesinde command nesnesine istenen sonular retecek tanmlar yapmak ok kolay olacaktr.

VISUAL BASIC LE YAZILIM GELTRME Command nesnesinin balad Recordset iin veriler iki ayr kaynaktan elde edilebilir. Bunlardan birincisi dorudan bir veri taban nesnesini tanmlamaktr. Bu nesneler yukardaki pencerede Database Object kutusuna tklaynca alan nesnedir. Bu nesneler iinden Table seeneini tklaynz.

VISUAL BASIC LE YAZILIM GELTRME Dier bir seenek ise Recordset iin SQL ifadesini kullanmaktr. Bu durumda SQL Statement ifadesi seilerek raporu retecek olan SQL ifadesi girilir. Veri kayna olarak Table setikten sonra Object Name kutusundaki veri tabannda bulunan veri raporu retecei tablo seilir. rneimizde tablo kitaplar olarak seilmitir. Tamam butonu ile zellikler ileti kutusunu kapatmadan nce bu yeni oluturulan command nesnesinin adn cmdKitaplar olarak deitiriniz ve pencereyi kapatnz. Data Environment nesnesinin son hali ise aadaki gibidir. Bu ekranda hiyerarinin en stnde deKitaplik DataEnvironment nesnesi grlmektedir. Bu nesne bir Data Project uygulamas oluturulduunda Visual Basic tarafndan kendiliinden tasarm penceresine eklenir ve her Data Project uygulamasnda bulunmas zorunludur. Kendiliinden eklenen bir dier nesne ise Connection(balant) nesnesidir. Bu nesnenin altnda ise Command nesnesini ve bu nesne ile tanmlanan veri kaynan grmek mmkndr.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki DataEnvironment tanmlar basit bir raporu oluturmak iin yeterlidir. Bundan sonra yaplmas gereken Data Repor t zerindeki tanmlamalar olacaktr. Data Repor t nesnesini semek iin fare ile DataReport1 balkl pencerenin balna tklamak yeterlidir veya F5 tuu ile zellikler penceresini atktan sonra nesne isimlerini ieren kombine kutudan DataReport Nesnesi seilebilir.

VISUAL BASIC LE YAZILIM GELTRME DataReport un ismini dtrKitaplik olarak deitirdikten sonra bu raporu veri kaynan tanmlayan DataEnvironment nesnesi ile ilikilendirmek gerekir. Bu iliki DataReport nesnesinin DataSour ce ve DataMember zellikleri kullanlarak gerekletirilir. DataSour ce zellii veri tabannn tanmn ierir fakat DataMember zellii ise bu kaynan tanmlad DataEnvironment nesnesindeki balantlar ierir. Aadaki ekranda rneimiz iin DataSource zelliine deKitaplik isimli DataEnvironment atanrken DataMember zelliine de cmdKitaplar isimli Command nesnesi atanmtr.

VISUAL BASIC LE YAZILIM GELTRME Data Repor t penceresinde ilk olarak ksm grlr. Dier ksmlar grmek veya iptal etmek iin pencere zerinde farenin sa tuuna basnca alan aadaki ksayol mensn kullanabilirsiniz. Tablodan alnan bilgileri rapor zerinde gstermek iin Data Repor t kontrollerinden yararlanacaz. Label(RtpLabel) TextBox(RtpTexBox) Image(RtpImage) Line(RtpLine) Shape(RtpShape) Function(RtpFunction) Bu kontrolleri srkle-brak yntemi ile raporunuza ekletebilirsiniz veya yeni tasarm penceresinde farenin sa tuuna basnca alan ksayol mensndeki Inser t Control seeneini kullanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki seeneklerden herhangi birini kullanarak raporun Detail ksmna TexBox kontrol ekleyiniz ve DataField zelliine kod alann ataynz.

VISUAL BASIC LE YAZILIM GELTRME DataField zelliinin yanndaki butona tklayacak olursanz listede kitaplar tablosundaki tablonun tablo alanlarnn geldiini grebilirsiniz. Bu alanlar, DataEnvironment penceresindeki cmdKitaplar isimli Command kontrolnde tanml tablo alanlardr. Yukardaki grlen dier tablo alanlar iinde raporun Detail ksmna birer metin kutusu koyup bunlar yukardaki gibi bu alanlarla ilikilendiriniz. Bu durumda DataRepor t tasarm penceresinin son hali aadaki gibi olacaktr.

VISUAL BASIC LE YAZILIM GELTRME Son olarak bu raporu altrmak iin bir Visual Basic formuna ihtiyacmz vardr. Data Project uygulamasnn balatlmas ile projeye ilave edilen bir form zaten mevcuttur. imdi bu formu ap stne bir buton yerletiriniz ve bu butonun Caption zelliini RAPORU GSTER olarak deitiriniz. Daha sonra formun kod penceresini anz ve butonun click olay prosedrne aadaki tek satrdan oluan kodu giriniz. Pr ivate Sub Command1_Click() dtrKitaplik.Show End Sub

VISUAL BASIC LE YAZILIM GELTRME F5 tuu ile veya Run\Start men komutu ile uygulamay altrnz ve butona tklaynz. Rapor penceresinin alt ksmndaki butonlar kullanarak sonraki veya nceki sayfalara, ilk veya en son sayfaya gitmeniz mmkndr. En stte bulunan yazc butonu ile bu raporu yazcya ok kolay bir ekilde gndermeniz mmkndr. Rapor penceresini altrabilmeniz iin sisteminizde tanml bir yazcnn bulunmas zorunludur. Onun yanndaki buton ise raporun farkl formatlarda dosya olarak ktsn almak iin kullanlabilecek Expor t butonudur. Tkladnzda aadaki Export penceresi alr. Bu ekranda oluturulacak dosya ismi, disk zerindeki yeri ve format belirtir. lk deer olarak HTML format seili olarak gelir fakat istenirse metin format da Kayt Tr kutucuuna tklanarak seilir.

VISUAL BASIC LE YAZILIM GELTRME Daha sonra bu dosya HTML trnde bir dosya ise, bir tarayc(Browser) ile veya metin dosyas ise herhangi bir metin editr ile alabilir. Aadaki rnekRapor isimi ile kaydedilen raporun Internet Explorer yardm ile alm hali grlmektedir.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki raporu daha anlalr yapmak iin raporu Page Header ksmna aadaki Label kontrollerini yerletiriniz ve yaz biimi ve renk ayarlarn istediiniz grnm elde etmek iin deitiriniz. Label kontrolnn Caption zelliine baz zel karakterler atayarak bu kontroln daha zel amalar iin kullanlmasn salayabiliriz. Bunlar, Aktif sayfa iin %p Toplam sayfa says iin %P O anki tarih iin(Ksa Biimde) %d O anki tarih iin(Uzun Biimde) %D Rapor Bal %i karakterleridir. Raporun altrldktan sonraki son grnm aadaki gibi olacaktr.

VISUAL BASIC LE YAZILIM GELTRME RAPOR ZERNDEK VERLER GRUPLANDIRMAK ou kez raporlar iin gruplandrlm veriler kullanlr. Verileri istenen kriterlere gre gruplamak, yaplmas gereken fazladan birka ilem gerektirir. Yukarda ktsnn grdmz raporda kitaplar ile ilgili bilgiler tablodaki satrlar halinde listelenmektedir. Bu bilgiler ; kitabn numaras, ismi,tr,yaynevi,yayn tarihi ve fiyat alanlarndan olumaktadr. rnein bu kitaplar konularna gre bir ayrma tabi tutarak listelemek istediimizi dnelim. Bu durumda Data Environment penceresinde ve Data Repor t penceresinde aadaki deiiklikleri yapmamz gerekir. lk olarak Data Environment penceresini aktif hale getiriniz ve aadaki gibi cmdKitaplar Command nesnesini seerek farenin sa tuuna tklaynz. Alan ksayol mensnden Properties seeneine tklaynz. Aadaki diyalog penceresi alacaktr.

VISUAL BASIC LE YAZILIM GELTRME Daha sonra Grouping sekmesini seiniz ve aadaki dzenlemeleri yapnz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki sekme Grouping Command Object kutusuna tklaynz. Bylece sekme zerindeki dier kontroller aktif olacaktr. Fields in Command liste kutusundan Command nesnesinin ierdii alanlar grlmektedir. Bu alanlar iinden gruplanacak olan veri seilir. rneimizde konu isimli tablo alan seilerek > butonu ile Fields Used for Grouping liste kutusuna atlmtr. Bu seimlerin ardndan OK butonuna basarak pencereyi kapatnz. Data Environment penceresindeki aa grnm bu gruplamay aadaki gibi temsil edecektir. cmdKitaplar Command nesnesi cmdKitaplar_ Grouping olarak deitiini, Summary ve Detail isimli iki klasrn eklendiini grebilirsiniz. Data Environment nesnesindeki bu tanmlamalarn ardndan Data Repor t nesnesindeki deiikliklere geebiliriz. Data Repor t penceresini aktif hale getiriniz. Data Repor t nesnesinde ilk olara k ksm bulunur. Bunlar Page Header , Detail ve Page Footer ksmlardr.

VISUAL BASIC LE YAZILIM GELTRME Farenin imleci pencerenin iinde herhangi bir yerde iken sa tua bastnzda aadaki ksayol mens alacaktr. Bu mende Show Page Header /Footer seeneine tklarsanz Data Repor t penceresine Group Header ve Group Footer adnda iki yeni ksm eklenecektir.

VISUAL BASIC LE YAZILIM GELTRME zellikler penceresini anz ve DataRepor t nesnesini seiniz. DataMember zelliini cmdKitaplar_Grouping olarak deitiriniz. Command nesnesine de kmeleme ilemi yaparken, bir isim kullanmazsak, Visual Basic, Command nesnesinin adna grouping ilavesi ekleyerek bu kmelenmi Command nesnesine bir isim verir. Kullanc isterse bu ismi deitirebilir. DataMember zelliinin de bu yeni deiiklie gre gncellenmesi gerekir; nk raporun hazrlanmas iin artk farkl bir Command nesnesi kullanlacaktr. Detail ksmnda bulunan konu text ini Gorup Header srkleyerek ksmna tamay unutmaynz Artk kmelemek istediimiz tablo alann, raporun Grouping ksmna brakacamz bir metin kutusu ile ilikilendirebiliriz. Raporun tasarm penceresinin son grnm aadaki gibi olacaktr.

VISUAL BASIC LE YAZILIM GELTRME Bu ilemin ardndan F5 tuu ile uygulamay altrnz ve Rapor Gster butonuna tklaynz. Raporun kts aadaki gibi olacaktr.

VISUAL BASIC LE YAZILIM GELTRME Rapor in Ver i Kayna Belir tmek Projenize rapor ekledikten sonra veri kaynan belirtmek zorundasnz. Veri kaynan tasarm annda yada alma annda belirleyebilirsiniz. Yukardaki rneimizde bunu tasarm annda nasl yapacamz gsterdik. Bu ilemleri kod kullanarak ise aadaki gibi yapmamz mmkndr. Veri kaynan belirledikten sonra 3 farkl ekilde rapora balayabilirsiniz. ADODC ADO Data Environment ADODC iin rnek kod: Eer veri kayna ile raporu birbirine balamak iin ADODC yi kullanacaksak ConnecttionString ve RecordSource zelliklerini set etmemiz gerekiyor. Eer rapor yazdrlacaksa PrintRepor t metodu kullanlmaldr: Pr ivate Sub cmdPrintReport_Click() With Adodc .ConnecttionString = "NorthWind" .RecordSource = "Select*from Customers" End With With DataRepor t1 Set .DataSource = Adodc .PrintReport End With Unload DataRepor t1 End Sub

VISUAL BASIC LE YAZILIM GELTRME ADO in rnek Kod: ADO veri kmeside rapor iin bir veri kayna olarak kullanlabilir. Dim cnn As New Connection Dim rst As New Recordset cnn.Open "NorthWind" rst.Open "Select*from shippers", cnn, adOpenKeyset, adLockReadOnly With DataReport1 Set .DataSource = rst .ExportReport rptFmtText, "c:\data\report.txt", True, False End With Unload DataReport1 Data Environment in rnek Kod: Raporun veri kayna olarak Data Environment te kullanlabilir. Bununla beraber Data Environment veri kayna olarak set edilmesinden nce tanmlanmas gerekiyor: Pr ivate Sub cmdExportReport_Click() Dim de As New DataEnvironment1 de.shippers With DataReport1 Set .DataSource = de.shippers .ExportReport rptFmtHTML, "c:\data\report.html", True, False End With End Sub Unload DataReport1

VISUAL BASIC LE YAZILIM GELTRME Raporda Kullanlan Fonksiyonlar RptFuncAve :Stunun ortalamasn bulur. RptFuncMax :Stundaki deerlerden maksimumunu bulur. RptFuncMin : Stundaki deerlerden minimumunu bulur. RptFuncCnt :Satrlarn saysn bulur. RptFuncSDEV :Standart sapmay bulur. RptFuncSum :Stunun toplamn bulur RptFuncVCnt :Bo olmayanlarn saysn bulur. Rapor Metotlar Aadaki metotlar alma annda kullanlabilir: Metot Aklama ExportReport Farkl biimdeki(formattaki) dosyalardan kt retir. PrintForm Rapor ablonu yazdrr. PrintReport Raporu yazdrr. Show Raporu nizleme yapar. Refresh Rapor ktsn yineler. Expor tRepor t Metodunun Yazlm DataReport1.ExportReport ([FormatIndexOrKey],[FileName],[Overwrite],[ShowDialog],[PageRange,From Page,ToPage]) as Long

VISUAL BASIC LE YAZILIM GELTRME Aadaki metotlar seimliktir: Argman Aklama FormatIndexOrKey String veya tamsay deer kabul eder. D format nesnelerini alr. 4 format kabul eder. RptFmtHTML(0)(default) RptFmtText(1) RptFmtUnicodeText(2) RptFmtUnicodeHTML_UTF8(3) FileName Dosya yolunu belirtir. Overwrite lk deeriTrue dir. Var olan bir dosya zerine ayn isimle kaydedilip edilmeyeceini ifade eder . ShowDialog lk deeri False dir. Dosyann yolunu ve Overwrite zelliinin bir dialog box aracl ile belirlenip belirlenmeyeceini ifade eder. PageRange Yazlacak sayfalar belirler: RptRangeAllPages RptRangeFromTo lk deer rptRangeAllPages dir Aadaki kod farkl biimdeki bir dosyann ilk iki sayfasn alr: Private Sub cmdReportSample_Click() DataReport1.ExportReport rptFmtText, "c:\data\sample.txt", True, False, rptRangeFromTo, 1, 2 End Sub Pr intRepor t Metodunun Yazlm Genel ifade: DataReport1.PrintReport([ShowDialog],[PageRange,FromPage,ToPage]) as Long

VISUAL BASIC LE YAZILIM GELTRME rnek Kod: Pr ivate Sub cmdPrintReport_Click() DataReport1.PrintReport , rptRangeFromTo, 1, 2 End Sub Show Metodunun Yazlm Genel ifade: DataReport1.Show([Modal],[]Ownerform]) rnek Kod: Pr ivate Sub cmdPrintReport_Click() DataReport1.Show vbModal, Me End Sub Rapor zellikler i zellik Aklama BottomMargin TopMargin Formun alt ve st snrlarn set eder veya dndrr. DataSource Raporun bal olduu veri kaynan set eder veya dndrr. Font Rapor iin ilk yaz biimini set eder veya dndrr. GridX GridY Tasarm annda hizalama zgarasndaki yatay ve dikey blmlemeleri belirtir. LeftMargin RightMargin Formun sa ve sol snrlarn set eder veya dndrr. ReportWidth Formdaki tm blmlerin toplam geniliini set eder veya dndrr. Title Rapor baln set eder veya dndrr.

VISUAL BASIC LE YAZILIM GELTRME Aadaki rnek alma annda raporun baz zelliklerini set eder: With DataReport1 .Title= Sample Report .Font= Arial .TopMargin=0 .LeftMargin=0 End With DATA VIEW PENCERES Uygulamamzda oluturduumuz veritaban yapsn grebileceimiz ve zerinde ilem yapabilecek bir dier seenek te Data View penceresini kullanmaktr. Data View penceresini View mensnden arabileceimiz gibi ara ubuundaki Data View butonunu da kullanabilirsiniz. Aadaki ekilde her iki seenek gsterilmitir. Aadaki Data View penceresi uygulamamzda oluturduumuz veritaban yapsn gstermektedir.

VISUAL BASIC LE YAZILIM GELTRME Data View penceresini kullanarak aadaki veri kaynaklar zerinde deiiklikler yapabilir veya yenilerini uygulamanza katabilirsiniz. Bunlar; Tablolar veya View(Grn) ler Veritaban diyagramlar(veritaban emasnn grafiksel temsili) Stored prosedrler(derlenmi SQL ifadelerinden oluan koleksiyonlar) ve Trigger lar(bit tr zel stored prosedr) Data View penceresi uygulamadaki Data Environment nesnelerinden elde ettii veritaban yapsn ve bu nesnelerde balantlar grntler. Bu pencerenin salad dier avantaj ise pencere iindeki nesneleri srkle-brak eklinde DataEnvironment penceresine brakabiliyor olmamzdr.

VISUAL BASIC LE YAZILIM GELTRME BLM 32 VISUAL BASIC VE WINDOWS LETM STEM ETKLEM

VISUAL BASIC LE YAZILIM GELTRME WINDOWS FONKSYONLARI VE VISUAL BASIC Bir Visual Basic projesini, Visual Basic ortamndan bamsz olarak, ayr birim halinde icra etmek zere .exe haline getirmeniz gerektiini biliyorsunuz. Fakat bu yeterli deildir. Programn alabilmesi iin geerli Visual Basic DLL dosyalarnn da bulunmas gerekir. Windows 95 ya da Windows 3.11 iletim sistemleri ise, daha ziyade sistem ile ilikili olarak, bu trde yzlerce fonksiyon iermektedir. Bu fonksiyonlara API (Application Programming Inter face) fonksiyonlar ad verilir. Pek ok Visual Basic uygulamasnda, Visual Basic in kendi fonksiyon kitaplnda bulunan fonksiyonlar yeterli olacaktr; fakat bunlarn yeterli olmad ve ilerim sistemi ile dorudan etkileimin gerektii durumlarda, API fonksiyonlarn kullanmak gerekebilir. API fonksiyonlarna ihtiya duyulmasnn en nemli nedeni, iletim sisteminin(burada Windows) baz fonksiyonlarnn, Visual Basic uygulamasna yaptrmak isteidir. Bylece, kullanc iletim sistemi ile kar karya gelmeden, sistemin baz fonksiyonlarn Visual Basic uygulamas iinden yapabilecektir. Visual Basic uygulamasnn araca Windows fonksiyonu iin nce Declar e deyimi ile bildirimde bulunmak gerekecektir. Bir Declare deyiminin genel ekli, 2 farkl trde yazlabilir: 1)Bir DLL iindeki Sub tipi bir program iin: [Public | Private] Declare Sub sim Lib Kitaplk Ad [Alias sim ] [([Argman listesi])] 2)Deer gnderen bir Function (fonksiyon) iin: [Public | Private] Declare Function sim Lib Kitaplk Ad [Alias sim ] [([Argman listesi])] [As Tip bildirimi] DLL(Dynamic Link Libr ar ies-Dinamik Ba Ktphanesi) KAVRAMI DLL, ya da Dynamic Link Libraries, Windows iletim sistemindeki bir olanaktr ve bir programlama dili iinden arlabilen d fonksiyonlar kmesini ieren bir modl anlamndadr. Bir DLL, Visual Basic dnda bir programlama dili yardm ile (Genellikle C /C++ veya Pascal) gelitirilip Windows iine katlan

VISUAL BASIC LE YAZILIM GELTRME Visual Basic ya da dier bir uygulama gelitirme arac iinden arlabilen fonksiyonlar ierir. Bu anlamda, DLL lerin kullanm ile Visual Basic in snrlar ve yetenekleri genilemektedir. Windows API da iaret edildii gibi DLL dir. Visual Basic in 3.0 versiyonuna kadar Visual Basic ile DLL gelitirme olana yoktu. DLL yaratabilme imkan Visual Basic 4.0 ile Visual Basic iine eklenmi bir zelliktir. DLL lerin Visual Basic ile balantl hale gelmesi (link ilemi) derleme (compile) zamannda deil de icra (run ) zamannda gerekletirilir. Windows iletim sistemi ile bir program alt zaman, iletim sistemi o programn iinde bir ktphane fonksiyonu kullanp kullanmadna( Bu fonksiyonlar iin Declar e komutu ile bildirimde bulunulur) bakar; kullanlmsa bu fonksiyonun adresi tespit edilir. Programn icras esnasnda o fonksiyon arlrsa artk nerede olduu bellidir. DLL alma prensibi esas olarak bu ekildedir. DLL in en yararl zelliklerinden birisi, DLL ayn anda birden ok kullancnn kullanabilmesidir. Buna karlk bir DLL bellekte bir kere yer alr. Bylece her farkl aran iin ayr bellek alan kullanlmaz. Bir DLL dosyasn kullanan tm uygulamalar kapand zaman, bu DLL bellekten otomatik olarak silinir. Buna mukabil Windows iletim sistemi, USER,GDI ve KERNEL dibi baz DLL dosyalarn, kendisi alt srece bellekte tutar. RNEK UYGULAMA: Windows Yardm Motoruna (Help Engine) Eriim Aadaki admlar uygulaynz: 1)32-Bitlik Microsoft Windows sistemleri kullanyorsanz, aadaki bildirimi bir kod modlnn General/Declar ations ksmnda yapnz. Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long Modl eklemek iin, Project mensnden Add Module alt mensn semeniz gerektiini biliyorsunuz.

VISUAL BASIC LE YAZILIM GELTRME b)12-Bitlik Microsoft Windows sistemleri kullanyorsanz, yukardaki fonksiyon yerine, aadaki bildirimi yaznz: Declare Function WinHelp Lib "user" (ByVal hwnd As Integer, ByVal lpHelpFile As String, ByVal wCommand As Integer, dwData As Any) As Integer Burada hwnd parametresi, formun hwnd zellii olacaktr. IpHelpFile parametresi, help dosyasnn bulunduu yeri belirleyen yolun addr. (path name) 2)wCommand parametresi iin, aadaki sabitleri, kod modlnn General/Declarations ksmna giriniz: Global Const HELP_QUIT = &H2 Help i sona erdirir. Global Const HELP_CONTEXT = &H1 ilgili konuyu, belirte numaras ile gster Global Const HELP_INDEX = &H3 ndeks i grntler Global Const HELP_HELPONHELP = &H4 Help kullanlrken, help i grntle Global Const HELP_SETINDEX = &H5 Alternatif indeksi grntler Global Const HELP_KEY = &H101 Anahtar szck ile ilgili konuyu gster Global Const HELP_MULTIKEY = &H201 Alternatif tabloda anahtar szc ara Bu tanmlardan sonra, modln General/Declar ations ksm aadaki ekli almtr.

VISUAL BASIC LE YAZILIM GELTRME 3)Formun zerini ift tklatarak formun kod penceresini getiriniz. Tools/Add Procedure mensn seerek, YardimMenu adn vereceiniz aadaki prosedr giriniz: Public Sub YardimMenu(F As Form) Dim Nesne As Long Nesne = WinHelp(F.hwnd, "c:\windows\help\windows.hlp", HELP_HELPONHELP, CLng(0)) End Sub 4)Formun zerine bir komut butonu yerletiriniz. Caption zelliini YARDIM olarak deitiriniz. Komut butonunun kod penceresine aadaki kodu giriniz: Pr ivate Sub Command1_Click() YardimMenu Me End Sub

VISUAL BASIC LE YAZILIM GELTRME 5)Run/Start ile uygulamay icra ediniz. YARDIM butonuna tklaynz. ekil W.1 deki grnm elde edilecektir. ekil W.1 - cra esnasnda, help penceresinin gelii Sabitlerle belirtilen zelliklere sahip bir help mens, icra esnasnda, kullancnn hizmetine sunulmutur. API KULLANIMI LE LKL METN DOSYALARI API kullanm ile ilikili olarak aadaki metin dosyalar faydal bilgiler iermektedir: APILOD.TXT adl dosya, API Text Viewer adl programn almas konusunda faydal bilgiler ierir. LABELS.TXT adl dosya, postalama etiketleri ile ilikili bilgiler ierir. PACKING.LST adl dosya, Visual Basic datm disketlerindeki tm dosyalarla ilikili bilgiler ierir. VB4DLL.TXT adl dosya, Visual Basic ile birlikte kullanmak zere, DLL (Dinamik Link Kitaplklar) gelitirme konusunda bilgiler ierir. WIN31API.TXT adl dosya, 16-Bitlik versiyon iin, Windows API fonksiyonlar ile ilikili olarak, tip bildirimleri, sabitler ve prosedrler hakknda gerekli bilgileri ierir. WIN32API.TXT adl dosya ise, 32 Bitlik versiyon iin benzer bilgiler ierir. WINMMSYS.TXT adl dosya ise, Windows 3.1 Multimedia API fonksiyonlar hakknda, sabit, tip bildirimi ve prosedr bilgilerini ierir. Kitabn ek blmnde WIN31API.TXT adl dosyann ierii sunulmutur.

VISUAL BASIC LE YAZILIM GELTRME ETKN PROGRAMLAMA TEKNKLER- DoEvents() FOMKSYONU Visual Basic uygulamalarnn genellikle olaylar tar afndan srlen (event dr iven) zellikte olduunu biliyoruz. Bu prosedr, bir olayn meydana geldiini alglamsa, ve o olaya meydana geldiinde prosedrn ne yapmas gerekiyorsa, o ilemi yerine getirecektir. Pek ok durumda, Visual Basic program baz olaylarn meydana gelmesini beklemek durumundadr. Bu bo zamanlarda bilgisayarn ilemcisi(processor) baka bir ileme ynlendirilir. Visual Basic te uygulamay periyodik olarak olaylara cevap vermek zere ynlendirmek ve arta kalan zamanlarda da baka ilemler yaptrmak mmkndr. Bunu gerekletirecek olan fonksiyon DoEvents() fonksiyonudur. Visual Basic program iinde, bu fonksiyon ile karlanca, o anda kontrol Windows iletim sistemine geecektir. Windows iletim sistemi, o ana kadar olan olaylar bir kuyrua yerletirmitir. Sra ile bu kuyruktaki olaylar gzlenerek ilgili olay prosedrleri altrlr. DoEvents() fonksiyonu, bir olay prosedr iinde kullanlmamaldr. Hibir olayn gzlenmedii sre iinde altrlan bir evrim bo zaman evrimi olarak isimlendirilir. Bo zaman evrimleri Main ad verilen zeli bir Sub modl iine yerletirilirler. Bir projede ancak bir tane Sub Main bulunabilir. Bir bo zaman evrimi ablonu aada verilmitir. Public Sub Main() Do While DoEvents() Bo zaman icra edilecek komutlar Loop End Sub Sub Main iine bo zaman evrimini yerletirdikten sonra yaplmas gereken ey, Main prosedr Star t Up modl haline getirmektir. Bunun anlam, Visual Basic projesi icra edildii zaman, ilk icra edilecek olan ey, Main prosedr olacaktr. Sub Main() i Start Up modl haline getirmek iin, nce Project<Proje ismi> Proper ties mensn seerek karnza gelen pencerede Gener al i semelisiniz. Project penceresinde ise, Form kutusu

VISUAL BASIC LE YAZILIM GELTRME iine mouse Yardm ile Form1 yerine Sub Main() i yerletiriniz. (ekil A.1) SubMain() bir kez balang nesnesi seildikten sonra, Visual Basic artk hibir formu otomatik olarak yklemeyecektir. Bunu gerekletirmek iin, projeniz iinde Load ve Show metotlarn kullanarak formlar ykleyip grnr hale getirmelisiniz. ekil A.1 Sub Main() in Start Up a yerletirilmesi RNEK KOD: imdi DoEvents() fonksiyonunun ilevini daha iyi grebilmek amac ile bir rnek kod veriyoruz. Aadaki admlar yerine getiriniz: 1)Project mensnden Add Module seiniz. Gener al/Declar ations alanna aadaki satr yaznz.( ekil A.2) Global s As Long Global a As String

VISUAL BASIC LE YAZILIM GELTRME ekil A.2 Genel bildiri satr 2) Kod modl iine aadaki kodu giriniz. (ekil A.3) ekil A.3 Sub Main() Modl

VISUAL BASIC LE YAZILIM GELTRME 3)Sub Main() i Start Up modl yapnz. Bunun iin Project<Proje ismi> Proper ties mensnden General seiniz.(ekil A.4) ekil A.4 - Sub Main() in Start Up modl yaplmas. 4) Aadaki Form_Click prosedrn oluturunuz.( ekil A.5) ekil A.5 Form_Click Prosedr

VISUAL BASIC LE YAZILIM GELTRME 5) Run mensnden Star t seerek projeyi icra ediniz. Bo form belirecektir. Biraz bekledikten sonra mouse sol tuuna basnz(Click ilemi). ekil A.6 daki gibi bir kt gelecektir. Tamam butonunu seerseniz bu kez ekil A.7 deki gibi bir ekranla karlarsnz. 6) Tekrar Tamam butonuna basarsanz ve biraz beleyip click yaparsanz ekil A.8 deki pencere gelir ve burada Tamam butonu seilirse ekil A.9 daki pencere gelecektir. ekil A.6 Bo sre iinde (Click ilemine kadar) s nin hesaplanan deeri

VISUAL BASIC LE YAZILIM GELTRME ekil A.7 Bo sre evrimi iinde stringin hesaplanan deeri ekil A.8 s nin bir sonraki deeri

VISUAL BASIC LE YAZILIM GELTRME ekil A.9 a stringinin ikinci deeri ekil A.6 dan A.9 a kadar olan ekillerde kolayca gzlendii gibi, s nin deeri gittike ykselmekte, ayrca as stringinin uzunluu da zamanla artmaktadr. Bunun nedeni udur: Program altrdnz zaman, bir olay alglanana kadar(click olay vb gibi) bo zaman evrimi icra edilecektir. Bo zaman evriminin her admnda s deikenine 1 eklenmektedir. Ayrca s nin deeri 1000 in kat olan bir sayya eritiinde de, a stringine bir a harfi eklenmektedir. Form zerini clicklediinizde ise, DoEvents() fonksiyonu etkisi ile kontrol Windows a geecek ve Click eventinin(olay) gerektirdii prosedr(Form_Click) icra edilecektir. Bu prosedr ise, Global deikenler olarak tanmland iin kolayca s ve a nn deerlerine eriilerek bunlar mesaj kutularna aktaracaktr.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 1: WINDOWS PENCERELERNE DNAMK MEN SEENEKLER EKLEMEK API fonksiyonlarn kullanarak Windows pencerelerine Default (varsaylan) olarak bulunan men seenekleri listesine,dinamik olarak yeni men seenekleri eklemek mmkndr. Bu konuda aada ayrntlar verilen uygulama iyi bir fikir verecektir. Admlar izleyiniz: 1)Form zerine bir komut butonu yerletirerek Caption zelliini MENYE YEN SEENEK EKLE olarak deitiriniz. 2)Formun Genar al/Declarations ksmna aadaki bildirim komutlarn giriniz.: Pr ivate Declar e Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Pr ivate Declar e Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long Const L_STRING = &H0& 3)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() x$ = InputBox("Eklenecek men bal") AppendMenu GetSystemMenu(Me.hwnd, False), L_STRING, &H100, "&" + x$ End Sub 4)Run/Start ile uygulamay altrnz. Komut butonunu tklaynz. ekil U.1 deki ekran gelecektir. Burada aktif Windows penceresi( burada Visual Basic formu) mensne eklenmesi istenen yeni seenek sorulacaktr. Bunu Resim Ykle eklinde giriniz. Tamam butonunu seiniz. 5)Mouse gstergesini formun sol st kesine gtrp mouse sol tuunu tkladnzda, Resim Ykle ifadesinin yeni bir seenek olarak formun default mensne eklendiini greceksiniz.(ekil U.2)

VISUAL BASIC LE YAZILIM GELTRME ekil U.1 Men ekleme uygulamasn ilk adm ekil U.2 - Visual Basic formunun default mensne eklenen yen Resim Ykle seenei 6) MENYE YEN SEENEK EKLE butonunu her tkladnzda, yeni bir seenek girip eklemek imkanna sahipsiniz.(ekil U.3)

VISUAL BASIC LE YAZILIM GELTRME ekil U.3 Default menye eklenen stanbul niversitesi Hakknda seenei RNEK UYGULAMA 2: SELEN MEN ALTERNATFNE GRE LEM YAPTIRMA Bu uygulamada ise, yukardaki rnek Uygulama 1 i bir adm ileriye gtrecek ve eklenen men seenekleri iin gerekletirilecek ilemleri de tanmlayarak, kullanc bu men seeneini setii zaman buna kar gelen ilemi nasl gerekletireceini belirteceiz. Bu rnekte, dinamik men ekleme ilemi daha basit olarak ele alnarak eklenecek men seenei ile ilikili aklama nceden bir string sabiti olarak verilmektedir. (nceki rnekte, icra esnasnda mesaj kutusuna giriliyordu.) Aadaki admlar izleyiniz: 1) Formun Caption zelliini MENYE SEENEKLER EKLEME olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Formun General/Declar ations ksmna aadaki ifadeyi giriniz: Option Explicit 3)Form ile ilikili olarak aadaki olay prosedrlerini oluturunuz.: Pr ivate Sub Form_Load() AppendMenu GetSystemMenu(Me.hwnd, False), MF_STRING, &H300, "&stanbul niversitesi.." PrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf SubWndProc) End Sub Pr ivate Sub Form_Unload(Cancel As Integer) SetWindowLong Me.hwnd, GWL_WNDPROC, PrevWndProc End Sub 4)Project/AddModule yolu ile projeye bir modl ekleyiniz. 5)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long Public Const MF_STRING = &H0& Public Const GWL_WNDPROC = (-4&) Public Const WM_SYSCOMMAND = &H112 Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

VISUAL BASIC LE YAZILIM GELTRME Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Public PrevWndProc As Long 6)Modln General ksmna aadaki fonksiyonu giriniz: Public Function SubWndProc(ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case MSG Case WM_SYSCOMMAND If wParam = &H300 Then MsgBox "Trkiye'nin en byk ve en eski niversitesidir." End If End Select SubWndProc = CallWindowProc(PrevWndProc, hwnd, MSG, wParam, lParam) End Function 7)Oluturduunuz projeye View/Project Explor er men admlar ile bakarsanz ekil U.5 teki grnm elde edeceksiniz. ekil U.5 Projeye Project Explorer ile bakma 8)Run/Start ile projeyi icra ediniz. MENYE SEENEKLER EKLEME balkl form gelecektir. Ekrandaki mouse gstergesini formun sol st kesine gtrerek mouse sol tuuna basarsanz., ekil U.6 daki men grnecektir. Kolayca grld zere, formun default mensne stanbul niversitesi seenei eklenmitir.

VISUAL BASIC LE YAZILIM GELTRME ekil U.6 Formun default mensne stanbul niversitesi seeneinin eklenmesi. 9)Form mensne eklenen stanbul niversitesi men seeneini mouse sol tuunu tklayarak seiniz. Bu durumda ekil U.7 deki mesaj belirecektir. ekil U.7 - stanbul niversitesi men seenei seilince ekrana gelen mesaj penceresi

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 3: WNDOWS VE WNDOWS SSTEM DZNNN YOLU(PATH) RENME Bu rneimizde, API fonksiyonlarn kullanarak Windows un ve Windows sistem dizininin adresini reneceiz. Admlar izleyiniz: 1)Formun Caption zelliini Windows un ve Windows Sistem Dizininin Path ini Gsterir Olarak deitiriniz. Formun zerine iki tane komut butonu yerletirerek bunlarn Caption zelliklerini Windows Dizininin Path ini Gster ve Windows un Sistem Dizininin Path ini Gster olarak deitiriniz. 3)Project/Add Module yolu ile projeye bir modl ekleyiniz. 4)Modl n General/Declarations ksmn aadaki gibi doldurunuz:

un

VISUAL BASIC LE YAZILIM GELTRME Declar e Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long Declar e Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 5)Oluturduunuz projeye View/Project Explor er men admlar ile bakarsanz ekil U.10 daki grnm elde edeceksiniz. ekil U.10 Projeye Project Explorer ile bakma 6)Tools/Add Project ile programnza aadaki gibi getwindowsdir ve getwindowssysdir adl iki fonksiyon oluturunuz. Public Function getwindowsdir () As String temp$ = String$(255, 0) x% = GetWindowsDirectory(temp$, 255) temp$ = Left$(temp$, x%) getwindowsdir$ = temp$ End Function Public Function getwindowssysdir () As String temp$ = String$(255, 0) x% = GetSystemDirectory(temp$, 255) temp$ = Left$(temp$, x%) getwindowssysdir$ = temp$ End Function 7)Komut butonlar ile ilikili olarak aadaki olay prosedrlerini giriniz:

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Command1_Click() winpfad$ = getwindowsdir() MsgBox (winpfad$) End Sub Pr ivate Sub Command2_Click() syspfad$ = getwindowssysdir() MsgBox (syspfad$) End Sub 8)Run/Start ile uygulamay altrnz. Windows Dizininin Path ini Gster isimli komut butonunu tklarsanz. ekil U.11 deki ekran gelecektir. ekil U.11 - Windows Dizininin Path i Windows Sistem Dizininin Path ini Gster isimli komut butonunu tklarsanz . ekil U.12 deki ekran gelecektir. ekil U.12 - Windows Sistem Dizininin Path i

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 4: WNDOWS U YENDEN BALATMA VE WNDOWS U KAPATMA Bu rneimizde, API fonksiyonlarn kullanarak Windows u yeniden balatacaz(restar t) ve Windows u kapatacaz(shutdown). Admlar izleyiniz: 1)Formun zerine iki tane komut butonu yerletirerek bunlarn Caption zelliini Bilgisayar Yeniden Balat ve Bilgisayar Kapat olarak deitiriniz. 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modl n General/Declarations ksmn aadaki olutunuz: Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 4)Oluturduunuz projeye View/Project Explorer men admlar ile bakarsanz. ekil U.14 deki grnm elde edeceksiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil U.14 Projeye Project Explorer ile bakma 5)Komut butonlar ile ilikili olarak aadaki olay prosedrlerini giriniz: Pr ivate Sub Command1_Click() Dim nesne As Long nesne = ExitWindowsEx(2, 0) End End Sub Pr ivate Sub Command2_Click() Dim nesne As Long nesne = ExitWindowsEx(1, 0) End End Sub 6)Run/Start ile uygulamay altnz. ekil U.15 deki ekran gelecektir. Burada Bilgisayar Yeniden Balat Caption lu buton seildiinde bilgisayarn yeniden balad grlecektir. (bu arada Bilgisayar Yeniden Balat Caption lu butona basmadan nce bu rnei kaydetmeniz tavsiye edilir...) Ayn ekilde Bilgisayar Kapat Caption lu buton seildiinde bilgisayarn kapand grlecektir. ekil U.15 Windows u yeniden balatma ve kapatma program penceresi

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 5: WNDOWS HELP N AMA VE KAPAMA Bur rneimizde API fonksiyonlarn kullanarak Window sun Help ini aacaz ve kapatacaz. Admlar izleyiniz: 1)Formun zerine iki tane komut butonu yerletirerek bunlarn Caption zelliini Yardm A ve Yardm Kapa olarak deitiriniz. 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Declar e Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long Public Const HELP_HELPONHELP = &H4 Public Const HELP_QUIT = &H2 4)Oluturduunuz projeye View/Project Explorer men admlar ile bakarsanz. ekil U.17 deki grnm elde edeceksiniz. ekil U.17 Projeye Project Explorer ile bakma

VISUAL BASIC LE YAZILIM GELTRME 5)Tools/Add Procedure ile programnza aadaki gibi yardmac ve yardmkapa adl iki fonksiyon oluturunuz. Public Sub yardmac(f As Form) Dim Nesne As Long Nesne = WinHelp(f.hwnd, "c:\windows\help\windows.hlp", HELP_HELPONHELP, CLng(0)) End Sub Public Sub yardmkapa(f As Form) Dim Nesne As Long Nesne = WinHelp(f.hwnd, "c:\windows\help\windows.hlp", HELP_QUIT, CLng(0)) End Sub 6)Komut butonlar ile ilikili olarak aadaki olay prosedrlerini oluturunuz: Pr ivate Sub Command1_Click() yardmac Me End Sub Pr ivate Sub Command2_Click() yardmkapa Me End Sub 7)Run/Start ile uygulamay altrnz. Yardm A isimli komut butonunu tklarsanz ekil U.18 deki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil U.18 Windows yardm ve Formun grnm Yardm Kapa isimli komut butonunu tklarsanz. Alan Windows yardm penceresinin kapandn greceksiniz. RNEK UYGULAMA 6:WN.N DOSYASINDAN BLG ALMA Bu rneimizde API fonksiyonlarn kullanarak, win.ini dosyasndan bilgi almay reneceiz. Admlar izleyiniz:

VISUAL BASIC LE YAZILIM GELTRME 1)Formun zerine bir tane komut butonu yerletirerek bunun Caption zelliini Walpaper n Adresini ren olarak deitiriniz. 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3) Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Public Declare Function GetPrivateProfileString% Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) 4)Oluturduunuz projeye View/Project Explor er men admlar ile bakarsanz. ekil U.20 deki grnm elde edeceksiniz. ekil U.20 - Projeye Project Explorer ile bakma 5)Tools/Add Procedure ile programnza aadaki gibi Ini$ adl bir fonksiyon oluturunuz. Public Function Ini$(Datei$, Sektion$, Schluessel$) Wert$ = Space$(225) a% = GetPrivateProfileString%(Sektion$, Schluessel$, "", Wert$, Len(Wert$), Datei$) Ini$ = Left$(Wert$, a%) End Function

VISUAL BASIC LE YAZILIM GELTRME 6)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim nesne As String nesne = Ini$("win.ini", "Desktop", "Wallpaper") MsgBox (nesne) End Sub 7)Run/Start ile uygulamay altrnz. Butonu tklarsanz ekil U.21 deki ekran gelecektir. ekil U.21 - Win.ini den bilgi alma RNEK UYGULAMA 7: SSTEM TARH VE SAATN RENME Bu rnekte API fonksiyonlarn kullanarak sistemin tarihini ve saatini reneceiz. Admlar izleyiniz: 1)Formun zerine bir tane komut butonu yerletirerek bunun Caption zelliini Sistem Tarih ve Saatini Gster olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) 4)Oluturduunuz projeye View/Project Explor er men admlar ile bakarsanz. ekil U.23 deki grnm elde edeceksiniz. ekil U.23 - Projeye Project Explorer ile bakma

VISUAL BASIC LE YAZILIM GELTRME 5)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim zaman As SYSTEMTIME GetSystemTime zaman Print "saat :" & zaman.wHour & ":" & zaman.wMinute & ":" & zaman.wSecond Print "tarih :" & zaman.wDay & "/" & zaman.wMonth & "/" & zaman.wYear End Sub 6)Run/Start ile uygulamay altrnz. Butonu tklarsanz, ekil U.24 deki ekran gelecektir. ekil U.24 Sistem tarih ve saati RNEK UYGULAMA 8: GEERL DZN RENME Bu rnekte API fonksiyonlarn kullanarak u anda iinde bulunduumuz dizinim adresini reneceiz. Admlar izleyiniz: 1)Formun zerine bir tane komut butonu yerletirerek bunun Caption zelliini Geerli dizini Gster olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Public Declare Function GetCurrentDirectoryA Lib "kernel32" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 4)Oluturduunuz projeye View/Project Explor er men admlar ile bakarsanz. ekil U.26 deki grnm elde edeceksiniz. ekil U.26 - Projeye Project Explorer ile bakma 5)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim dizin As String * 80 Dim l, dl As Long l = GetCurrentDirectoryA(Len(dizin), dizin) dizin = Left(dizin, l) MsgBox (dizin) End Sub 6)Run/Start ile uygulamay altrnz. Butonu tklarsanz, ekil U.27 deki ekran gelecektir

VISUAL BASIC LE YAZILIM GELTRME ekil U.27 u anada iinde altmz dizin RNEK UYGULAMA 9: CPU (LEMC) VE MEMORY(BELLEK) LE LGL BLGLER RENME Bu rnekte API fonksiyonlarn kullanarak bilgisayarnzn sahip olduu CPU ve MEMORY ile ilgili bilgileri reneceiz. Admlar izleyiniz: 1)Formun zerine iki tane komut butonu yerletirerek bunlarn Caption zelliklerini CPU Bilgileri ve MEMORY Bilgileri olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declar ations ksmn aadaki gibi oluturunuz: Public Declare Sub GlobalMemoryStatus Lib "kernel32" (lpBuffer As MEMORYSTATUS) Type MEMORYSTATUS dwLenght As Long dwMemoryLoad As Long dwTotalPhys As Long dwAvailPhys As Long dwTotalPageFile As Long dwAvailPageFile As Long dwTotalVirtual As Long dwAvailVirtual As Long End Type Public Declare Sub GetSystemInfo Lib "kernel32" (lpSystemInfo As SYSTEM_INFO) Type SYSTEM_INFO dwOemId As Long dwPageSize As Long IpMinimumApplicationAdress As Long IpMaximumApplicationAdress As Long dwActiveProcessorMask As Long dwNumberOrfProcessors As Long dwProcessorType As Long dwAllocationGranularity As Long dwReserved As Long End Type

VISUAL BASIC LE YAZILIM GELTRME 4)Oluturduunuz projeye View/Project Explorer men admlar ile bakarsanz. ekil U.29'deki grnm elde edeceksiniz. ekil U.29 - Projeye Project Explorer ile bakma 5)Komut butonlar ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim islemci As SYSTEM_INFO GetSystemInfo islemci Cls Print "lemci Tipi: " & islemci.dwProcessorType Print "lemci Says " & islemci.dwNumberOrfProcessors End Sub Pr ivate Sub Command2_Click() Cls Dim bellek As MEMORYSTATUS GlobalMemoryStatus bellek Print "%Bellek Kullanm: " & "%" & bellek.dwMemoryLoad Print " Toplam Ram: " & bellek.dwTotalPhys / 1024 / 1024 Print "Kullanlabilir Ram: " & bellek.dwAvailPhys Print "ToplamVirtual Memory: " & bellek.dwTotalVirtual Print "Kullanlabilir Virtual Memory: " & bellek.dwAvailVirtual End Sub 6)Run/Start ile uygulamay altrnz. CPU Bilgileri isimli butonu tklarsanz, ekil U.30'daki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil U.30 CPU Bilgileri MEMORY Bilgileri isimli butonu tklarsanz. ekil U.31 deki ekran gelecektir. ekil U.30 MEMORY Bilgileri RNEK UYGULAMA 10: DOSYA KOPYALAMA Bu rnekte API fonksiyonlarn kullanarak istediimiz bir dosyay bir yerden baka bir yere kopyalayacaz. Admlar izleyiniz: 1)Formun zerine bir tane komut butonu yerletirerek bunun Caption zelliini Dosya Kopyala olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: 4)Oluturduunuz projeye View/Project Explorer men admlar ile bakarsanz. ekil U.33'deki grnm elde edeceksiniz. ekil U.33 - Projeye Project Explorer ile bakma 5)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim k As Long sourcefile = InputBox("kopyalanacak dosyann tam tanmn giriniz") targetfile = InputBox("dosyann adn ve kopyalanaca yeri giriniz") k = CopyFile(sourcefile, targetfile, 0) End Sub

VISUAL BASIC LE YAZILIM GELTRME 6)Run/Start ile uygulamay altrnz. Butonu tklarsanz, ekil U.34'deki ekran gelecektir ekil U.34 Kopyalanacak dosya bilgileri Kopyalanacak dosya ile ilgili bilgileri girip, Tamam butonunu tklaynz; ekil U.35'deki ekran gelecektir. ekil U.35 Yeni dosya bilgileri Eer ilk inputbox a geerli bir dosya ad girersek ve ikinci inputbox a yeni dosya ile ilgili bilgileri girersek ve Balat(Start) tan yola karak Balat/Programlar/Windows Gezgini(Start/Programs/Explorer) yolunu izlersek ekil U.36 daki gibi dosyamzn kaydedildiini grebiliriz. ekil U.36 Windows Gezginin den (Explorer dan) kopyalanan yeni dosyaya baklmas.

VISUAL BASIC LE YAZILIM GELTRME RNEK UYGULAMA 11: DOSYA SLME Bu rnekte API fonksiyonlarn kullanarak istediimiz bir dosyay sileceiz. Admlar izleyiniz: 1)Formun zerine bir tane komut butonu yerletirerek bunun Caption zelliini Dosya Sil olarak deitiriniz. 2)Project/AddModule yolu ile projeye bir modl ekleyiniz. 3)Modln Gener al/Declarations ksmn aadaki gibi oluturunuz: Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long 4)Komut butonu ile ilikili olarak aadaki olay prosedrn oluturunuz: Pr ivate Sub Command1_Click() Dim k As Long targetfile = InputBox("dosyann adn ve kopyalanaca yeri giriniz") k = DeleteFile(targetfile) End Sub

VISUAL BASIC LE YAZILIM GELTRME BLM 33 VISUAL BASIC TE KONTROL DZLER

VISUAL BASIC LE YAZILIM GELTRME KONTROL DZLER Ayn tipte olan kontrol nesnesine ayn ismi, rnein DATA ismini vermeyi deneyiniz. rnein form zerine iki komut butonu yerletiriniz ve her ikisinin de Name zelliini DATA olarak ataynz. kinci komut butonunun Name zelliini DATA olarak deitirip Enter a basnca ekil K.1 deki mesaj gelecektir. ekil K.1 Kontrol dizisi yaratma ilemi Mesaj eklindedir. Yani u anda DATA adl bir kontrolnz zaten var; bir kontrol dizisi mi yaratmak istiyorsunuz? eklinde bir soru sorulmaktadr. Yes alternatifi seilirse, vermek istediiniz isim kabul edilecektir. Yani bu iki kontrol nesnesinin de ad ( Name zellii) DATA olarak atanacaktr. Ayn isim verilmi olan kontrol nesneleri bir kontrol dizisi (control array) olutururlar. Bu diziye, programn icras esnasnda bile yeni elemanlar eklemek mmkndr. Kontrol dizisi iinde, ayn isimli birden ok nesne bulunaca iin, Visual Basic in bunlar birbirinden ayrmak iin yeni bir zellie ihtiya duyaca aikardr. Bu zellik Index zelliidir. Bir kontrol dizisi oluturulduunda, Visual Basic bu dizinin ilk eleman olarak kontrol nesnesinin Index zelliini 0 yapar ve diziye her yeni eleman eklendiinde, bu zellik bir arttrlr. Bir kontrol dizisi iinde, teorik olarak 255 elemana kadar ayn tipten kontrol nesnesi bulunabilir.

VISUAL BASIC LE YAZILIM GELTRME CRA ESNASINDA KONTROL DZSNE ELEMAN EKLEME Tasarm esnasnda , Name zelliini DATA olarak tanmladmz iki komut butonunu form zerine yerletirdiimizi yani DATA (0) DATA (1) adl kontrol dizisi nesnelerini oluturduumuzu varsayalm. imdi, icra esnasnda bu diziye adet kontrol nesnesi eklemek iin aadaki gibi bir kod kullanlmaldr: Pr ivate Sub Form_Load() Dim Ind As Integer For Ind = 2 to 4 Load DATA(Ind) Next Ind End Sub Bu kodu Run/Star t ile altrdmzda, toplam 5 adet komut butonu greceiniz yerde ekranda gene sadece 2 tane komut butunu grnr. Bunun sebebi udur: 1) Visual Basic , icra esnasnda yaratlan yeni kontrol nesnelerinin Visible zelliini False yapar; dolaysyla bunlar ekranda grnmeyecektir. 2)cra esnasnda yaratlan yeni kontrol nesnelerinin tm dier zellikleri, dizideki en dk indisli kontrol nesnesinin(Bu rnekte DATA (0) ) zelliklerine eit olarak atanr. Bylece yeni yaratlan nesneler grnr olsa bile, koordinatlar DATA(0) ile akaca iin grnmeyeceklerdir. Yeni yaratlan nesneleri grnr hale getirmek iin hem Visible zellikleri True olarak atanmal, hem de her biri farkl bir konuma yerletirilmelidir. Bu problem aadaki kod ile zlmtr. Run/Star t ile bu kod altrlrsa ekil K.2 deki kt elde edilecektir: Pr ivate Sub Form_Load() Dim Ind As Integer For Ind = 2 To 4 Load DATA(Ind) DATA(Ind).Visible = True DATA(Ind).Move 5000, (Ind - 2) * 1000 + 100 Next Ind End Sub

VISUAL BASIC LE YAZILIM GELTRME ekil K.2 Ekranda icra esnasnda oluturulan komut butonlar dizisi RNEK UYGULAMA: 1)Form zerine 3 adet komut butonu yerletiriniz. Caption zelliklerini sra ile YEN KUTU EKLE, TOPLA ve KUTU SL olarak ataynz. (ekil K.3) ekil K.3 Uygulamaya ait nesneler 2)YEN KUTU EKLE balkl komut butonunu kod penceresine aadaki kodu giriniz:, Pr ivate Sub Command1_Click() If M% = 0 Then M% = 1 M% = M% + 1 If M% > 5 Then M% = 5 Exit Sub

VISUAL BASIC LE YAZILIM GELTRME End If Load Kutu(M%) Kutu (0).SetFocus Kutu (M%).Top = Kutu (M% - 1).Top + 600 Kutu (M%).Text = "0" Kutu (M%).Visible = -1 End Sub 3) TOPLA balkl komut butonunun kod penceresine ise aadaki kodu giriniz: Pr ivate Sub Command3_Click() s = 0 For I = 1 To M% s = s + Val(Kutu (I).Text) Kutu (0).Text = Str$(s) Next I End Sub 4) KUTU SL balkl komut butonunun kod penceresine ise aadaki kodu giriniz: Pr ivate Sub Command2_Click() If M% = 1 Then Exit Sub Unload KUTU(M%) M% = M% - 1 KUTU(0).SetFocus End Sub 5) Etiketin Caption zelliini TOPLAM olarak ataynz. 6)Form zerine bir metin kutusu (Text Box) yerletirerek Name zelliini KUTU olarak ataynz. 7)Bu metin kutusunun biraz altna ikinci bir metin kutusu yerletirerek bunun da adn KUTU olarak ataynz. Gelen mesaja Yes cevabn veriniz. 8)Formun General/Declar ations ksmnda, Private M% bildiriminde bulununuz. 9)Run/Start ile kodu altrnz. YEN KUTU EKLE butonunu tklatnz. Bo bir kutu daha gelecektir. ki metin kutusuna klavye

VISUAL BASIC LE YAZILIM GELTRME yardm ile, 34 ve 78 deerlerini giriniz ve TOPLA butonunu seiniz. TOPLAM kutusunda 112 deeri grnecektir. (ekil K.4) KUTU SL butonunu seerseniz de, son eklenen kutunun silindiini greceksiniz. ekil K.4 - Uygulamann kts

VISUAL BASIC LE YAZILIM GELTRME BLM 34 ACTVEX BLEENLER

VISUAL BASIC LE YAZILIM GELTRME ActiveX NEDR? Web sitelerine etkileimli bir ierik katmak iin Microsoft firmas tarafndan gelitirilen teknolojiler yumana ksaca ActiveX diyebiliriz. ActiveX ile web siteleri, multimedya efektlerini ve etkileimli nesneleri kullanarak daha esnek, daha esnek, hareketli ve etkileimli bir yap kazanrlar. nk bir ok programlama dili ve yazlm gelitirme aralar ActiveX i desteklemektedir. ActiveX teknolojisi, Mevcut Component Object Model-COM (Bileen Nesne Modeli) standardn gelitirilmesi zerine kurulmutur. COM, nesneleri bir araya getiren dk seviyeli bir mekanizma salar. Bu sebeple ActiveX i OLE nin yeni ismi midir? Sorusunu sormamz gerekir. ActiveX ve OLE nin COM standard zerine oluturulmu olmasna ramen, bu iki teknoloji, kullanclara byk miktarlarda farkl hizmetler salarlar. OLE, COM standardn, kullanclarn farkl nesnelerden oluan kark dkmanlar oluturmas amac ile, nesneleri dkmann iine katan veya bu nesneler ile dokman arasnda balant kuran, yksek seviyeli uygulama servisleri salamak iin kullanlr. ActiveX ise, kontrolleri web sitelerine gmen ve olaylara etkileimli olarak cevap veren bir alt yap salar. OLE masast uygulamasnn btnl ve son kullancya daha kullanl uygulamalar gelitirmek amac ile kullanlrken ActiveX daha hzl ve daha kk hacimli uygulamalar gelitirmek iin kullanlr. ActiveX ayn zamanda nternet e ok sayda nemli yenilikler kazandrmtr. ActiveX BLEENLER Bir ActiveX bileeni .exe , .dll veya .ocx uzantl dosyalar gibi altrlabilir kodlardan oluan bir birliktir. ActiveX teknolojisi kullanclara tekrar tekrar kullanlabilir yazlm bileenlerini bir uygulamann veya servisin iinde toplama imkan salar. ActiveX bileenlerini, saysal analiz veya kullanc arayz gibi genel amalar iin kullanlabilir veya sizinle ilgili ileri yrtmek iin bu amalara hizmet eden kendinize ait ActiveX bileenleri oluturabilirsiniz. Bu ekilde bir uygulama gelitirirken standardize edilmi tekrar tekrar kullanlabilir kodlarn kullanlmasna Bileen Yazlm Gelitirme (Component Software Development) ad verilir.

VISUAL BASIC LE YAZILIM GELTRME ActiveX teknolojisi kullanan bileen yazlm gelitirmeyi, nesneye ynelimli programlama(Object-Or iented Progr amming-OOP) ile kartrmamak gerekir. OOP, nesne ynelimli yazlm bileenleri oluturmak iin kullanlabilecek bir alternatif. ActiveX ise birok farkl yazlm gelitirme aralar ile oluturulmu nesne ynelimli bileenleri bir araya getirme imkan salar. Baka bir adan sylemek gerekirse OOP nesnelerin oluturulmas ile, ActiveX ise nesnelerin birlikte altrlmas ile ilgilenir. Mesela Borland C++ veya Microsoft Visual C++ gibi bir OOP aracn faydal nesneler oluturmak iin kullanabilirsiniz. Bu nesneler baka C++ gelitiricileri tarafndan kullanlabilir veya gelitirilebilirler. Fakat nesnelerinizi bir ActiveX iinde toplayabilirseniz, ActiveX teknolojisini destekleyen herhangi bir programlama arac ile bu nesneleri kullanmak veya gelitirmek mmkn olabilmektedir. Bylece ActiveX teknolojisini destekleyen yazlm aralarnn saysna bal olarak nesneler, oluturulduklar programlama ortamndan bamsz hale getirilebilir. ActiveX bileenlerini 3 grup altnda toplayabiliriz: 1)ActiveX Kontrolleri 2)ActiveX Dokmanlar 3)Kod Bileenleri ActiveX KONTROLLER ActiveX kontrolleri, eski ismi OLE olan kontrolleri, hzl bir ekilde formlarn ve diyalog kutularnn zerine monte edilebilen standart kullanc arayz elemanlardr. ActiveX kontrolleri ayn zamanda nternet zerinde de alrlar ve Word Wide Web sayfalarna yeni ilevler katarlar. Visual Basic her zaman iin uygulamanzda kullanabileceiniz. ok sayda kontrol iermitir. Fakat imdi, Visual Basic veya baka gelitirme ortamlarnda kullanabileceiniz kendi kontrollerinizi oluturma imkan sunmaktadr. Visual Basic ile gelitireceiniz ActiveX kontrolleri nternet e de tayabilirsiniz. Visual Basic kodunu ve kontrollerini kullanarak nternet ortamnda da alabilen kontroller oluturabilme imkan, ocx uzantl bir kontrol

VISUAL BASIC LE YAZILIM GELTRME oluturmann ileri seviyede programlama bilgisi gerektirdii dnlecek olursa ok ekici gelmektedir. Visual Basic ile bir ActiveX kontrol tasarlamak bir Visual Basic formu tasarlamak kadar kolaylatrlmtr. Bir ActiveX kontroln, Visual Basic Data kontrol kullanarak bir veri tabanndaki istenene alanlar ile ilikilendirebilirsiniz. Bylece kullanc kolaylkla istediin alanlar, oluturaca kontrol ile birletirebilir. Mesela DBList benzeri kontrolleri kendiniz yaratabilirsiniz. ActiveX kontrolne kolaylkla zellik sayfalar, sabitler ve olaylar ekleyerek onu kullanl ve ekici hale getirebilirsiniz. Son olarak ActiveX kontrollerinizi uygulamanzn .exe dosyas iine de veya uygulamanzdan bamsz bir modl olarak .ocx uzantl bir dosya iine derleyebilirsiniz. Bu ekilde derlenen .ocx uzantl ActiveX kontrolleri, Visual Basic ve Microsoft Office gibi kullanc rnleri ile veya nternet zerinde kullanlabilir. RNEK BR ActiveX KONTROL zellikle Visual Basic gibi grsel ortamlarda formlarn grnleri ok nemlidir. nk bir ok kullanc bir uygulamay gerek anlamda test etmek iin gerekli bilgi birikimine sahip deildir. Bu durumda kullanclar daha iyi grsel ieriklere sahip olan uygulamalar tercih etme eilimindedirler. Gerekten de grsel ortamlarda uygulama gelitirirken en ok vakit alan uralardan birisi de zengin grsel ieriklere sahip formlar oluturmaktr. Bir uygulama iin butonlar en nemli kontrollerden biridir ve dolays ile grsel olmak zorundadr. Kullanc ile bir etkileim salarlar. Visual Basic te de bu i iin kullanlabilecek komut butonlar vardr. Fakat bu butonlara resim eklenilemez. Resimli butonlar oluturmak iin Animation butonlar gibi aralara(tool) ihtiya duyulur. Fakat siz byle bir aratan yoksun olduunuzu veya bu tr bir ara kullanmak istemediinizi ama resimli butonlara ihtiyacnz olduunu dnelim. Visual Basic 5.0 ve 6.0 da artk bakalar tarafndan gelitirilmi kontrollere bal deilsiniz. Dndnz gibi bir kontrol bulamyorsanz veya cretini pahal buluyorsanz kendi kontrolnz oluturmann zaman geldi demektir. imdi bitmap resmi ieren ve komut butonunun davranlarn taklit eden kendimize ait bir butonunun

VISUAL BASIC LE YAZILIM GELTRME ActiveX kontrol olarak nasl oluturulacan grelim. Aadaki rnekler oluturacamz kontrol hakknda fikir vermektedir. Bunun iin aadaki admlar takip ediniz: Kontrolmzn iki ayr rneinin bir formun tasarm aamasnda almas 1)File/New Project mens seeneinden ActiveX Control seerek yeni proje balatnz. Aadaki gibi UserControl ieren bir ekran gelecektir. Bylece zerinde ActiveX kontrolmz oluturacamz bo bir tayc alr. Btn kontroller taycy( veya konteynr-container) zerine yerletirilir ve baz zellikleri (rnein left ,top vb.) zerine yerletirildikleri tayclara gre belirlenir. rnein form, picture(resim) kontrol veya UserControl birer taycdrlar. Yeni projemiz dier standar t EXE projelerinde olduu gibi, tayc olarak kullanmaz. ekil A.1 UserControl Tasarm penceresi

VISUAL BASIC LE YAZILIM GELTRME 2)Tayc boyutlarn bir buton iin gereken boyutlarda klttkten sonra, ara ubuundaki etiket kontroln(Label1) sein ve konteynrn zerine yerletirin. BackStyle zelliini Transpar ent olarak ve Alignment zelliini de Center olarak deitiriniz. Etiket kontroln kendi kontrolmzde butonunun bal (Caption) iin kullanacaz. ekil A.2 Etiket kontrolnn BackStyle zellii 3)Project/Project Proper ties penceresinden aadaki deiiklikleri yapnz.

VISUAL BASIC LE YAZILIM GELTRME Project Description kutusundaki ifade Project/Components diyalog penceresinde gzkecektir. 4)File/Save Project men komutu ile projemizi ve bileenlerini aadaki dosya isimleri ile saklaynz. Proje dosyas isimi Ilk_ActiveX_Kontrol_Projem *.vbp Kontrol dosyas Ilk_ActiveX_Kontrolum *.ctl Yeni kontrolmz baka bir proje zerinde kullanmak veya *.ocx uzantl bamsz modllere dntrebilmek iin kontrolmz ayr bir proje olarak oluturduk. 5)Kontrolmzn doru altn gzlemleyebilmemiz iin baka bir projeye ihtiya duyulur. Bunun iin File/Add Project komutu ile Standart EXE yi seiniz.

VISUAL BASIC LE YAZILIM GELTRME 6)Proje grubumuza test amal bir proje ekledikten sonra artk kontrolmz altrabiliriz. Standar t EXE modunda bir projeyi altrmak iin Run/Start men komutu veya F5 tuunu kullanabiliriz. Fakat bir ActiveX kontrol projesi bu ekilde altrlmaz. Bunun iin kontrolmzn ara kutusundaki ikonu, test amal oluturduumuz projedeki aktif formun zerine yerletirmemiz gerekir. imdi aadaki ara kutusu rneklerini inceleyiniz. UserControl tasarm penceresi ak iken ara ubuundaki UserControl ikonu, kullanlamaz olduunu gstermek iin gri renklidir.(Soldaki resim) UserControl tasarm penceresini kapattmzda (bunu u ekilde yapabilirsiniz project penceresindeki UserControl tklayn UserControl penceresi alacaktr bu pencerenin sa st kedeki arp butonunu tklayn) ise bu ikon sadaki resimde de grld gibi renklidir. imdi bu ikonu seip test amal projemizin zerine ekin. Tasarm ortamnda iken zerindeki UserControl alr durumdadr. UserControl form zerine yerletirildiinde artk kontrolmz almaya balar. imdi kontrolmzn form zerinde almasn

VISUAL BASIC LE YAZILIM GELTRME gzlemleyebilmek iin, ActiveX kontrol projesini tekrar aktif hale getirin ve aadaki kodu kontroln Resize olay(event) penceresine kodlaynz. ActiveX kontrol projesi aktif yapldnda daha nce form zerine yerletirdiimiz kontrolmz ekilde de grld gibi bu durumu belirtmek iin ekil deitirir. Pr ivate Sub UserControl_Resize() Static sayac As Integer sayac = sayac + 1 Debug.Print "Resize olay gerekleti" & sayac End Sub ekil A.4 ActiveX Kontrol tasarm penceresi kapatlarak altrlyor.

VISUAL BASIC LE YAZILIM GELTRME ekil A.5 UserControl n resize olaynn almas Kontrolmz, Form zerinde boyutlar deitirildiinde ekil A.5 te ki hata ayklama penceresine(Immediate Windows) olduu gibi davranr. UserControl istediimiz deiiklikleri yapacak kadar tandktan sonra artk gerekletirmek istediimiz butonu kodlamaya balayabiliriz. Bu ie kontrolmze balk zellii ekleyerek balayalm. Fakat bu ilemden nce test amal oluturduumuz projeyi ve bileenlerini aadaki isimler ile diske kaydedelim. Proje Grubu dosyas ismi Ilk_ActiveX_Grubum *.vbg Proje dosyas ismi Ilk_Test_Projem *.vbp Form dosyas ismi Ilk_Test_Formum *.frm

VISUAL BASIC LE YAZILIM GELTRME UserControl E ZELLK(PROPERTY) EKLEMEK UserControl bir tayc iine(mesela form) yerletirildiinde tayc tarafndan salanan baz zellikleri otomatik olarak ierir. (Name,top,left vb.) Yani properties penceresi iinde hem kontrolmzn kendi zellikleri (oluturacamz Balk zellii gibi) hem de Extender diye adlandrdmz bir nesnenin zellikleri listelenir. Kontroln Extender nesnesi, kontroln zerine yerletirildii konteynrn baz zelliklerini ierir. Bylece Extender diye adlandrdmz bu nesne, bize kontroln salad zelliklere eriim yapmamza yardmc olur. imdi butonumuzu oluturmak iin sraladmz admlara kaldmz yerden devam edelim. 6)Proje grubu penceresinden UserControl1 isimli projeye ift tklayarak tasarm penceresini aktif yapn ve kod penceresini an 7)Tools\Add Procedure men komutunu seerek InsertProcedur e penceresini anz ve Nesne kutusuna Baslik yaznz. Proper ty ve Public seeneklerine tkladktan sonra OK butonuna basnz. 8)Alan kod penceresine aadaki satrlar giriniz: Public Proper ty Get Baslik() As String Baslik = Label1.Caption End Property Proper ty Get fonksiyonu Baslik zelliine atanm deere ihtiya duyulduunda zelliin o anki deerine erimek iin kullanlr. zelliin veri tipi String olarak deitirilmitir. Bu deer Etiketin Caption zelliinden elde edilebilir. Public Proper ty Let Baslik(YeniBaslik As Str ing) Label1.Caption = YeniBaslik End Property Proper ty Let fonksiyonu is Baslik zelliine yeni bir deer tahsis edildiinde altrlr. Tahsis edilen deeri Label1 isimli etiketin Caption

VISUAL BASIC LE YAZILIM GELTRME zelliine atar. imdi UserControl1 projesi tasarm penceresini kapatnz. Form zerine yerletirdiiniz kontroln zellikler penceresini anz. Eklemi olduunuz zellii pencerede grebilirsiniz. Burada ekil A.6 da olduu gibi Baslik zelliini TAMAM yapnz. Form zerindeki kontroln Baslik zellii deiecektir. Fakat formu altrdnzda veya Visual Basic tasarm ortamndan kp tekrar girdiinizde atam olduunuz Baslik deerinin kaybolduunu greceksiniz. te bunun stesinden gelmek iin yaplmas gereken baka eyler vardr. ekil A.6 Kontrole eklenen Baslik zelliine yeni deer atama Nesneye Ynelik Programlama balkl blmde yeni nesneler olutururken bu nesneleri ieren snflara yeni zelliklerin nasl eklendii anlatlmt. Yani biz, Property Let ve Property Get fonksiyonlarnn nasl altklarn biliyoruz. Bu fonksiyonlar kullanarak kontrolmze eklediimiz zelliin kalc olmas iin, bu zellii disk zerinde bir yerlere saklamamz gerekir. Visual Basic bu i iin programcya esneklik salar. Yapmamz gereken, kontrolmze eklediimiz zellikleri bag

VISUAL BASIC LE YAZILIM GELTRME diye isimlendirilen bir tabloya atmak ve ihtiya duyulduunda bu deeri torbadan geri almak kadar basit bir prosedrle aklanabilir. Bu zelliklerin nerede sakland, bu torbann ierii, ierdii verilerin tipleri, verilerin buradan nasl geri alnd gibi konular bizi ilgilendirmiyor. Bizi ilgilendiren byle bir imkann( bag ) varl ve bunun nasl kullanlacadr. Yapmamz gereken zelliklerimizi bu torbaya atamak ve ihtiyacmz olduunda buradan okumaktr. Visual Basic, program kodlarn ve formun zelliklerini .frm uzantl text dosyalarnda tutar. Formun zerindeki kontrollerin zellikleri de ayn .frm uzantl text dosyalarn yazlr. Fakat daha nce de sylediimiz gibi biz bunlar ile ilgilenmeyeceiz. UserControl,ekleyeceimiz zellikler iin kullanabilecek daha nce alk olmadmz yeni olaylar(events) ierir. Bunlar yle sralayabiliriz: UserControl_Initialize() UserControl_InitProperties() UserControl_ReadProperties(PropBag As PropertyBag) UserControl_WriteProperties(PropBag As PropertyBag) UserControl_Terminate() Visual Basic, UserControl sz konusu olduunda bir nesne iin kullanlan Load() ve Unload() olaylar yerine ReadProperties() ve WriteProperties olaylar kullanlr. UserControl tasarm penceresini kapattnzda aadaki olay prosedrleri alr. UserControl_Initialize() UserControl_ReadProperties(PropBag As PropertyBag) UserControl_Resize() Ara kutusundan alarak form zerine yerletirmi olduunuz kontrol aslnda kontrol snfnn bir grnm ya da bir rneidir(instance). Bundan sonra form zerine yerletirdiimiz kontrolmz iin kontrol rnei isimlendirmesi kullanacaz. Kontrol rneimiz iin iki farkl alma ortam ve dolays ile iki farl rnek sz konusudur. rneimiz hem formun tasarm annda hem de formu alma annda icra grr.

VISUAL BASIC LE YAZILIM GELTRME Yukarda ad geen olaylarn gerekleme sras ite bu iki farkl alma ortamna gre deiir. UserControl tasarm ortam kapatldnda form zerine yerletirdiimiz kontrolmzn rnei formun tasarm ortamnda almaya balar. lk olarak Initialize() olay gerekleir. Kontrol rneimiz sahip olduu zelliklere bizim daha nceden atam olduumuz deerleri yklemek iin ReadProper ties(...) olayn altrr. F5 tuu ile projeyi(iine, kontrol rneimizin zerinde olduu formu ieren test amal standart exe projesini) altrnz aadaki olaylar gerekleir. UserControl_WriteProperties(PropBag As PropertyBag) UserControl_Terminate() UserControl_Initialize() UserControl_ReadProperties(PropBag As PropertyBag) UserControl_Resize() Artk kontrolmzn rnei farkl bir ortamda almaya balayacaktr ve formun tasarm ortamnda alan rneimize atanan yeni zellik deerinin zellikler torbasna atlmas gerekir. nk, bu ortamlar arasnda geilerde kontrol rneimiz iin atanan zelliklerin yklenmesi gerekir. Bunun iin de ReadProper ties(...) olay prosedr altrlr. rneimize formun tasarm ortamnda atadmz zelliklerin, form altrlrken yklenebilmesi iin daha nceden zellikler torbasna atanmas gerekir. Aksi tekirde kontrol rneimiz iin atadmz zellikler yerine nceden atanm ilk deerleri yklenir. (veya en son zellikler torbasna atlan zellikler.) Bunun iin ReadProperties() olayndan nce Wr iteProper ties(...) olay prosedr altrlarak tasarmcnn formu ve iindeki kontrolleri tasarlarken rneimize atad zellik deerlerini saklama imkan elde edilir. Ardndan Initialize() ve ReadProper ties(...) olaylar altrlr. Resize() olay kontroln boyutlar deitirildiinde ve doal olarak kontroln rnei oluturulduunda, en son olarak gerekleir.

VISUAL BASIC LE YAZILIM GELTRME InitProperties() olay kontrolmzn tasarm ortamndaki rnei il oluturulduunda gerekleir. Form zerine kontrolmzn yeni rnei yerletirildikten sonra bu olay prosedr altrlr. Oluturulan zellik deerlerine ilk deer atama iin kullanlr. Yukarda aklanan olaylarn aklanan srada gerekletiini grmek iin aadaki kod satrlarn projeye ekleyiniz ve hata ayklama penceresinden(Immediate Window) sonucu gzlemleyiniz. Pr ivate Sub UserControl_Initialize() Debug.Pr int "Initialize" End Sub Pr ivate Sub UserControl_InitProperties() Debug.Pr int "InitProperties" End Sub Pr ivate Sub UserControl_ReadProperties(PropBag As PropertyBag) Debug.Pr int "ReadProperties" End Sub Pr ivate Sub UserControl_WriteProperties(PropBag As PropertyBag) Debug.Pr int "WriteProperties" End Sub Pr ivate Sub UserControl_Terminate() Debug.Pr int "Terminate" End Sub 9)Bir nceki admda UserControl ile ilgili yeni olaylarn hangi sra ile ve hangi durumlarda gerekletiini akladk faka zellikler torbas diye isimlendirdiimiz Property Bag snfnn nasl kullanldn aklamadk. imdi aadaki satrlar kodlaynz. Pr ivate Sub UserControl_InitProperties() Baslik = Extender .Name End Sub

VISUAL BASIC LE YAZILIM GELTRME Bu satr ekledikten sonra form zerine kontrolmzn baka bir rneini yerletirecek olursanz kontrolmzn bal UserControl2 olacaktr. nk ara kutusundan form zerine kontrolmz yerletirdiimizde her defasnda kontrol rneimizin isminin sonuna bir rakam arttrlarak ilave edilir. Bu rneimiz iin UserControl1, UserControl2, UserControl3,... eklinde devam eder. Bir form zerinde ayn isme sahip iki yada daha fazla kontrol rnei oluturulamaz. te bu karkl gidermek iin kontroln isminin sonuna rakam ilave edilir. Genelde btn kontroller, oluturulan kontrol rneklerine, ilk balk deeri olarak kontroln ismini atarlar. imdi UserControl projesinden UserControl seiniz ve zellikler penceresinden ismini OzelButon olarak deitiriniz. Bylece Extender nesnesi kullanlarak, oluturduumuz kontrol rneklerine ilk Baslik deeri olarak OzelButon1, OzelButon2,... eklinde ifadeler atanacaktr. Pr ivate Sub UserControl_ReadProperties(PropBag As PropertyBag) Baslik = PropBag.ReadProperty("Baslik", Extender.Name) End Sub PropBag, PropertyBag snfna ait bir nesne tanmdr. Kontroln zelliklerine ait deerlerin sakland zellik torbasna(Property Bag) erimek amac ile kullanlr. ReadProper ty metodu kendisine verilen anahtar kelimeye karlk gelen zellik deerlerini zellik torbasndan alr ve bizim oluturduumuz Baslik zelliine atar. Burada anahtar kelime zelliimiz iin kullandmz Baslik ismidir. ReadProper ty metodunun ikinci argman nceden atanm deer(default) iin kullanlr. ayet zellik deeri iin torbaya herhangi bir deer atanmamsa veya text dosyas iinden silinmi ise Baslik zellii olarak extender nesnesinin ismi atanr.

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub UserControl_WriteProperties(PropBag As PropertyBag) PropBag.WriteProperty "Baslik", Baslik, Extender.Name End Sub Wr iteProper ty metodu kendisine verilen zellik deerini projede kullanlan tayc iin retilen text dosyasna(form iin *.frm) istenen anahtar kelimeye karlk gelecek ekilde kaydeder. Bu anahtar kelime ayn zamanda, zelliin torbadan (bag) okunmas iin de kullanlr. WriteProper ty metodunun ilk argman anahtar kelime olarak kullanlan zelliin ismidir. kinci argman ise bu zellik deeri iin saklamak istenen deeri ierir. nc argmann kullanlmas istee baldr. Kullanlrsa WriteProper ty metodu iin nceden atanm ilk deer olarak kullanlr(default deer). Fakat bu nceden atanm deer(default deer) diske kaydedilmek amac ile kullanlmaz. nk bu tr bir kullanm yazma ilemi iin mantkszdr. Sadece, istenen zellie ait deerin zellik torbasna(property bag) atlmadan nce, yani diskete kaydedilmeden nce default deer ile karlatrlmas amac ile kullanlr. ayet bu deerler ayn ise, kontrol rneinin zellik deerinde de bir deiiklik yaplmam demektir. Bylece gereksiz bir yazma ileminden saknm oluruz. Kontrolmz test etmeden nce aadaki kod satrn projeye eklemek gerekir. nk kontrolmzn bal iin kullandmz etiket kontroln kontrol rneinin boyutlarna gre dinamik bir ekilde ayarlanmas gerekir. Bunun iin Resize() olay kullanlr. Pr ivate Sub UserControl_Resize() Label1.Move ScaleWidth/4,(ScaleHeight-Label1.Height) / 2, ScaleWidth * 3/ 4 End Sub

VISUAL BASIC LE YAZILIM GELTRME Btn bu ilemlerden sonra UserControl tasarm penceresini kapatnz ve form zerindeki butonu siliniz. Daha sonra ara kutusundan yeni kontrol rnei oluturunuz(veya ikinci kontrol rneinizi oluturabilirsiniz.) nk InitProperties olay, kontroln tasarm ortam rnei ilk kez oluturulduunda altrlr. Kontrolmzn boyutlarn deitirdiinizde kontroln balnn dinamik bir ekilde ayarlandn greceksiniz. ekil A.7 - Yeni kontrol rneinin form zerindeki grnm Baslik deerine aadaki ekilde de grld gibi TAMAM deerini atayp F5 tuuna bastmzda kontrolmzn atadmz baln deerini koruduunu grebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil A.8 Baslik zelliine TAMAM deerinin atanmas ekil A.9 Yeni Baslik deerinin formun almas esnasndaki grnm

VISUAL BASIC LE YAZILIM GELTRME 10)bir UserControl e zelliin nasl eklendiini rendikten sonra artk butonumuza bir de Resim zellii eklememiz gerekiyor. Dikkat edilecek olursa, Baslik iin kontroln geniliinin 3/4 kullanlmtr. Kalan 1/4 lk genilik ekleyeceimiz bitmap resmini kopyalamak iin kullanlacaktr. Amacmz resimli bir buton oluturmak. Bunun iin UserControl proje penceremizin iine Pictur eBox kontrol ekleyiniz, kontroln AutoSize zelliini True ve Visible zelliini False yapnz. Pictur eBox kontroln sadece, disk zerinde yolunu tanmladmz bir bitmap resmine erimek iin kullanacaz. ekil A.10 UserControl e Pictur eBox un eklenmesi BR UserControl N GRN UserControl n grn kontroln hangi ama iin tasarlandna gre deiir. ayet UserControl, kullancnn gerekletirdii olaylara gre eklini deitirme ihtiyacn hissediyor ise(aslnda hissetmez biz onun hissetmesini salarz) hangi durumda, kontroln form zerinde nasl grnmesi gerektiine karar vermemiz gerekir.

VISUAL BASIC LE YAZILIM GELTRME Bunun iin Visual Basic in grafik komutlar(Line, Cir cle, PaintPictur e vb. gibi) veya API arlar( GDI Graphic Device Interface Ktphanesi fonksiyonlar gibi) kullanlabilir. rnek kontrolmz, bir buton etkisi vermek iin kullancnn butona tklamasn iki farkl grnm ile salamaktadr. Btn Windows pencereleri oluturulduklarnda veya minimize iken maxsimize edildiklerinde veya bir ksm yada tamam baka bir pencerenin arakasnda iken tekrar aktif pencere yapldklarnda boyanma ihtiyac hissederler. Windows, pencere prosedrne WM_PAINT mesaj yollar ve boyamas gereken pencere boyutlarn bir dikdrtgen olarak belirtir. Visual Basic ile program gelitirirken btn bu olaylar Visual Basic in kontrolnde geliir ve kullanc bunlar ile ilgilenmez. Fakat bir taycnn(Form nesnesi, PropertyPage nesnesi, UserControl nesnesi, UserDocument nesnesi veya Pictur eBox kontrol gibi) AutoRedraw zellii False yaplrsa pencerenin boyanmas ii programcya braklr. lgili taycnn paint olay bu tr bir ama iin kullanlr. Kontrolmzn yzeyini boyayabilmemiz iin AutoRedraw zelliini False yapnz ekil A.11 UserControl n AutoRedr aw zelliinin True yaplmas

VISUAL BASIC LE YAZILIM GELTRME Oluturacamz ActiveX kontrolleri, ierdikleri Visual Basic kontrollerinin grnm de ierebilir. Yani oluturacamz btn kontroller iin benzeri bir boyama ii zorunlu deildir. Programc kontroln tasarlarken buna karar verir. 11)PictureBox kontrolnn picture zellii iin sabit dik zerinde herhangi bir bitmap seiniz.,(TAMAM baln artracak, standart ara ubuu butonu byklnde bir bitmap seiniz. Bu tr bitmaplar Assorted dizini iinde bulunur.) ekil A.12 Assorted dizini iinden Hand.bmp nin seilmesi 12)UserControl n ScaleMode zelliini Pixel olarak deitiriniz ve Paint olay prosedrne alt sayfadaki satr ekleyiniz. Bu kodda resmin buton zerindeki boyutlar ve yeri dinamik olarak ayarlanyor. Butonun boyutlar resmin boyutlarndan byk ise PaintPicture metodu ile butonun sahip olduu orijinal boyutlar ile ve butonun yksekliini ortalayacak ekilde yaptrlyor. ayet butonun boyutlar resmin boyutlarndan kk ise bu taktirde PaintPicture metodu ile resim, boyutunun snrlar iinde kalacak ekilde kltlerek( bu bir stretch-germe ilemidir) bunun stne yaptrlyor.

VISUAL BASIC LE YAZILIM GELTRME Daha sonra tasarm penceresini kapatn. Kontrolmzn tasarm ortam rneinin grn ekil A.14 deki gibi olacaktr. Pr ivate Sub UserControl_Paint() Dim X, Y, cx, cy If Picture1.Picture = 0 Then Exit Sub Line (0, 0)-(ScaleWidth, ScaleHeight), RGB(192, 192, 192), BF X = 10 Y = ScaleHeight / 2 - Picture1.Height / 2 cx = Picture1.Width cy = Picture1.Height If Y < 3 Then cy = ScaleHeight - 6: Y = 2 PaintPicture Picture1.Picture, X, Y + 4, cx, cy - 2, 1, 1, -Picture1.Width, Picture1.Height End Sub ekil A.14 Kontrolmzn Paint olayndan sonraki grnm

VISUAL BASIC LE YAZILIM GELTRME 13)Kontrolmzn bir buton hissi verebilmesi iin butonumuza 3D ( boyutlu) efekti eklemeliyiz. Bunun iin UserControl n MouseUp ve MouseDown olaylarn kullanarak iki farkl buton grn bir click olaynn similasyonu iin kullanabiliriz. Normal bir komut butonuna 3D efektinin nasl verildiini anlamak iin aadaki ekli inceleyiniz. Paint olay prosedrn aadaki gibi deitiriniz. Pr ivate Sub UserControl_Paint() Dim X, Y, cx, cy Line (0, 0)-(ScaleWidth, ScaleHeight), RGB(192, 192, 192), BF Line (0, 0)-(ScaleWidth, ScaleHeight), RGB(255, 255, 255), B Line (-1, -1)-(ScaleWidth - 1, ScaleHeight - 1), RGB(0, 0, 0), B Line (ScaleWidth - 2, 1)-(ScaleWidth - 2, ScaleHeight - 2), RGB(122, 122, 122), B Line (1, ScaleHeight - 2)-(ScaleWidth - 2, ScaleHeight - 2), RGB(122, 122, 122), B Line (1, 1)-(ScaleWidth - 3, 1), RGB(222, 222, 222), B Line (1, 1)-(1, ScaleHeight - 3), RGB(222, 222, 222), B If Picture1.Picture = 0 Then Exit Sub X = 10 Y = ScaleHeight / 2 - Picture1.Height / 2 cx = Picture1.Width cy = Picture1.Height If Y < 3 Then cy = ScaleHeight - 6: Y = 2 PaintPicture Picture1.Picture, X, Y + 4, cx, cy - 2, 1, 1, Picture1.Width, Picture1.Height End Sub

VISUAL BASIC LE YAZILIM GELTRME UserControl tasarm penceresini kapatn. Kontrolmzn grnm aadaki gibi olacaktr. ekil A.15 Kontroln 3D efektli normal hali F5 tuu ile test projesini altrp kontroln stne tkladnzda hibir tepki vermediini greceksiniz. Halbuki biz mouse un sol butonuna kontroln zerinde iken bastmzda basl hissi vermesi gerekir. te imdi butonumuzun basl halini temsil eden grnm salamak iin ButtonDown adnda bir prosedr oluturalm. Bunun iin UserControl kod penceresini anz ve Tools\Add Procedur e admlarn izleyiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil A.16 ButtonDown prosedrnn eklenmesi Alan kod penceresine aadaki satrlar giriniz. Public Sub ButtonDown() Dim X, Y, cx, cy ScaleMode = 3 DrawWidth = 1 Line (0, 0)-(ScaleWidth - 1, ScaleHeight - 1), RGB(0, 0, 0), B Line (1, 1)-(ScaleWidth - 2, ScaleHeight - 2), RGB(122, 122, 122), B X = 12 Y = ScaleHeight / 2 - Picture1.Height / 2 cx = ScaleWidth / 4 - 4 cy = ScaleHeight - 2 * Y bitblt UserControl.hDC, 5, 5, ScaleWidth - 9, ScaleHeight - 9, UserControl.hDC, 3, 3, &HCC0020 End Sub Bu prosedr ile kontroln kenarlarna siyah ve koyu gri renkli iki izgi izdirilmekte ve butonun zerindeki resim ve baslik baslma efekti verebilmek iin ikier pixel(nokta) aa ve saa kaydrlmaktadr.

VISUAL BASIC LE YAZILIM GELTRME lem iin BitBlt API ars kullanlmtr. BitBlt in ak yazl Bit Block Transfer eklindedir. Yapt ilem, tutama(Handle of Device Context,hDC) verilen iki nite(ekran, printer vb gibi bir video display iin hDC genellikle ekran zerindeki pencerelere referans olarak kullanlr.) arasnda bit transferi yapmaktr. Grafik ile ilgili btn API arlar argman olarak hDC isterler. &HCC0020 saysal deeri, SRCCOPY ifadesine karlk gelen bir sabittir. Yaplan ilemin sadece kopyalama olduunu belirtir. Farkl argmanlar kullanarak farkl kopyalama ilemleri(mesele Stretch gibi) yaptrlabilir. Daha fazla bilgi iin Borland C++ veya Visual C++ yardmna bavurabilirsiniz. Fakat bir API arsn Visual Basic ile kullanabilmek iin prototipin bir modle belirtilmesi gerekir. API arlarnn prototiplerini renmek iin API Text Viever kullanlabilir.( Kitabmzda bu konu iin ayr bir blm mevcuttur.) Project\Add Module admlarn izleyerek ActiveX kontrol projenize bir modl ekleyin ve General ksmna aadaki satr ilave edin. Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long Oluturduunuz ButtonDown prosedrn UserControl n MouseDown olay prosedrne aadaki kodu ekleyiniz. Pr ivate Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button <> 1 Then Exit Sub ButtonDown End Sub Yukardaki satrlar projeye ekledikten sonra formunuzu altrp test edebilirsiniz. Mouse un sol butonuna kontrolmzn stndeki resmin zerinde iken bastmzda kontrolmzn grnm deiecektir. ayet baln zerinde iken ayn hareketi tekrarlarsanz kontrolmzn grnmnde deiiklik olamayacaktr.

VISUAL BASIC LE YAZILIM GELTRME nk baln zerinde iken UserControl yerine Label1 kontrolnn MouseDown olay alr. Bunun iin yukardaki kod satrn Label1_MouseDown olay prosedrne de ekleyin Fakat buton serbest brakldnda eski halini almas gerekir. Bunun iin aadaki kod satrn projenize ekleyiniz. Pr ivate Sub UserControl_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Refresh End Sub Refresh metodu kontrole paint mesaj gndermek iin kullanlr. Bylece paint olay prosedrn altran Visual Basic, butonumuzun normal grntsn de kontroln stne yeniden izmi olur. Yukardaki kod satrn Label1_MouseUp olay prosedrne de ekleyiniz ve UserControl tasarm penceresini de kapattktan sonra F5 tuu ile test projesini altrnz. Bylece kontrolmz gerek bir buton hissi verecektir. ekil A.17 Kontrolmzn formun almas esnasndaki grnm

VISUAL BASIC LE YAZILIM GELTRME ekil A.18 Kontrolmzn formun almas esnasndaki basl grnm 14) Daha esnek bir kullanma sahip olabilmesi iin kontrolmze Resim zellii de eklememiz gerekir. UserControl e bir zelliin nasl eklendiini nceki admlarda anlatld. Onun iin projede aadaki kod pencerelerinde gsterilen deiiklikleri, daha nce anlatlanlar da gz nnde tutarak gerekletiriniz. UserControl n General/Declarations ksmna aadaki kodu giriniz: Option Explicit Dim YeniResimSakla As String Public Proper ty Get Resim() As String On Error Resume Next Resim = YeniResimSakla End Property

VISUAL BASIC LE YAZILIM GELTRME Public Proper ty Let Resim(YeniResim As String) On Error Resume Next If YeniResim = "(Yok)" Or YeniResim = "" Then Picture1.Picture = LoadPicture() YeniResimSakla = "(Yok)" Refresh Exit Property End If Picture1.Picture = LoadPicture(YeniResim) If Err Then Picture1.Picture = LoadPicture(YeniResimSakla) Refresh Exit Property End If YeniResimSakla = YeniResim Refresh End Property Pr ivate Sub UserControl_InitProperties() Baslik = Extender.Name Resim="C:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Bitmaps\ Assorted\HAND.BMP" End Sub Pr ivate Sub UserControl_ReadProperties(PropBag As PropertyBag) Baslik = PropBag.ReadProperty("Baslik", Extender.Name) Resim = PropBag.ReadProperty("Resim", "") End Sub Pr ivate Sub UserControl_WriteProperties(PropBag As PropertyBag) PropBag.WriteProperty "Baslik", Baslik, Extender.Name PropBag.WriteProperty "Resim", Resim, "" End Sub ReadProper ty ve Wr iteProper ty metotlar iin default deer olarak "C:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Bitmaps\ Assorted\HAND.BMP" yolu kullanlabilir.(Bu yol tanm sizin kendi bilgisayarnzda muhtemelen fakldr.

VISUAL BASIC LE YAZILIM GELTRME Siz buraya kendi setiiniz bitmap resminin yolunu vermelisiniz.) Kontrolmz iin kullandmz resim kutusu kontrolnn Pictur e zelliini None yapnz. ekil A.19 Kontrolmzn Name, Baslik ve Resim zellikleri F4 tuu ile kontrolmzn zellikler penceresini atnzda Resim zelliini grebilirsiniz. Burada yanl bir yol verecek olursanz kontrolmz bunu kontrol edecek ve bu zellik atamasn iptal ederek eski Resim zelliini koruyacaktr. ayet resim zelliini tamamen silecek olursanz zellikler penceresinde resim zelliinin karsna kodda da belirttiimiz gibi (Yok) ifadesini yazarak kontroln stndeki resmi iptal edecektir.

VISUAL BASIC LE YAZILIM GELTRME UserControl E ZELLK SAYFASI ( PROPERTY PAGE) EKLEMEK Kontroller ile tasarm ortamnda alrken (rnein bir formun tasarm ortamnda) kullancya kolaylk salamas amac ile kontroln en ok kullanlan zellikleri, zellikler penceresinden(properties window) daha esnek bir ortamda bir araya getirilir. rnein oluturduumuz kontrol iin resim zelliine, doru bir yol tanm atamak iin uzunca bir string ifadeyi hatrlamak ve bunu zellikler penceresinde doru bir ekilde yazmak gerekir. Resmimizin yol tanm uzun dizin ifadelerinden oluan bir string ise bu ilem ou kez bktrc ve zor olacaktr. te kontrollere benzeri kullanm kolaylklar salamak iin zellikler sayfas(property page) kullanlr. Aadaki admlar izleyiniz. 15) UserControl projesine Project\Add Proper ty Page men komutu ile bir zellik sayfas ekleyiniz. ekil A.20 Bo bir zellik Sayfas Tasarm Penceresi zellik sayfas tpk bir form veya UserControl tasarm penceresi gibi bir tayc olarak kullanlr. zellik sayfasn Ilk_OzellikSayfam ismi ile saklaynz(*.pag uzants ile kaydedilirler)

VISUAL BASIC LE YAZILIM GELTRME Name zelliine Ilk_OzellikSayfam ismini, Caption zelliine de Resim deerini ataynz. 16)zellik sayfasna aadaki gibi iki tane TextBox kontrol ve birer tane Label, FileListBox, DirListBox ve DriveListBox kontrolleri yerletirin. ekil A.21 Kontrollerin zellik Sayfasna yerletirilmesi 17)zellik sayfas ve kontrol nesneleri ile ilikili olarak aadaki kodlar giriniz: Pr ivate Sub PropertyPage_SelectionChanged() Text2.Text = SelectedControls(0).Resim Label1.Caption = "Yol:" Text1.Text="" Dir1.Path="C:\ProgramFiles\MicrosoftVisualStudio\Common\Graphics\Bitmaps \Assorted" File1.Path = Dir1.Path End Sub

VISUAL BASIC LE YAZILIM GELTRME Yukardaki olay prosedr zellik sayfas arldnda form zerindeki seili kontroln Resim zelliini elde etmek ve ilgili Text kontrolne atamak iin kullanlr. Bu olay prosedr zellik sayfas her aldnda veya form zerinde bir fakl kontrol seildiinde arlr. zellik sayfas Modeless bir penceredir. Yani ak iken baka pencereler ile ilem yaplabilir. Bylece herhangi bir kontrol iin zellik sayfas arldktan sonra zellik sayfasn kapatmakszn baka kontrollerde seilebilir. Pr ivate Sub PropertyPage_ApplyChanges() Dim objControl As Variant For Each objControl In SelectedControls objControl.Resim = Text2.Text Next End Sub Ok veya Apply tuuna basnca yukardaki olay prosedr altrlr. Bylece aktif olarak seilmi kontroln ilgili zelliine istenen deer atanm olur. Pr ivate Sub Drive1_Change() Dir1.Path = Drive1.Drive End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Pr ivate Sub File1_Click() Text1.Text = File1.List(File1.ListIndex) If Mid(Dir1.Path, Len(Dir1.Path), 1) <> "\" Then Text2.Text = Dir1.Path + "\" + Text1.Text Else Text2.Text = Dir1.Path + Text1.Text End If Changed = True 'Apply butonun aktif olmas iin kullanlr . End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Text2_Change() Changed = True 'Apply butonun aktif olmas iin kullanlr . End Sub ZELLK SAYFASINI KONTROL LE LKLENDRMEK zellik sayfasn kontrol ile ilikilendirmek iin aadaki admlar izleyiniz. 18)UserControl tasarm penceresini anz ve F4 tuu ile zellikler penceresini arnz. Property Page zellii iin aadaki ekranda olduu gibi oluturmu olduumuz zellik sayfasn seiniz. ekil A.22 zellik Sayfasnn UserControl e balanmas UserControl tasarm penceresini kapatnz ve form zerindeki kontrol seerek mouse u sa tuuna tklaynca alan menden Properties seeneini seiniz( veya kontroln zellikler penceresinden (Custom a tklatnz) ve ekil A.24 deki gibi yeni bir resim seiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil A.23 zellik Sayfasnn arlmas ekil A.24 zellik Sayfas ile Resim zelliine yeni deer atamak

VISUAL BASIC LE YAZILIM GELTRME zellik sayfalarn daha abuk ve pratik bir ekilde oluturmak mmkndr. Bu ama iin Proper ty Page Winzard( zellik Sayfas Sihirbaz) kullanlr. imdi de kontrolmzn Baslik zellii iin bu sihirbaz kullanarak yeni bir zellik sayfas oluturalm. PROPERTY PAGE WNZARD( ZELLK SAYFASI SHRBAZI) Kontrolmze bu sihirbaz kullanarak bir zellik sayfas eklemek iin braktmz yerden balayarak numaralandrdmz admlar izleyiniz. 19)Proper ty Group penceresinden UserControl projesini tklaynz ve Project\Add Proper ty Page men komutunu seiniz. ekil A.25 teki Add Proper tyPage penceresi alacaktr. Bu pencereden Vb Property Page Winzard ikonuna tklaynz. ekil A.25 - Add Proper tyPage penceresi Alan Introduction(Takdim) penceresinde Next butonunu seiniz. a) Select the Property Pages penceresi alacaktr. Bu pencerede kontrolmz iin oluturduumuz dier zellik sayfalar da gzlemlenebilir.

VISUAL BASIC Add butonunu giriniz. ekil A.26 ekil A.27

LE YAZILIM GELTRME sein ve alan diyalog kutusuna IkinciOzellikSayfam ifadesini Select the Property Pages penceresi Oluturulan ikinci zellik Sayfas

VISUAL BASIC LE YAZILIM GELTRME b)zellik sayfalar listesinden oluturduumuz IkinciOzellikSayfas seilmi olarak listelenecektir. Next butonuna tklaynz. c)Alan Add Properties penceresinde, Available Proper ties listesinde kullanabileceimiz zelliklerin listesi yer alr. Resim zelliini ilk zellik sayfas iin kullandmzdan sadece Baslik zellii kullanlabilir durumdadr. Available Properties listesinden IkinciOzellikSayfas tab n setikten sonra Baslik zelliine ift tklayn ve Next i sein. ekil A.28 Baslik zellii IkinciOzellikSayfas iin seilmesi d)Finished diyalog penceresinde Finish butonuna tklayn. Bylece zellik sayfas herhangi bir kod yazlmakszn oluturulmu olur. Visual Basic zellik sayfasn oluturduuna dair mesaj verir. e)UserControl projesinde IkinciOzellikSayfam a ift tklayarak tasarm penceresini an ve F4 ile zellikler penceresinden Caption zelliine Baslik deerini ataynz.

VISUAL BASIC LE YAZILIM GELTRME ekil A.29 kinci zellik sayfasnn Caption zellii deitiriliyor. zellik sayfas tasarm penceresini kapatn ve test amal kullandmz formu aarak kontrolmzn zellik sayfasn an. Baslik zelliine TAMAM deerini ataynz. ekil A.29 Baslik zelliine TAMAM deerinin atanmas

VISUAL BASIC LE YAZILIM GELTRME imdiye kadar yaplan ilemleri aadaki gibi zetleyebiliriz. 1)Bir ActiveX kontrol projesi ve bu projenin almasn gzlemleyebilmek iin test amal bir proje oluturduk. 2)UserControl n yaam evrimi diyebileceimiz life-cycle n ve bu erevede UserControl e ait yeni olaylar(Initialize, InitProper ties, ReadProper ties vb. gibi) yeni metotlar (ReadProper ty, WriteProperty) ve Proper tyBag nesnesini rendik. 3)Kontrolmze Baslik ve Resim zelliklerini ekleyerek UserControl e zelliklerin nasl eklenecei hakknda bilgi sahibi olduk. Extender nesnesini rendik. 4)Kontrolmzn kullancnn gerekletirdii ilemlere gre grnn nasl ayarladn rendik. Bu erevede paint olaynn ve refresh metodunun kullanln akladk. API arlarnn Visual Basic ile kullanlmasna deindik. 5)zellik sayfalarnn nasl oluturulduunu rendik. Ayn ama iin zellik sayfas sihirbaznn kullanl hakknda fikir sahibi olduk. Btn bu ilemlerden sonra bir ActiveX kontrol projesini uygulama gelitirirken kullanabilmek iin UserControl e olay(event) eklemek gerekir.

VISUAL BASIC LE YAZILIM GELTRME UserControl E OLAY(EVENT) EKLEMEK Bir UserControl oluturulduunda, default(nceden atanm) olarak ekilA.31 da grld gibi drt adet olay prosedr ierir. Bu olay prosedrleri kontrolmz kullanarak uygulama gelitirirken doal olarak istenen amac gerekletirmeye yetmeyecektir. rnek kontrolmz bir butonu taklit ettiinden en basit olarak Click olayn da iermelidir. nk kontrolmz kullanan tasarmc bu olay prosedr ile yapmay tasarlad ilemleri gerekletirebilir. ekil A.31 UserControl n default olarak sahip olduu olaylar Butonumuzun bir uygulama iinden k amac ile kullanldn dnrsek kullancnn yapmak istediinin gerekten uygulamadan kmak olduunu onaylamas iin bir mesaj kutusu grntlemek amac ile kullanlabilir. Bunun iin Click olayna ihtiyacmz vardr. Burada dikkat edilmesi gereken nokta iki farkl Click olaynn olmasdr. UserControl n veya zerinde herhangi bir kontroln click olay UserControl yazan programc tarafndan kullanlr. Bu kontrol kullanacak olana tasarmc ise uygulama gelitirirken ancak programcnn kontrolne ekledii click olayn kullanabilir.

VISUAL BASIC LE YAZILIM GELTRME imdi ilem admlarnza kontrolmze bir olay eklemek iin kaldmz yerden devam edelim. 20)UserControl tasarm penceresini an ve kod penceresini aktif yapn. 21)Object kutusundan General , procedure kutusundan da Declarations seiniz ve Public Event Click() kod satrn ekleyiniz. Option Explicit Dim YeniResimSakla As String Public Event click() 22)Mouse UserControl n veya etiket kontrolnn zerinde iken MouseUp olay gerekletiinde kullanc aslnda bir click olay gerekletirmi olur. lgili prosedrleri click olaynn grafiksel temsili iin kullanmtk. UserControl n ve etiket kontrolnn click olay prosedrne eklenecek RaiseEvent Click ifadesi ile de kontroln click olay prosedrnn icra grmesini salarz.(RaiseEvent metodu kontroln sahip olamad olaylar iinde kullanlr. lerdeki konularda bununla ilgili rnekler mevcuttur. ) Aadaki deiiklikleri yapnz. Pr ivate Sub UserControl_Click() RaiseEvent click End Sub Pr ivate Sub Label1_Click() RaiseEvent click End Sub UserControl tasarm penceresini kapatnz ve form zerindeki kontrolmz seerek ift tklaynz. Alan kod penceresinde ekleni olduunuz click olayn grebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME imdi OzelButon isimli kontrolmzn Baslik zelliini IKI olarak deitirin ve Resim olarak ilk resmi DELETE.BMP ile deitirin. Click olay prosedrne aadaki kod satrlarn ekleyerek projeyi altrp IKI butonunu tklaynz. Ekrana aadaki gibi ieriini bizim hazrladmz bir mesaj kutusu gelecektir. Buradaki Evet seeneini seerseniz programdan karz, Hayr seeneini seersek programa geri dneriz. ekil A.32 Click olay prosedrnn altrlmas UserControl N OCX DOSYASI OLARAK DERLENMES Gelitirdiimiz kontrolleri ActiveX i destekleyen baka platformlara tayabilmek veya baka Visual Basic uygulamalar ile kullanabilmek iin UserControl projesine .OCX dosyas iinde derlememiz gerekir. Project Group penceresinden UserControl projesini sein ekil A.33 deki men komutunu altrn.

VISUAL BASIC LE YAZILIM GELTRME ekil A.33 UserControl projesinin OCX dosyas olarak derlenmesi Alan MakeProject penceresinde uygun bir yol tanm verdikten sonra OK butonunu tklaynz. imdi File\New Project men komutunu seiniz ve yeni bir Standart Exe projesi balatnz. File\Components men komutunu seerek veya Ctrl+T ksayol tularna basarak Components diyalog penceresini anz. ekil A.34 de de grld gibi bu pencereden oluturduumuz ActiveX kontroln seiniz. Daha nce oluturduumuz kontrol ara kutusundan seerek formun zerine yerletiriniz. Bylece kontrolmz baka projelerde de kullanlabilir hale gelecektir.

VISUAL BASIC LE YAZILIM GELTRME ekil A.34 ActiveX kontrolnn Components penceresinden seilmesi ekil A.35 UserControl n form zerine yerletirilmesi

VISUAL BASIC LE YAZILIM GELTRME ActiveX DKMANLARI ActiveX dkmanlar etkileimli nternet uygulamalar gerekletirmek iin kullanlr. Standart programlarda alk olduumuz yaplar Internet Explorer un ats altnda kullanabilme esneklii salarlar. Bu dkmanlar ile formlar oluturulabilir, mesaj kutular grntleyebilir, ActiveX kontrollerini kullanabilirsiniz. RNEK BR ActiveX DKMANI Standart exe projeleri formlar ile, ActiveX kontrolleri UserControl ler ile ActiveX kod bileenleri snf modlleri ile alr. ActiveX dkman projeleri ise UserDocument diye isimlendirilen bir tayc zerinde gelitirilir ve bu dkmanlar Internet Explorer zerinde kullanlr. rnek bir ActiveX dkman oluturmak iin aadaki admlar izleyiniz. 1)File\New Project men komutu ile New Project penceresini anz ve ActiveX Document EXE ikonunu seerek OK butonuna tklayn. ekil B.1 ActiveX dkman tasarm penceresi

VISUAL BASIC LE YAZILIM GELTRME Visual Basic, ActiveX dkman projesi balatldnda default olarak(nceden atanm) projeye UserDocument1 isimli bir dokman ekleyecektir. 2)Project penceresinden UserDocument1 i sein ve F4 tuu ile zellikler penceresinden Name zelliini IlkActiveXDokumanim olarak deitiriniz. ekil B.2 Name zellii IlkActiveXDokumanim olarak deitiriliyor. 3)Dkmann zerine bir TextBox kontrol ve komut butonu yerletirin ve butona sonraki sayfadaki kod satrn ekleyiniz. TextBox kontrolnn zelliine kullandmz bir web sayfasnn adresini yaznz ve komut butonunun Caption zelliini NAVIGATE olarak deitiriniz. Heyper text sistemlerde (ayrk veri paralar arasnda dinamik text eriimini salamak iin linklerin ve dmlerin kullanld sistemler), semantik bir network (mantksal network) ortamdaki ayrk veri paralarna kullancnn arzusu dorultusunda yaplan keyfi sradaki eriimlere navigate ilemi denir. Bu dkman Internet Explorer zerinde altrdnzda TextBox kontrolne girmi olduunuz adresteki Web sayfalarna navigate butonunu kullanarak balanabilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Hyperlink nesnesinin NavigateTo metodu TextBox kontrolnn text zelliine yazdmz URL adresine eriim yapmak iin kullanlr. Bir URL adresine en azndan bir protokol ve host ismi iermelidir. URL bir dizin veya dosya ismi olabilir. NavigateTo metodu oluturduumuz ActiveX dkmanlarn grntlemek iin de kullanlr. Aadaki rnekleri inceleyiniz. Http://www.microsoft.com microsoft.com dizinine balanmak iin kullanlr. Http://www.microsoft.com/disclaimer.txt ise microsoft.com dizininde disclaimer.txt dosyasna erimek iin kullanlr. Hyperlink NavigateTo c:\ActiveX Document\Ornek.vbd ise Ornek.vbd isimli bir ActiveX dkmanna erimek iin kullanlr. 4)Projeyi ve bileenleri aadaki dosya isimleri ile kaydediniz. Dokman IlkActiveXDokumanim *.dob Proje dosyas IlkActiveXDokumanProjem *.vbp 5)F5 tuu ile projeyi altrnz. Projeyi altrdnzda Visual Basic ActiveX dkmannz ile ayn isimde *.vbp uzantl doya oluturur. Bu dosya sadece projeniz alr durumda kald srece oluturulur. Windows un Star t butonu ile Find\Files or Folders seeneini seiniz ve IlkActiveXDokumanim dosyasn arattrnz.

VISUAL BASIC LE YAZILIM GELTRME ekil B.3 Proje alr durumda kald srece oluturulan IlkActiveXDokumanim.vbd dosyas 6)Internet Explorer altrnz ve Address kutusuna IlkActiveXDokumanim.vbd dosyasnn yolunu ve dosya ismini yaznz veya F5 tuuna bastktan sonra gelen ekran OK butonu ile geiniz. ekil B.4 ActiveX dkmann Internet Explorer zerinde grntlenmesi

VISUAL BASIC LE YAZILIM GELTRME NAVIGATE komutunu kullanarak metin kutusuna edresini yazdnz Web sayfalarn gzlemleyebilirisiniz. ActiveX dkman projemiz birden fazla sayda ActiveX dkman ierebilir. Projemize eklediimiz her bir dkman Standart Exe projesindeki formlar gibi dnebilirsiniz. Standart Exe projesine eklediimiz ikinci, nc ve dier formlar show metodu ile grntlenebilir. Halbuki ActiveX dkmanlar bu ekilde grntlenemezler. nk dkmanlarn grntlenmesi iini Internet Explorer gerekletirir. Biz sadece daha ncede bahsettiimiz gibi navigate ilemini gerekletiririz. Navigate ilemi iin de Hyper link nesnesi ve onun NavigateTo metodu kullanlr. imdi aadaki admlar uygulayarak bu ilemlerin nasl gerekletiiniz anlamaya alnz. 7) IlkActiveXDokumanim isimli dkmann zerine bit komut butonu yerletirin. Caption zelliini Sonraki Sayfay Gster olarak deitiriniz ve aadaki kod satrn ekleyiniz. Pr ivate Sub Command2_Click() Hyperlink.NavigateTo "C:\ProgramFiles\MicrosoftVisual Studio\VB98\IkinciActxDok.vbd" End Sub

VISUAL BASIC LE YAZILIM GELTRME 8)Project\Add UserDocument men komutunu kullanarak projeye ikinci bir dokman ekleyiniz ve Name zelliini IkinciActxDok olarak deitiriniz. Dkmann zerine bir komut butonu yerletiriniz ve Caption zelliini nceki Sayfay Gster olarak deitiriniz. Aadaki kod satrn projeye ekleyiniz. Pr ivate Sub Command1_Click() UserDocument.Hyperlink.GoBack End Sub 9)Yaplan son deiiklikleri kaydedin ve F5 ile projeyi altrn. Internet Explorer altrn ve Adres kutusuna IlkActiveXDokumanim dosyasnn yolunu ve dosya ismini yazp enter tuuna basn. Aadaki ekran gelecektir. ekil B.6 IlkActiveXDokumanim.vbd dkmann grntlenmesi

VISUAL BASIC LE YAZILIM GELTRME Ikinci ActiveX dkmann grntlemek iin Sonraki Sayfay Gster balkl butonu tklaynz. ekil B.7 - Ikinci ActiveX dkmann grntlemesi Bu dkmann zerindeki butona tkladnzda ise tekrar ilk dkman grntleyebilirisiniz. Sayfalar bir kez grntlendikten sonra ayn amac gerekletirmek iin Internet Explorer n Back ve Forward butonlar da kullanlabilir. Sayfalar arasnda gezinirken sayfalarn dosya isimleri ve yol tanmlar Adres kutusunda otomatik olarak gncellenir. ActiveX DKMANLARINA MEN EKLEMEK ActiveX dkmanlar men ierebilir. Bir ActiveX dkmanna, bir forma men ekler gibi men ekleyebilirsiniz. Bunun iin Menu Editor kullanlr. Fakat tasarm ortamnda ActiveX dkmanlarna eklediimiz meny grsel olarak gremezsiniz. nk ActiveX dkmanlarnn ierdikleri men, ActiveX i grntlemek iin kullanlan uygulamann mens ile birletirerek kullanlabilir. Yani bizim uygulamamza ekleyeceimiz men Internet Explorer in men satrnda grntlenecektir.

VISUAL BASIC LE YAZILIM GELTRME Bu rnek projemizde, hemen hemen btn uygulamalarda olduu gibi kullancya program hakknda(burada ActiveX dkman hakknda) ksa bir bilgi vermek iin About(hakknda) diyalog penceresi grntlemek amac ile kullanlacak bir men oluturalm. About diyalog penceresi Standart exe projelerimizde kullandmz sradan bir formdur. ActiveX dkmanlar ile formlar da grntleyebiliriz. Bu alma ayn zamanda ActiveX dkmanlarnda formlarn grntlenmesi ile de ilgili rnek olacaktr. Aadaki admlar takip ediniz. 1)Internet Explorer i kapatnz ve ActiveX dkman projesinin almasn durdurunuz. Project\Add Form men komutu ile projeye bir form ekleyiniz. Formun BorderStyle zelliini Fixed Dialog yapn ve Caption zelliini Dkman Hakknda olarak deitiriniz, ekil B.8 deki gibi dzenleyiniz ve formun name zelliini frmAbout olarak deitiriniz. Forma bir de buton ekleyerek Caption zelliini TAMAM olarak deitirip buton ile ilgili olarak aadaki kodu giriniz. Pr ivate Sub cmOK_Click() Unload Me End Sub ekil B.8 About(hakknda) diyalog penceresi

VISUAL BASIC LE YAZILIM GELTRME 2) Project penceresinden IlkActiveXDokumanim isimli ActiveX dkman seiniz ve tasarm penceresini aktif yapnz. Tools\Men Editr i ile Men Editr penceresini anz ve aadaki gibi dzenleyiniz. Next butonunu kullanarak yukardaki men bal iin aadaki men satrn tanmlaynz.

VISUAL BASIC LE YAZILIM GELTRME 3) IlkActiveXDokumanim isimli ActiveX dkmannn kod penceresini aktif yapnz, aadaki kod satrn ekleyiniz ve deiiklikleri kaydediniz. Pr ivate Sub mnuHakkinda_Click() frmAbout.Show vbModal End Sub 4)Projeyi ve Internet Explorer tekrar altrnz. Adres kutusuna IlkActiveXDokumanim.vbd dosyasnn yolunu ve adn yazp enter tuuna basnz. Eklemi olduunuz About(Hakknda) men bal Internet Explorer n men satrnda gzkecektir. ekil B.9 ActiveX dkmanna eklenen men Internet Explorer n mens ile birletiriliyor.

VISUAL BASIC LE YAZILIM GELTRME ekil B.10 About(Hakknda) diyalog penceresinin grntlenmesi

VISUAL BASIC LE YAZILIM GELTRME ActiveX KOD BLEENLER Bir ActiveX bileenini .exe .dll veya .ocx uzantl doyalar gibi altrabilir kodlardan oluan birlik diye tanmlamtk. Adndan da artrd gibi, bileenler, nesne formun iinde tekrar tekrar kullanlabilir yazlm paralar destei salarlar. Bylece oluturulan kod bileenleri baka uygulamalar tarafndan kullanlabilirler. Uygulamalar bir bileenin kodundan, bileenin salad nesneleri oluturarak yaralanabilir. Bu sayede kod bileeni sahip olduu zellikleri ve metotlar istemci(client) olarak alan uygulamann hizmetine sunar. Bileenlerin nesnelerini kullanan uygulamalar, bileenlerden iki fakl ekilde yararlanabilir. Bir bileen in-Process (ilem ii) veya out of-process (ilem d) eklinde alabilir. Yani ayet bir bileen in-process olarak altrlyorsa(bunu DLL olarak isimlendiriyoruz) istemci(client) olarak alan uygulama kod bileenin nesnelerini dolaysyla bu nesnelerin zelliklerini ve metotlarn kendi ilem uzay iinde altryor demektir. Out-of process olarak alan kod bileenleri istemci(client) olarak alan uygulamann ynettii istemleri kendi ilem uzay iinde altrr ve sonucunu uygulamaya geri gnderir. Bu srada client olarak alan uygulamann ilem ak kesilmez. Halbuki in-Process olarak alan bir uygulama kod bileeninin nesnesini kullandnda, bileenin kodu kendisi icra eder. RNEK BR ActiveX UYGULAMASI Uygulamalar kod bileenlerini, bu bileenlerin sahip olduu nesneleri oluturarak kullanabilir. Yani bir kod bileeni nesnelerden ve bu nesnelerin zellikleri ve metotlarndan olumaldr. Nesneye Ynelik Programlama blmmzde oluturduumuz Mevsim nesnesini bu sefer bir bileen olarak gelitireceiz ve baka uygulamalar iinde almasn aklayacaz. Visual Basic ile bir ActiveX DLL i oluturmak olduka kolaylatrlmtr. imdi rnek bir uygulama zerinde in-process olarak alan bir kod bileeninin almasn renmek iin aadaki admlar izleyin.

VISUAL BASIC LE YAZILIM GELTRME ekil C.1 - ActiveX DLL projesi tasarm ortam Visual Basic default(ilk deer) olarak ActiveX DLL projesine bir snf modl(Class Module) eklere, nk Standart EXE projelerinin formlar ile, ActiveX kontrol projelerinin UserControl ler ile alt gibi ActiveX DLL projeleri de nesneler ile yani Class Module ile alr. 2)Default olarak eklenen snf modlnn ismi Class1 dir. Herhangi bir uygulama bu nesneyi olutururken bu ismi kullanacaktr. Bunun iin project penceresinden snf modln seiniz ve F4 tuu ile zellikler penceresini anz. Name zelliini Mevsim olarak deitiriniz. Instancing zellii default olarak MultiUse eklindedir. Bylece istemci(client) olarak alan uygulama Mevsim nesnesinin rneini birden fazla oluturabilir.

VISUAL BASIC LE YAZILIM GELTRME ekil C.2 Snf modlnn Name zellii Mevsim olarak deitiriliyor. 3)Project\Project Proper ties men komutlar ile Project Properties penceresini anz ve aadaki deiiklikleri yapnz. ekil C.3 Project Properties penceresi

VISUAL BASIC LE YAZILIM GELTRME 4)Project Star tup nesnesi olarak Sub Main tanmladk. Yani kod bileenimiz her altnda ilk olarak Main prosedr alacaktr. Bunun iin Project\Project Proper ties penceresinden Add Module men komutunu seiniz ve aadaki kod satrlarn alan modl penceresine ekleyiniz Option Explicit Sub Main() Debug.Print "Bilesen almaya balyor." End Sub Projemizi her zaman olduu gibi test etmek amac ile ikinci bir projeye ihtiya duyulur. ActiveX DLL projemizi ekleyeceimiz test amal projede altrabilmek iin kaydetmemiz gerekir. Bunun iin grev ubuu zerindeki(taskbar) disket resimli butonu veya File\Save Project men admlarn kullanabilirsiniz. Proje ve bileenlerini aadaki dosya isimleri ile saklaynz. Modl MevsimDLL_Modul1 *.bas Snf Modl MevsimDemo_Mevsim *.cls Proje MevsimDLL *.vbp Bu ilemleri yatktan sonra Mevsim nesnemiz iin gerekli kod satrlarn yazabiliriz. Mevsim nesnemiz MevsimBul ve TurkceEnglish isimli iki zellik ierecektir. MevsimBul zellii Nesneye Ynelik Programlama blmmzde de olduu gibi kullancnn girmi olduu o anki mevsimi tutmak ve istedii taktirde gstermek amac ile kullanlacaktr. MevsimBul zellii, mevsim isimli nesnemizi tanmlayan bir zelliktir. TurkceEnglish zellii ise listelenen mevsimin hangi dilde listelendiini ayrt etmeye yarar. MevsimBul zelliine atanan mevsim deeri Trke veya ngilizce dillerinden birinde listelenir. Bu dntrme ilemini yapmas iin de nesnemize Bilingual metodunu ekleyeceiz. MevsimBul zelliinde TurkceEnglish zellii kontrol edilerek o anki kullanlan dil Trke ise MevsimBul iin mevsimin ngilizce karl kullanlr.(veya tersi yaplr) Bu zelliin deeri sadece Bilingual metodu tarafndan deitirilebilir. Bunun dnda kullanc mdahalesini nlemek iin bu zellik kullanc iin salt okunur eklinde dnlmtr.

VISUAL BASIC LE YAZILIM GELTRME 5)Proje penceresinden snf modln seiniz ve kod penceresini anz. Tools\Add Procedur e men komutu ile MevsimBul ve TurkceEngilish zelliklerini oluturun ve aadaki kod satrn ekleyiniz. ekil C.4 mevsimBul zelliinin eklenmesi Option Explicit Pr ivate OankiMevsim As Integer Pr ivate BoolBilingual As Boolean Const ILK = 0, YAZ = 1, SON = 2, KIS = 3 Public Proper ty Get TurkceEnglish() As Boolean TurkceEnglish = BoolBilingual End Property Public Proper ty Get MevsimBul() As String If (TurkceEnglish) Then Select Case OankiMevsim Case ILK MevsimBul = "ILK BAHAR" Case YAZ MevsimBul = "YAZ" Case SON MevsimBul = "SON BAHAR" Case KIS MevsimBul = "KIS"

VISUAL BASIC LE YAZILIM GELTRME End Select Else Select Case OankiMevsim Case ILK MevsimBul = "SPRING" Case YAZ MevsimBul = "SUMMER" Case SON MevsimBul = "AUTUMN" Case KIS MevsimBul = "WINTER" End Select End If End Property Public Proper ty Let MevsimBul(ByVal MevsimAd As String) If (TurkceEnglish) Then Select Case MevsimAd Case "ILK BAHAR" OankiMevsim = ILK Case "YAZ" OankiMevsim = YAZ Case "SON BAHAR" OankiMevsim = SON Case "KIS" OankiMevsim = KIS End Select Else Select Case MevsimAd Case "SPRING" OankiMevsim = ILK Case "SUMMER" OankiMevsim = YAZ Case "AUTUMN" OankiMevsim = SON Case "WINTER" OankiMevsim = KIS End Select End If End Property

VISUAL BASIC LE YAZILIM GELTRME Public Sub Bilingual() BoolBilingual = Not (BoolBilingual) End Sub Snf modl Initialize ve Terminate isimli iki olay ierir. Initialize olay prosedr nesne ilk oluturulurken altrlr. Nesnenin zellikleri ve metotlar daha sonra oluturulur. Terminate olay prosedr ise nesne yok edilecei zaman, yani istemci(client) olarak alan uygulamadan nesneye yaplan btn referanslar serbest brakldnda altrlr. Initialize olay prosedr altrlrken henz nesne oluturulmamtr ve retilen hata mesajlar istemci olarak alan uygulama tarafndan yakalanr. Fakat Terminate olay prosedr srasnda retilen hata mesajlar bu bileeni kullanan uygulama tarafndan yakalanamaz. Bir hata olumas durumunda ise uygulamann almas kesilir. te bunu nlemek iin On Error Resume Next ifadesini btn kod bileeni projelerinizde Terminate olay prosedrne eklemeniz gerekir. Bylece bir hata olutuuna programn ak kesilmeyecek, program hatann olutuu satr atlayarak bir sonraki satrdan icrasna devam edecektir. Pr ivate Sub Class_Terminate() On Error Resume Next End Sub Pr ivate Sub Class_Initialize() BoolBilingual = True 'Bu satr sadece rnee aittir. End Sub 6)File\Add Project men komutu ile test amal Standart exe projesi oluturunuz. Project Group penceresinde Standart exe projesini seiniz ve mouse sol butonuna basnca alan menden Set as Start Up seeneini seiniz.

VISUAL BASIC LE YAZILIM GELTRME ekil C.5 Test projesini Start Up olarak ayarlamak 7)Project\Refer ences men komutu ile Referances diyalog penceresini anz ve MevsimDLL i iaretleyerek OK butonunu tklaynz. ekil C.6 MevsimDLL bileeninin seilmesi

VISUAL BASIC LE YAZILIM GELTRME 8)Form zerine ekil C.7 de olduu gibi butonlar yerletiriniz ve aadaki kod satrn ekleyiniz. ekil C.7 Form zerine buton kontrollerinin yerletirilmesi Option Explicit Private OrnekMevsim As Mevsim Pr ivate Sub Command1_Click() Dim Msg As String Dim Title As String Set OrnekMevsim = New Mevsim If OrnekMevsim.TurkceEnglish Then Msg = "u anki mevsimi girin" Title = "Mevsim" Else Msg = "Enter the current season" Title = "Season" End If OrnekMevsim.MevsimBul = UCase(InputBox(Msg, Title)) End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Command2_Click() Dim Msg As String Dim Title As String If OrnekMevsim.TurkceEnglish Then Msg = "u anki mevsim :" Title = "Mevsim" Else Msg = "Current season:" Title = "Season" End If Msg = Msg + OrnekMevsim.MevsimBul MsgBox Msg, , Title End Sub Pr ivate Sub Command3_Click() OrnekMevsim.Bilingual Command2.Value = True End Sub Pr ivate Sub Command4_Click() Set OrnekMevsim = Nothing End Sub F5 tuu ile projeyi altrnz ve oanki mevsimi aadaki gibi giriniz. ekil C.8 Aktif mevsimin girilmesi

VISUAL BASIC LE YAZILIM GELTRME ekil C.9 Bilingual metodunun altrlmas O anki mevsimi girdikten sonra Alt-F4 tular ile veya Close sistem mens komutu ile kapatacak olursanz nesne snfnn Terminate olay prosedr altrlr. ayet Run\End men komutu kullanrsanz Visual Basic oluturduunuz projeniz iin hafzaya ykledii btn proje bileenlerini derhal serbest brakr. (Unload yapar) Yani snf modlnn Terminate olay prosedrn altrmaz. Aadaki kod snflarn projenize ekleyerek End men komutunun etkilerini Immediate penceresinden gzlemleyebilirsiniz. Pr ivate Sub Class_Terminate() On Error Resume Next Debug.Print MevsimBul + "Nesnesi yok ediliyor." End Sub Nesne gz atcsn kullanarak oluturduumuz Mevsim nesnesini inceleyebilirsiniz. (Nesne gz atcs penceresinde Project\Library kutusundan MevsimDLL i sei.)

VISUAL BASIC LE YAZILIM GELTRME ekil C.10 Nesne gz atcs ile Mevsim nesnesini incelemek Bir dier kod bileeni ActiveX EXE dir. ActiveX EXE uygulamalar out-ofprocess( ilem d) olarak altrrlar. Bir uygulamann bu bileeni kullanabilmesi iin ActiveX EXE uygulamasnn daha nceden altrlm olmas gerekir. ActiveX EXE ile onun salad nesneleri kullanan istemci uygulama birbirinden bamsz alrlar. ActiveX EXE, istemci olarak alan uygulamann kendisine ynelttii istekleri kendi uzay iinde gerekletirir ve sonucu uygulamaya geri gnderir. RNEK BR ActiveX EXE UYGULAMASI Btn kod bileeni uygulamalar nesnelerden ve bu nesnelerin sahip olduklar zellikler ile metotlardan oluur. Nesneye Ynelik Programlama blmmzde de deinildii gibi yeni bir nesne yaratmak iin, elimizde balca iki imkan vardr. 1)Mevcut bir forma yeni zellikler ekleyerek bu formu bir snf ablonu olarak kullanmak.

VISUAL BASIC LE YAZILIM GELTRME 2) Snf modl(Class Module) ad verilen zel tipte bir modl kullanmak rnek uygulamamzda bu imkanlardan yaralanarak bir ActiveX EXE uygulamasnn almas aklanacaktr. imdi aadaki admlar izleyiniz. ekil C.11 ActiveX EXE projesi al ekran 1)File\New Project men komutu ile New project penceresini atktan sonra ActiveX EXE ikonunu seiniz ve OK butonuna tklaynz. ActiveX DLL projesinde de olduu gibi Visual Basic default olarak ActiveX EXE projesine bir snf modl ekler (Class Module) 2)Default olarak eklenen snf modlnn ismi Class1 dir. Project penceresinden snf modln sein ve F4 tuu ile zellikler penceresini anz. Nesne zelliini OrnekEXE olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME ekil C.12 - Snf modlnn Nesne zellii OrnekEXE olarak deitiriliyor. 3)Project\Project Proper ties men komutlar ile Project Properties penceresini anz ve aadaki deiiklikleri yapnz. ekil C.13 - Project Properties penceresi

VISUAL BASIC LE YAZILIM GELTRME KOD BLEENNE FORM EKLEMEK ActiveX EXE kod bileenine form eklemek iin aadaki admlar kaldmz yerden takip ediniz. 4)Project\Add Form men komutu ile projeye form ekleyiniz. smini OrnekForm olarak deitiriniz ve stne metin kutusu kontrol yerletiriniz. ekil C.14 Formun ismi zellii OrnekForm olarak deitiriliyor. 5)Project penceresinden OrnekForm seiniz ve kod penceresini anz. Aadaki kod satrlarn projeye ekleyiniz. Option Explicit Event SendThisText(ByVal MyText As String) Pr ivate Sub Text1_Change() RaiseEvent SendThisText(Text1.Text) End Sub

VISUAL BASIC LE YAZILIM GELTRME Snf ablonu olarak kullanacamz OrnekForm iin SendThisText olayn formun General/Declar ations ksmna Event olarak tanmladk ve argman olarak My Text isimli bir string ifade kullandk. Bu olayn retilmesi, metin kutusu kontrolnn Change olay ile ilikilendirilmitir. Bir nceki admda oluturduumuz OrnekForm u ya doruda istemci olarak alan uygulama iinde ya da baka bir nesne snf iinde snf ablonu olarak kullanabiliriz. 6)Project penceresinden OrnekEXE snf modln seiniz ve kod penceresini anz. Aadaki kod satrn snf modlne ekleyiniz. Option Explicit Private WithEvents fOrnekForm As OrnekForm Event SendThisText(ByVal MyText As String) Yukardaki kod satrn modlnn General/Declarations ksmna ekledikten sonra snf modlnn Object kutusuna an. WithEvents ifadesi ile tanmlanan fOrnekForm nesnesini grebilirisiniz. (ekil C.15) WithEvents ifadesi bu formun sahip olduu public(btn nesnelerin kullanabilecei) olaylarn kullanlmasn salar. Object kutusundan fOrnekForm u seecek olursanz procedure penceresinde bu nesnenin sahip olduu sadece SendThisText olay grlebilir. Halbuki formumuz birok olay ierir. (Click, MouseDown vb. gibi) Bunun sebebi SendThisText olaynn Event ifadesi ile public olarak tanmlanmasdr. Dierleri ise private olaydr ve baka nesneler tarafndan kullanlamazlar. Bu olaylarn dier nesneler tarafndan da kullanlmasn salamak iin ayn isim ile General/Declar ations ksmnda Event ifadesi ile tanmlanmaldr. ActiveX kontrol projesinde oluturduumuz kontrole Click olayn bu ekilde eklemitik Aadaki kod satrn giriniz. Pr ivate Sub fOrnekForm_SendThisText(ByVal MyText As String) RaiseEvent SendThisText(MyText) End Sub Public Sub FormGoster() fOrnekForm.Show End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Class_Initialize() Set fOrnekForm = New OrnekForm End Sub Pr ivate Sub Class_Terminate() Unload fOrnekForm Set fOrnekForm = Nothing End Sub 7)File\Save Project men komutu ile projeyi ve bileenlerini aadaki gibi isimler ile saklaynz ve F5 tuu ile altrnz. Form Ornek_Form *.frm Snf modl OrnekActiveXEXE_Sinifi *.cls Proje OrnekActiveXEXE_Projesi *.vbp 8)Windows95 in Start butonu veya Explorer kullanarak Visual Basic i ikinci kez altrnz ve Standart EXE projesi oluturunuz. Project\References men komutu ile References diyalog penceresini anz rnek ActiveX EXE Projesi ni Refer ences diyalog penceresinde gremiyorsanz ActiveX EXE projesinin alp almadn kontrol ediniz.

VISUAL BASIC LE YAZILIM GELTRME ekil C.15 References diyalog penceresinde ActiveX EXE projesinin seilmesi 9)Form zerine bir komut butonu yerletirdikten sonra formun kod penceresin anz ve aadaki kod satrn formun General/Declar ations ksmna ekleyiniz. Option Explicit Pr ivate WithEvents cOrnekEXE As OrnekEXE Bu satrlar ekledikten sonra formun Object kutusundan cOrnekEXE nesnesini seiniz ve SendThisText olay prosedrne aadaki satr giriniz. Pr ivate Sub cOrnekEXE_SendThisText(ByVal MyText As String) Command1.Caption = MyText End Sub

VISUAL BASIC LE YAZILIM GELTRME Aadaki kodu da butonu tklayarak butona ekleyiniz. Pr ivate Sub Command1_Click() Set cOrnekEXE = New OrnekEXE cOrnekEXE.FormGoster End Sub F5 tuu ile test amal oluturmu olduumuz projeyi altrn ve Command kontrol butonuna tklaynz. Bu ilem test amal projede yarattmz cOrnekEXE nesnesinin FormGoster metodunu altrr. FormGoster metodu da ActiveX EXE projemizde snf modl iinde oluturduumuz fOrnekForm u Show metodu ile grntleyecektir. Metin kutusu kontrolnde yazl olan her karakter SendThisText olayn retir. Bu da istemci olarak alan uygulamada oluturulan cOrnekEXE nesnesi tarafndan grlr ve butonun Caption zelliine yeni girilen metin(text) deeri atanr. ekil C.16 Test amal projenin altrlmas Nesne gz atcsn kullanarak OrnekEXE nesnesini inceleyebilirsiniz. Nesne gz atcs penceresinde Project\Library kutusundan OrnekActiveXEXE yi sein

VISUAL BASIC LE YAZILIM GELTRME ekil C.17 - Nesne gzatcs ile OrnekEXE nesnesini incelemek

VISUAL BASIC LE YAZILIM GELTRME BLM 35 VISUAL BASIC 6.0 DA DHTML UYGULAMALARI

VISUAL BASIC LE YAZILIM GELTRME DHTML UYGULAMALARI Visual Basic 6.0 ile birlikte gelen internet ile ilgili yeni deiikliklerden biri de DHTML uygulamalardr. Dynamic HTML alk olduumuz srada HTML sayfalarnn zerinde dinamik olarak deiiklikler yapmak iin kullanlabilecek bir dizi yenilikleri iinde barndran HTML sayfalarna verilen isimdir. Bu deiiklikler sayfa yklenmeden nce yaplabilecei gibi kullancnn sayfa zerindeki hareketlerine gre sayfa yklendikten sonra da gerekletirilebilir. Bir DHTML uygulamas ise iki unsuru barndrr. DHTML sayfalarn ve kullanc ile etkileimli tarayc(browser) tabanl uygulama iindeki Visual Basic kodlarn ierir. Bir internet uygulamasnn en genel olarak iki ayr paras vardr. Bunlar kullanc taraf ve server(sunumcu) tarafdr. Kullancnn makinesinde alan tarayc, adresi belirtilen sunucuya balanr ve oradaki sayfalar kendi makinesine indirir daha sonra da kullancnn makinesindeki tarayc bu sayfalar altrr. altrr diyoruz nk artk DHTML uygulamalar ile tarayc bu sayfalar grmekle kalmyor ayn zamanda bu sayfalarla ilikilendirilen Visual Basic kodlarn da altryor. DHTML uygulamalar bu ilikinin sadece kullanc taraf ile ilgilenmekte ve kullancnn taraycda gerekletirdii eylemlere(mouse hareketleri gibi) ya da taraycnn oluturduu olaylara(bir resim veya sayfa yklemek gibi) karlk retir. En genel olarak bir DHTML uygulamas ile yapabileceklerinizi u ekilde zetleyebiliriz. 1)HTML sayfalarndaki bilgileri edinmek ve bunlar bir veritabann sorgulamak iin kullanmak. 2)HTML sayfasnn grnmn ve davranlarn dzenlemek. 3)Kullancnn isteklerini karlamak iin yeni HTML elemanlarn oluturmak ve bunu HTML sayfasna ilave etmek. DHTML uygulamas CGI gibi veya JavaScript gibi dier internet uygulamalarnn yapt iin bir benzerini Visual Basic kodu kul anarak gerekletirir ve bu ilemin ounu kullancnn makinesinde stlenir. Ksaca nternet Explorer 4.x zerinde ilem gren ve kullanc ile ve de Web sayfalar ile etkileimli olarak alan 4.x ile gelen bu teknolojiyi DHTML uygulamas olarak isimlendirebiliriz.

VISUAL BASIC LE YAZILIM GELTRME RNEK BR DHTML UYGULAMASI Yeni bir proje balatmak iin File\New Project men seeneini kullannz. Aadaki ekran gelecektir: 1)Yukardaki ekranda da grld gibi yeni bir proje balatmak iin Visual Basic 6.0 ok eitli alternatifler sunmutur. Bunlarn iinde DHTML Application alternatifini seerek OK butonuna tklaynz. Bu ilemden sonra Visual Basic tasarm ortam aadaki gibi olacaktr:

VISUAL BASIC LE YAZILIM GELTRME Bir DHTML uygulamas ilk defa balatldnda Visual Basic bu yeni projeye bir modl ve bir DHTML sayfas ekler. Eklenen modl daha nce de grdmz uzants bas olan dosyadr. lk bakta hemen fark edilecek olan deiiklik ise Standart EXE uygulamalarnn en belirgin nesnesi olan formun bulunmaydr. te bu proje seenei ile formlarn yerini DHTML sayfalar almtr. nk uygulamamz ok fakl bir platformda altrlmak zere tasarlanmtr. DHTML sayfalarn projede iki fakl ekilde oluturabiliriz. Bunlardan ilki bu sayfalar aadaki DHTML sayfasnn st ksmnda bulunan ara ubuundaki veya ekrann sol tarafnda gzken ara kutusundaki butonlar kullanarak. oluturmaktr. Fakat hemen belirtmek gerekir ki bu pencereyi kullanarak istediimiz trde gelikin bir sayfa oluturmak pek mmkn deildir. Bu yzden ou kez imdi DHTML sayfas olarak kullanlacak sayfalar baka bir ortamda herhangi bir HTML editr ile(rnein FrontPage gibi) oluturup projeye sonradan ilave edilirler. HTML dokmanlar aslnda birer metin dosyalardr ve bu dokmanlar oluturmak HTML bilgisi gerektirir. Bizim buradaki amacmz HTML renmek deil DHTML

VISUAL BASIC LE YAZILIM GELTRME Uygulamalarnn Visual Basic ile nasl oluturulduunu aklamak olacaktr. Fakat yinede uygulama iinde geen HTML terimlerini sras geldiinde aklamaya alacaz. Yukardaki DHTML sayfalar zerinde u anda bo gzken iki panel bulunmaktadr. Bunlardan soldaki, sayfada kullanlan elemanlar bir aa yaps iinde gsterir dierleri ise sayfann taraycdaki durumunu grntler. 2) DHTML sayfasna aadaki gibi RNEK DHTML SAYFASI yazn. 3)Project\ DHTML Project Properties men seeneine tklaynz. Aadaki zellikler penceresi gelecektir. Bu pencerede aadaki grlen deiiklikleri yapnz.

VISUAL BASIC LE YAZILIM GELTRME Aslnda DHTML uygulamalar birer ActiveX DLL uygulamalardr. nk sayfa ile ilikilendirilen ve proje derlendikten sonra oluturulan bu DLL iine alk olduumuz normal bir HTML sayfasn Dinamik HTML sayfasna dntrecek kodlar, prosedrler ve fonksiyonlar vardr. Sayfa aktif olduu srece bu DLL srekli olarak alr. 4-)File\Save Project men seenei ile bu yeni baladmz uygulamay aadaki isimler ile saklaynz. DHTML Sayfas IlkDHTMLSayfam *.dsr Proje Dosyas IlkDHTMLProjem *.vbp 5-)F5 tuu ile projeyi altrnz ve hemen ardndan gelen ekran OK butonu ile geiniz. DHTML sayfamz Internet Explorer zerinde aadaki gibi gzlenecektir.

VISUAL BASIC LE YAZILIM GELTRME Bu hali ile sradan bir HTML den fark olmayan sayfamza sonraki admlarda ekleyecek olduumuz yeni elemanlar ve Visual Basic kodlar ile dinamik bir ierik kazandrm olacaz 6-)DHTML sayfasnda Document zerine tklaynz ve F4 tuu ile zellikler penceresini anz. Aadaki ekranda da grld gibi koyu yaz tipi ile grlen DHTML Page1 i seiniz ve DHTML dkmann adn IlkDHTMLDokumanim olarak deitiriniz.

VISUAL BASIC LE YAZILIM GELTRME Daha sonra zellikler penceresinden HTMLDocument i seiniz. Yukardaki ekranda grlebilecei gibi bo bir DHTML sayfasnda bile buluna baz temel nesneler vardr. Bunlar sayfamz iindeki btn elemanlar ile tanmlayan ve adn yukarda deitirdiimiz IDHTMLPageDesigner , HTMLDocument, DispIHTMLTitleElement ve DispIHTMLBodyElement tir. HTMLDocument seeneini seiniz ve bgColor satrn #C0C0C0 olarak aadaki gibi deitiriniz

VISUAL BASIC LE YAZILIM GELTRME bgColor zellii dkmann zemin rengini belirler. Ayn zellii DispHtmlBodyElement de bulmanz mmkn. Bu iki zellik birbirinin ayndr ve birinde yaptmz deiiklik dierini de deitirir. Bu ilemden sonra sayfamz tasarm ortamndaki grn aadaki gibi olacaktr. HTML sayfalar hazrlanrken en ok ihtiya duyacanz renklerden birkann bu dildeki karlklar aadaki gibidir. #800000 Koyu Krmz #00FF00 Yeil #008000 Koyu Yeil #0000FF Mavi #808000 Koyu Sar #FFFF00 Krmz #800080 Koyu Magenta #FF00FF Magenta #008080 Koyu Cyan #00FFFF Cyan #C0C0C0 Ak Gri #C0DCC0 Orta Derecede Yeil #A6CAF0 Ak Mavi #FFFBF0 Krem #A0A0A4 Orta Derecede Gri #808080 Koyu Gri #FF0000 Krmz

VISUAL BASIC LE YAZILIM GELTRME DIV ve SPAN TAG LARI DIV ve SPAN taglar HTML sayfalar olutururken kullanabileceiniz rgtsel amal taglardr. HTML sayfas zerinde bir blge tanmlarlar. DIV, taglardan oluan bir grubu bir arada ierir. Bir ID belirterek bu DIV tagna dolaysyla DIV tagnn ierdii btn taglara DHTML veya Basic kodu iinden eriebilmemiz mmkndr. DIV tag genellikle bir ok balk ve paragraf elemanna tek bir elden biim vermek iin kullanlr. Bylelikle ID tanmladmz bir tagn biiminde(renk,yaz biimi,hizalama vb) yapacanz bir ayarlama DIV ile tanmlanan blge iindeki btn taglara uygulanacaktr. Dkmannza yeni bir DIV eklediinizde ayn zamanda bir paragrafta eklenir. Bu sebeple paragraf iinde DIV tag kullanlmaz. SPAN tag ise DIV e benzer fakat DIV den farkl olarak dkmann biiminde bir etkisi yoktur. Daha ok paragraf iinde kullanlrlar ve metin gruplarna DHTML veya Visual Basic iinde referans yapabilmek iin kullanlrlar. Bir DIV veya SPAN oluturmak iin DHTML sayfa tasarm penceresi alr. stenen ksm mouse ile boyanarak sayfann st ksmnda bulunan Wrap Selection in < DIV>..< DIV> ve Wrap Selection in < SPAN >..< SPAN > aklamal ara ubuu butonlar kullanlr. imdi sayfamz kaldmz yerden oluturmaya devam edebiliriz. 8-)Sayfa zerinde RNEK yazsn aadaki gibi boyayarak SPAN eklemek iin kullanlan butona tklaynz.

VISUAL BASIC LE YAZILIM GELTRME Bu ilemden sonra sayfamzn tasarm penceresindeki SPAN eleman aadaki gibi grlebilir. Fakat SPAN ile belirlediimiz metin parasn Visual Basic iinden kullanabilmemiz iin bir ID tanmlamamz gerekir. Bunun iin sayfa tasarm penceresindeki SPAN elemann seip F4 tuu ile zellikler penceresini anz. zellikler penceresinde ID satrna yukardaki ekranda da grld gibi ornek yaznz. Metnin deer kelimeleri DHTML ve SAYFASI kelimeleri

VISUAL BASIC LE YAZILIM GELTRME iinde yukarda rendiimiz ekliyle birer SPAN tanmlayp ID lerini sras ile dhtml ve sayfasi olarak belirleyiniz. Tasarm penceresinin son haliyle grn aadaki gibidir. 9-)Artk bu elemanlara form zerine yerletirdiimiz birer nesne gibi eriim yapabiliriz. Aadaki kodlarla amacmz sayfa yklenirken bu elemanlarn renklerinin ve fontlarnn ayarlamas olacaktr. Bu ilem iin DHTML in kod penceresini anz ve aadaki kod satrnz giriniz. Pr ivate Sub BaseWindow_onload() ornek.Style.Color = "red" ornek.Style.FontSize = 20 ornek.Style.fontWeight = "bold" dhtml.Style.Color = "green" dhtml.Style.FontSize = 24 dhtml.Style.fontWeight = "bold" sayfasi.Style.Color = "blue" sayfasi.Style.FontSize = 20 sayfasi.Style.fontWeight = "bold" Set objOut = dhtml End Sub BaseWindow un onload olay standart exe projelerinde alk olduumuz formlarn load olayna karlk gelir. Yukarda da grlebilecei gibi SPAN olarak ayrdmz metinlere ID lerini vererek kolayca eriim yapabiliyoruz. Style l kullanarak bu metnini biimini istediimiz gibi deitirmemiz mmkndr. Yukarda renkler iin ingilizcedeki karlklar kullanlmtr fakat HTML dilindeki say sabitleri de ayn ii grr.

VISUAL BASIC LE YAZILIM GELTRME F5 tuu ile veya Run\Start men komutu ile projeyi altrnz. DHTML sayfamz aadaki gibi grnecektir. 10-)Yukardaki grnm elde etmek iin aslnda Visual Basic kodu kullanmaya gereksinimiz yoktur. DHTML tasarm ekran veya sayfasnn HTML kodu kullanarak da ayn deiiklikleri yapabilirdik. Fakat bu ekilde ID tanmlamamz bir DHTML elemann nasl kullanabileceimizi grm olduk. imdi ise projemize DHTML olmakszn yapamayacamz yeni bir deiiklik ekleyelim. Bunun iin sayfann kod penceresini anz ve aadaki V,sual Basic kodunu giriniz. Pr ivate objOut As HTMLSpanElement Public Sub YazibiciminiDegistir (objIn As HTMLSpanElement) Dim renkInSpan As String Dim renkOutSpan As String renkInSpan = objIn.Style.Color renkOutSpan = objOut.Style.Color

VISUAL BASIC LE YAZILIM GELTRME objIn.Style.FontSize = 25 objIn.Style.Color = renkOutSpan objOut.Style.FontSize = 20 objOut.Style.Color = renkInSpan End Sub Pr ivate Sub dhtml_onmouseout() Set objOut = dhtml End Sub Pr ivate Sub dhtml_onmouseover () Call YazibiciminiDegistir(dhtml) End Sub Pr ivate Sub ornek_onmouseout() Set objOut = ornek End Sub Pr ivate Sub ornek_onmouseover () Call YazibiciminiDegistir(ornek) End Sub Pr ivate Sub sayfasi_onmouseout() Set objOut = sayfasi End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub sayfasi_onmouseover () Call YazibiciminiDegistir(sayfasi) End Sub 11-) Projeyi F5 veya Run\Start ile altrnz. Mouse u metnini zerinde gezdiriniz. Mouse un zerinde olduu metnin yaz bykl artarken rengi de daha nce byk yaz biiminde olan metnin rengini almaktadr. Bunu farenin imlecini btn metin stnde gezdirerek gzlemleyebilirsiniz. Fare metin stnde dolatka sayfann grnm de bu hareketle birlikte dinamik olarak deiecektir. Yukardaki ekranda DHTML yazsnn fontunun bykl grlmekte. Halbuki sayfa yklendiinde soldaki RNEK yazsnn fontu bykt ve rengi yeildi. imdi sadece aadaki prosedrde koyu yaz biimi ile gsterilen ilaveleri yaparak SPAN elemanlarnn yaz biimi ile birlikte metinlerini de deitiini gzlemleyebilirsiniz.

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub YazibiciminiDegistir (objIn As HTMLSpanElement) Dim renkInSpan As String Dim renkOutSpan As String Dim metinIn As Str ing Dim metinOut As Str ing renkInSpan = objIn.Style.Color renkOutSpan = objOut.Style.Color metinIn = objIn.innerText metinOut = objOut.innerText objIn.Style.FontSize = 25 objIn.Style.Color = renkOutSpan objOut.Style.FontSize = 20 objOut.Style.Color = renkInSpan objIn.innerText =metinOut objOut.innerText =metinIn End Sub Aadaki ekranda bu deiikliin sonucunu gzlemleyebilirsiniz. Bunun iin yine farenin imlecini kelimelerin stnde gezdirmeniz gerekecek.

VISUAL BASIC LE YAZILIM GELTRME Script olarak isimlendirdiimiz bu kodlar ile kullanc tarafnda yapabileceklerimizi u ekilde gruplandrabiliriz. 1) Metin kutusu(textbox), Liste kutusu (listbox), Kontrol kutusu(Checkbox) gibi Form elemanlarnn deerlerini istemciye(server) gndermeden nce kontrol etmek yanl bir giri varsa kullancy uyarmak ve bylece aradaki a ykn ve zaman kaybn azaltmak. 2) Baka bir sayfaya balanmak 3) Sayfa zerindeki elemanlar hareketlendirerek oklu ortam(multimedya) etkileri oluturmak vb. Btn bu sz edilen ilevleri yrtmek iin kullanc tarafnda zerinde srekli ilem yaptnz eitli nesneler mevcuttur. Bu nesneler ve aklamalar aada verilmitir.

VISUAL BASIC LE YAZILIM GELTRME window Tarayc(browser) ile ilgili bilgi almak, kullancya mesajlar gndermek ve bunlar grntlemek iin kullanlan bir tarayc nesnesidir. En sk olarak kullanlan onload ve onunload olaylar dokman yklendiinde DHTML ile ilgili balang ayarlamalarnn yaplmasna( veya sonlandrma) imkan tanr. document Document nesnesi de bir tarayc nesnesidir fakat Window dan farkl olarak belgenin rengi, zerindeki metinler, sayfann bal veya aktif belgenin URL si ile ilgili ilevleri grmek iin kullanlr. form Genellikle istemciye hazrlanan bir form erevesinde kullancdan alnan bilgilerin gnderilmesi iin kullanlan baka bir tarayc nesnesidir. Form elemanlarnn(metin kutusu, liste kutusu vb.) kullanld bir taycdr. Formlar submit trnde butonlar ierir ve bu butonlara basldnda formun action olaynda belirtilen istemciye bilgiler gnderilir. Bu gnderme ileminden nce DHTML ile bu bilgiler kontrol edilebilir. element Butonlar, metin kutular, kombine kutular veya liste kutular gibi form elemanlardr. Bu elemanlara tklandnda deerlerinde deime olduunda, fokusu yakaladklarnda veya braktklarnda bu olaylar yakalayan kodlar imdi Visual Basic 6.0 ile ok daha kolaylamtr. J ava Appletleri ve ActiveX kontrolleri Bu nesneler baka ortamlarda hazrlanm HTML sayfasna dahil edilen nesnelerdir ve kendilerine has metot ve zellikler ieririler. Bu nesneler sayfaya <APPLET> veya <OBJECT> bloklar ile eklenirler.

VISUAL BASIC LE YAZILIM GELTRME DHTML SAYFALARINDAK OLAY AKII Standart Visual Basic uygulamalarnda her nesnenin kendisine zel olay yakalaycs vardr. Biz bunlar olay prosedrleri olarak programlarmzda srekli olarak kullanmaktayz. DHTML de ise yap normal Visual Basic uygulamalarndan farkldr. DHTML zerindeki bir nesnede bir olay gerekletiinde bu olay aada gsterilen hiyerari iinde bir st nesneye gnderilir. Gerekleen bu olayn hiyerari iindeki yolculuu olay yakalaycsnn bu olay gndermesine kadar devam eder. Yukardaki ekilde bir DHTML uygulamasndaki HTML sayfasnn ksmlarn grebilirsiniz. En st seviyede Document nesnesi bulunmaktadr HTML sayfasn iermektedir. HTML sayfasna ise en st seviyede BODY eleman (TAG) bulunmaktadr. Daha sonra sras ile BODY iinde TABLE eleman ve TABLE iinde de HYPERLINK eleman bulunmaktadr. Bu yap kod yazarken byk kolaylk salar. rnein form eleman stndeki iki nesnenin deeri kontrol etmek istiyorsunuz. Bu neneler rnein kontrol kutular olabilir. ayet olay yakalamak iin yukardaki yap kullanlyor olmasayd. Bu kontrol ii her bir nesnenin kendi olay prosedrnde yaplmas gerekirdi. (Standart Visual Basic uygulamalarnda olduu gibi) Halbuki bu iki ayr kontrol prosedr

VISUAL BASIC LE YAZILIM GELTRME yerine ayn kontrol ilemi bir st seviyede bulunan formun iinde gerekletirilebilir. Gerekleen olayn hiyerarinin herhangi bir seviyede bulunan nesne tarafndan ilendikten sonra bir st nesneye aktarlmasn nlemek iin olay ileyen nesnenin cancelBuble zellii True yaplmaldr. Olay yakalamadaki bu farklla karn DHTML nesnelerindeki bir ok olay standart Visual basic nesnelerindeki olaylar ile ok benzerdir. DHTML deki btn olaylar on neki ile balar. rnein Visual Basic teki click olay DHTML de onclick, load olay onload eklindedir. DHTML olaylarn, standart Visual Basic ten bildiimiz ok ska kullandmz olaylar ile bir karlatrrsak bul olaylarn anlalmas ok daha kolay olacaktr. KLAVYE OLAYLAR DHTML ile standart Visual Basic arasnda klavye olaylarnda byk bir benzerlik vardr. Aadaki liste sras ile klavye olaylarnn nce Visual Basic teki edeerini daha sonra DHTML karln ve aklamasn listelemektedir. Visual Basic Olay DHTML Olay Aklamas keydown onkeydown Bir tua basldnda gerekleir. keypress onkeypress Klavyeden girilen tu bir karaktere dntrldnde gerekleir. keyup onkeyup Kullanc tutan elini ektiinde gerekleir. Bu klavye olaylar gerekletiinde DHTML deki olay nesnesinin keycode zellii ilgili tua karlk gelen unicode(her bir karakter iin iki bayt n kullanld karakter emas) karakterleri ierir. ALT, CTRL veya SHIFT tularna basldn anlamak iin altKey, ctrlKey ve shiftKey zellikleri kullanlabilir.

VISUAL BASIC LE YAZILIM GELTRME Mouse Olaylar Klavye olaylar gibi mouse olaylar da standart Visual Basic teki olaylarla hemen hemen ayndr. Visual Basic Olay DHTML Olay Aklamas click onclick Bir elemann stnde mouse a tklandnda veya buton gibi fokus ieren elemanlarda ENTER e basldnda gerekleir. doubleclick ondblclick Bir elemann stnde ift tklama yapldnda gerekleir. Visual Basic teki karl ile tamamen ayndr. mousedown, mouseup, mousemove onmouseout, onmousedown, onmouseup, onmousemove, onmouseover Sayfa stnde elmanlar arasnda mouse u gezdirdiinizde ilk olarak onmouseout olay gerekleir. Bylece mouse un imlecinin artk elemann stnde olmad belirtilmi olur. Mouse hareket ettii iinde onmousemove olay ve daha sonra onmouseover olay gerekleir. Bylece artk mouse un imlecinin yeni elemann stnde olduu ifade edilmi olur. Bir mouse olay gerekletiinde bunun iin hangi mouse butonun kullanldn buton zelliinden renebiliriz. x ve y zellikleri de olaylarn geekletii anda mouse un koordinatlarn belirler. onmouseover ve onmouseout zellikleri gerekletiinde mouse un hangi elemandan ayrlp hangi elemana getiini anlamak iin fromElement ve toElement zellikleri kullanlabilir.

VISUAL BASIC LE YAZILIM GELTRME Fokus ve Seme Olaylar Fokus ve seme olaylarnda Visual Basic teki karlklarna gre biraz deiiklik vardr. Fokus olaylar sadece baz elemanlarda gerekleirken seme ve srkleme olaylar bundan farkl gerekleir. Visual Basic Olay DHTML Olay Aklamas gotfocus onfocus Kullanc fokus alabilen bir eleman setiinde gerekleir. lostfocus onblur Kullanc fokus alabilen bir elemandan ayrldnda gerekleir. selchange onselectstart onselect Seme ii ilk kez gerekletiinde onselectstart olay oluur. rnein kullanc dokman stndeki bir karaktere veya nesneye tkladnda bu olay gerekleir. Onselect olay ise kullanc seme iini deitirdiinde gerekleir. rnein mouse un butonu basl iken mouse un imlecini dokmann stnde hareket ettirdiimizde bu olay gerekleir. dragdrop,dragover ondragstart Kullanc seilen ksm hareket ettirdiinde geekleir. Onblur ve onfocus olaylar sayfa iindeki elemanlar arasnda veya farme(ereve) lar arasnda veya hatta masa stndeki uygulamalar arasnda hareket edildiinde gerekleir. rnein fokus elemanndayken kullanc baka bir uygulamaya getiinde bu eleman iin onblur olay gerekleir. Kullanc tekrar sayfay setiinde ise onfocus olay gerekleir.

VISUAL BASIC LE YAZILIM GELTRME Visual Basic Olay DHTML Olay Aklamas change onchange Kullanc bir elemann stnde iken enter e bastnda veya deerinde bir deiiklik yapldnda gerekleir. Visual Basic te ise kontroln iinde gerekleen her eylemde change olay gerekleir. close -------- DHTML iinde bu olaya dorudan karlk olabilecek bir olay yoktur. error onerror Script ad verilen DHTML kodunun icras esnasnda veya bir eleman(rnein imaj gibi) yklenirken hata olutuunda bu olay gerekleir. initialize onready statechange Sayfa balang durumundan etkileime hazr duruma getiinde ve form etkileimli durumdan yklemi duruma getiinde gerekleir. Kullanc anacak sayfa etkileimli duruma getiinde sayfay kaydrma ubuklarn kullanarak kaydrabilir veya bir elemana veya bir kprye tklayabilir. Fakat bu esnada sayfa tamam ile yklenmi olmayabilir. Sayfa zerindeki btn elemanlarn ykleme ii bittiinde de artk sayfa

VISUAL BASIC LE YAZILIM GELTRME yklenmi duruma geer load onload Dokman yklenmi duruma getiinde gerekleir. paint ------- DHTML iinde bu olaya dorudan karlk olabilecek bir olay yoktur. resize onresize Dinamik HTML iin gerekleen onresize olay Visual Basic teki resize olay ile ayndr. Fakat HTML sayfalarnn boyutlandrlmas otomatik olarak geekletii iin Visual Basic teki gibi bu olay iin bir kod yazmaya gerek yoktur. scroll onscroll HTML sayfas veya iindeki herhangi bir eleman iin kaydrma kutusunun yeri deitiinde bu olay gerekleir. teminate ------- DHTML iinde bu olaya dorudan karlk olabilecek bir olay yoktur. Fakat benzeri ilemler iin onunload olay kullanlabilir. unload onunload Dokman iptal edilmeden hemen nce gerekleir. ( baka bir sayfaya geildiinde aktif dokman iptal edilerek yeni sayfann ierii dkmanda grntlenmeye balanr.

VISUAL BASIC LE YAZILIM GELTRME Sadece DHTML de Bulunan Olaylar DHTML de baz olaylar var ki bunlarn karlklarn Visual Basic te bulmak mmkn deildir. Bunlardan bir ka aadaki listedeki gibidir. DHTML Olay Aklamas onabort Kullanc bir resim veya herhangi bir sayfa elemannn yklenmesini durdurmak iin stop butonuna tkladnda gerekleir. onreset Kullanc form zerindeki reset butonuna tkladnda gerekleir. onsubmit Kullanc form zerindeki submit butonuna bastnda gerekleir. Bu olay prosedr kullanlarak form zerindeki verilerin istemciye gnderilmeden nce kontrol edilmesi salanr.

VISUAL BASIC LE YAZILIM GELTRME BLM 37 VISUAL BASIC PROJELERNN TAINABLR HALE GETRLMES (Package & Deployment Winzard)

VISUAL BASIC LE YAZILIM GELTRME VISUAL BASIC 6.0 PROJELERNN TAINABLR HALE GETRLMES Visual Basic 6.0 projelerini tanr hale getirmek iin Package & Deployment Winzard kullanlr. Bu sihirbaz altrmak iin Windows un Balat butonunu aadaki gibi kullanabilirsiniz. Aadaki giri ekran gelecektir. Visual Basic in bu srm ile bir uygulamann tanabilir hakle getirilmesi ya Visual basic 5.0 ve daha nceki srmlerinden alk olduumuz bir setup (kurulum) programn oluturularak gerekli dosyalar ieren bir paketin hazrlanmas veya hazrlanan bu paketin ( ayet bir internet uygulamas ise) daha sonradan istenen bir internet sunucusuna gnderilmesini ierir. Aadaki ekran , tanabilir hale getirmek istediiniz ve setup program oluturmak istediiniz Visual Basic proje dosyasn seme imkan salar. Bir uygulamay tanabilir hale getirmeden nce onu Visual Basic iinde Exe programlar gibi altrlabilir hale dntrmelisiniz.

VISUAL BASIC LE YAZILIM GELTRME Package butonu ile az nce de deindiimiz gibi uygulamamz bir setup.exe gibi kurulum program veya Internet cab dosyalar olacak ekilde bir paket haline getirmek iin kullanlr. Deploy butonu ise Package butonu ile oluturulan bu paketin istenen blgeye rnein floppy disketlere, her hangi bir a zerine veya lokal bir dizine ya da herhangi bir Intenet sunucusuna gnderilmesini salar. Manage Scr ipts butonu ise hazrlanan bu paket stnde deiiklik yapma imkan salayacak bir ileti kutusu aar. Browse butonunu kullanarak tanabilir hale getirmek istediimiz uygulamay seiniz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki seme ileminden sonra A butonu ile bir nceki ekrana dnnz ve Package butonu ilemini balatnz. Winzard program ilemin devam iin gerekli dosyalarn kopyalanmasn balatr. Bu ilemin ardndan aadaki ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME Winzard bu ekranda daha nceki varsa hazrlanm Packaging Script lerden herhangi birini semenize imkan tanr. Bu Script dosyalar hazrlanm kurulum paketleri ile ilgili bilgileri ierir. Ayn paket ikinci veya nc kez oluturulacak ise bu scriptler sayesinde ilem ilk defa oluturulduundan ok daha hzl geekletirilebilir. Biz bu kurulum ilemini ilk kez gerekletirdiimiz iin None alternatifi seili durumdadr. Next ile bir sonraki ekrana geeriz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda paket haline getirilecek kurulum dosyalarnn trne karar verilir. Setup.exe iin Standart Setup Package seili olarak gelecektir. Fakat biz bu ilemle uygulamamzda kullandmz ve uygulamamzn almas iin zorunlu bileenlerin bir listesini edinmek istiyorsak Dependency File seeneini semeliyiz. Standart Setup Package seeneini iaretledikten sonra Next Butonu ile bir sonraki ekrana geeriz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda hazrlanacak paket iin bir dizin seilir veya yeni bir dizin oluturulur. Bu dizin bir a zerinde ise bu defa Network butonu seilerek istenen dizine ulalr. Bu seme ileminden sonra Next ile bir sonraki ekrana geiniz. Bu admda ise uygulamamzn kullanmakta olduu DLL,OCX ve EXE dosyalarnn bir listesi gelecektir. Ayrca bunlara yenilerini eklemek isterseniz Add butonunu kullanabilirsiniz. Next ile bir sonraki ekrana geiniz.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda kurulum dosyalarnn nasl hazrlanacana karar verilir. Bu seim ya tek bir cab eklinde veya disketler halinde olabilir.

VISUAL BASIC LE YAZILIM GELTRME Yukardaki ekranda kurulum ilemi srasnda ekranda belirecek balk belirtilir. Next butonu ile gelen bir sonraki ekran ise uygulamamzn Programlar grubundaki yolu tanmlanr.

VISUAL BASIC LE YAZILIM GELTRME Yukarda ise belirtilen dosyalarn kurulum ileminden sonra nerede bulunaca belirtilir. $(AppPath) ifadesi sizin uygulamanzn bulunduu dizini ifade eder. Bu dizinin altnda herhangi bir dizin belirtmek iin yukardaki ekranda gzken gridin Install Location stununda bunu $(AppPath)\Yeni_Dizin_Adi eklinde belirtebilirsiniz. Next ile bir sonraki ekrana geiniz. Yukardaki ekranda ise varsa share edilecek dosyalar belirtilir. Btn bu tanmlamalarnz ierecek script in adn belirttikten sonra Finish butonu ile sihirbaz kaptnz ve kurulum dosyalarnn oluturulmasn balatnz.

VISUAL BASIC LE YAZILIM GELTRME lem bittikten sonra yaplanlar ile ilgili bir rapor ekran alr ve ardndan balang ekranna dnlr. Artk dosyalarn tanabilir hale getirilmesi iin ikinci adma geilebilir.

VISUAL BASIC LE YAZILIM GELTRME Bu ekranda bu defa Deploy butonunu seiniz.

VISUAL BASIC LE YAZILIM GELTRME Listede bir nceki admda oluturduumuz script in ad seili olarak gelir. Baka bir paketleme ileminin script i seilecek olursa ona ait ilem yaplacaktr. Next ile bir sonraki ekrana geiniz. Bu admda kurulum dosyalarnn hangi ortamda bulunacana karar verilir. Bu dosyalar lokal veya a ( network) zerindeki bir dizinde veya Web sunucusu zerinde oluturabilirsiniz. Next ile bir sonraki adma geiniz.

VISUAL BASIC LE YAZILIM GELTRME Yukarda ise bu dosyalarn yeri belirtilir. Bu bir nceki admdaki terciinize gre floppy veya dizin olabilir. rneimizde bu dosyalar mySetupDeploy adnda bir dizinde oluturulacaktr. Next ile bir sonraki ekrana geiniz.

VISUAL BASIC LE YAZILIM GELTRME Bir nceki adma benzer ekilde bu ilemde yaptmz tanmlamalarda bir script dosyasna kaydedilir. Visual basic bu dosyaya kendisi bir isim verecektir. sterseniz bu ismi deitirebilirsiniz. Finish butonu ile sihirbaz kapatnz. Yeniden ilk ekrana dnlr. Bu ekranda Close butonu ile sihirbaz kapatabilirsiniz. Hazrlanan setup program altrlacak olursa aadaki ilk ekran gelecektir.

VISUAL BASIC LE YAZILIM GELTRME BLM 38 RNEK PROJE

VISUAL BASIC LE YAZILIM GELTRME ADRES PROGRAMININ GELTRLMES Yeni bir proje aalm ve bu dosyay adr estel.vbp olarak kaydedelim Projeye drt adet adlar srala About.frm , frmLogin.frm , frmMain.frm ve frmOptions.frm olan form ekleyelim. ki adet te adlar modCipher.bas ve modType.bas olan modl ekleyelim. imdi sra geldi bu formlar ve modlleri doldurmaya: lk olarak About.frm u hazrlyoruz. Formdaki Elemanlar cmdOK CommandButton frmAbout Form imgAr iad Image Label1 Label IblApp Label IblCopy Label IblWeb(0) Label IblWeb(1) Label IneHigh(0) Line IneShad(0) Line IneShad(1) Line shpAbout(0) Shape shpAbout(1) Shape About.frm adl form About.frm adl formumuzu yukardaki ekilde grld gibi hazrlayp formun kodu olarak aadaki kodu yazalm:

VISUAL BASIC LE YAZILIM GELTRME Option Explicit DefInt A-Z Pr ivate Declar e Function GetTickCount Lib "kernel32.dll" () As Long Pr ivate Declar e Function ShellExecute& Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) Pr ivate Sub cmdOK_Click() Unload Me End Sub Pr ivate Sub Form_Activate() Screen.MousePointer = 0 End Sub Pr ivate Sub form_load() Dim Comment$ Dim lngTickCount As Long Dim HTime As Long lngTickCount = GetTickCount HTime = lngTickCount / 1000 / 60 Label1.Caption = "Windows " & Left(HTime, 5) & " dakikadr alyor." On Error Resume Next Set Icon = Nothing lblApp = App.Title & " " & App.Major & "." & App.Minor If App.Revision Then lblApp = lblApp & " (Build " & Format$(App.Revision, "000)") End If Comment$ = App.Comments If Len(Comment$) Then Comment$ = Comment$ & vbCr & vbCr lblCopy = Comment$ & App.LegalCopyright & vbCr & vbCr & App.LegalTrademarks On Error GoTo 0 End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub lblWeb_Click(Index As Integer ) Dim Ret As Long Dim Cmnd$ On Error Resume Next Cmnd$ = lblWeb(Index).Tag Ret = ShellExecute(hwnd, "open", Cmnd$, "", "", 5) If Err Then MsgBox Error$ & " (" & Err & ")", vbCritical, "nternete ulalamyor" ElseIf Ret <= 32 Then MsgBox "(" & Ret & ")" & " sayfasn aarken hata olutu!", vbCritical, "Web hatas" End If On Error GoTo 0 End Sub imdi sra geldi frmLogin.frm unu hazrlamaya Formdaki Elemanlar cmdCancel (CommandButton) cmdOk (CommandButton) fakeCancel (CommandButton) fakeOK (CommandButton) frmLogin (Form) Image1 (Image) Image2 (Image) Label1 (Label) Texbox1 (TextBox) frmLogin.frm un grnts frmLogin.frm adl formumuzu yukardaki ekilde grld gibi hazrlayp formun kodu olarak aadaki kodu yazalm:

VISUAL BASIC LE YAZILIM GELTRME Dim Password As String Pr ivate Sub Form_Activate() Text1.SetFocus End Sub Pr ivate Sub form_load() Password = GetSetting(App.Title, "Options", "Password") Password = Decrypt(Password, "1234567890") End Sub Pr ivate Sub fakeCancel_Click() Call cmdCancel_Click End Sub Pr ivate Sub fakeOK_Click() Call cmdOK_Click End Sub Pr ivate Sub cmdCancel_Click() End End Sub Pr ivate Sub cmdOK_Click() If Text1.Text = Password Then frmMain.Visible = True Unload Me Else MsgBox "zgnm! Hatal parola. Tekrar deneyin.", vbCritical, "Keep It 1.5" End If End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub Text1_Change() If Text1.Text = Password Then Image2.Visible = True Else Image2.Visible = False End If End Sub imdi sra geldi bu formlar ve modlleri doldurmaya: lk olarak frmMain.frm u hazrlyoruz. Formdaki Elemanlar CD1 (CommonDialog) CD2 (CommonDialog) cmdNext (CommadButton) cmdPr evious (CommadButton) Fr ame1 (Frame) Fr ame2 (Frame) Fr ameInfo (Frame) Fr ameNote (Frame) frmMain (Form) ImageList1 (ImageList) Label1 (Label) Label2 (Label) Label3 (Label) Label4 (Label) Label5 (Label) mnuAbout (Menu) mnuAdd (Menu) mnuDelete (Menu) mnuExit (Menu) mnuExpor t (Menu) mnuFile (Menu) mnuHelp (Menu) mnuMail (Menu) mnuNew (Menu) mnuNext (Menu) mnuOpen (Menu) mnuOptions (Menu) mnuPr evions (Menu)

VISUAL BASIC LE YAZILIM GELTRME mnuPr int (Menu) mnuProtect (Menu) mnuRecords (Menu) mnuSave (Menu) mnuSear ch (Menu) mnusep2 (Menu) mnuTools (Menu) mnuUnprotect (Menu) r tbNotlar (TextBox) sep1 (Menu) sep11 (Menu) sep15 (Menu) sep2 (Menu) sep4 (Menu) sep5 (Menu) sep9 (Menu) Status (StatusBar) Tab1 (TabSrip) tmrSave (Timer) Tool (Toolbar) txtAd (TextBox) txtAdr es (TextBox) txtEmail (TextBox) txtTel (TextBox)

VISUAL BASIC LE YAZILIM GELTRME frmMain.frm un grnts Men grntleri Dosya Mens Kaytlar Mens

VISUAL BASIC LE YAZILIM GELTRME Aralar mens Yardm mens frmMain.frm adl formumuzu yukardaki ekilde grld gibi hazrlayp formun kodu olarak aadaki kodu yazalm: Option Explicit 'modMain.bas iinde dbKayit_Bilgisi adl deiken Type ... End Type 'yolu ile deklere edilmiti. Ancak o haliyle (yani dbKayit_Bilgisi) 'programn kullanmas mmkn deil. Yeni bir deiken tanmlanmas gerekir 'Bu deiken Dim ... As dbKayit_Bilgisi olarak tanmlanacak ve 'dbKayit_Bilgisi'nun yapsna sahip olacaktr. Bu ilem unun iin gereklidir: '1. Bu ekilde dosya okuma ve yazma buffer deeri belirlenmi olur (1220 byte) '2. Rastgele eriimli dosyalarda (Random Access) yazlacak alan uzunluu ve ' alann yaps belirlenmitir. (yani nce ad[40 karakter]+adres[100 karakter] vs... Dim dbKayit As dbKayit_Bilgisi Dim FreeDosya_Numarasi As Integer Dim dbKayit_Uzunlugu As Long Dim AktifKayit As Long Dim dbSonKayit As Long Dim AktifDosya As String Dim Dosya_Adi As String Dim Kaydedildi As Boolean Dim Degisti As Boolean Private Const HH_DISPLAY_TOC = &H1 'Email programnn altrlmas iin: Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Public Function FormCaption_Guncelle() As String

VISUAL BASIC LE YAZILIM GELTRME 'Ana formun caption'una alan dosyann adn yazar 'Bu i iin commondialog'dan gelen FileName deikeni 'Dosya_Adi adl deiken iine kopyalanmaktadr. Ancak 'bu dosya ad, C:\Windows\desktop\hakan.dat gibi uzun 'yolu gsterir. Bu fonksiyon sadece dosya adn bu uzun 'dosya adndan karr. Aadaki kodu inceleyin.. Dim dosya As String Dim i As Integer For i = 1 To Len(Dosya_Adi) 'Uzun dosya adnn sonundan (yani sa taraftan) okumaya balar 'nce 1 karakter okur. nk For ... next dngsnde balang kontr '1 idi. Bu okuma "t" harfini ortaya karr. Bir sonraki okumada '2 karakter okunur. Bu okuma "at" harflerini artaya karr. Kontr burada i integer deikeni 'Tabi unutmaynz ki bu okuma ilemi Len(Dosya_Adi) (dosyann karakter uzunluu) 'kadar srecektir... taa ki ilk "\" karakterine ulalana dek... dosya = Right((Dosya_Adi), i) '"\" karakterine ulalnca (ki bunu da "If left" ile balayan satr ile kontrol ediyoruz) 'O zaman bir alt satrda dosya'nn bu okumalar sonucu oluturulan string'in 'ikinci karakterinden itabaren olan string olduunu belirliyoruz. Bunun iin Mid 'fonksiyonu kullanlyor... Daha sonra artk "\" karakterine ulatmza gre 'dng den kabiliriz... If Left(dosya, 1) = "\" Then dosya = Mid(dosya, 2) Exit For End If Next 'Fonksiyonun deerini bulduumuz string'e eliyoruz. Bylece fonksiyon altktan 'sonra dn deeri olarak sadece dosya adn veriyor. 'Bu fonksiyonu uzun dosya adlarndan sadece dosya adn karmak iin kullanabilrsiniz.

VISUAL BASIC LE YAZILIM GELTRME FormCaption_Guncelle = dosya End Function Public Sub AktifKaydiKaydet() On Error Resume Next 'Yazma buffer'na text kutularndan bilgi alnyor. 'Dosyaya yazma ilemi yaplmadan nce dbKayit'in tm elemenlarna 'bilgiler aktarlyor. Bu bilgiler textbox'larn text zellikleridir. dbKayit.Notlar = rtbNotlar.Text dbKayit.Ad = txtAd.Text dbKayit.Adres = txtAdres.Text dbKayit.Tel = txtTel.Text dbKayit.Email = txtEmail.Text 'Daha sonra btn elemanlar zerine yklenmi olan dbKayt 'FreeDosya_Numaras ile alm olan dosyaya AktifKayit'nc (belki 5.inci, belki 155.inci) 'kayt olarak yazlyor.. Standart budur dikkat edin: 'PUT [hangi_dosyaya] , [kanc_kayt_olarak] , [neyi_kaydedeyim] Put #FreeDosya_Numarasi, AktifKayit, dbKayit End Sub Public Sub AktifKaydiGoster() 'Get ve Put dosyadan okur ve yazar. Sentaks'lar ayn dikkat edin. (Sentaks = sz dizimi) 'GET [hangi_dosyadan] , [kanc_kayt_olarak] , [neyi_okuyaym] Get #FreeDosya_Numarasi, AktifKayit, dbKayit 'dbKayit'i okuduk. Bunun iinde Ad,Adres, Tel vs tm alanlar vardr. mdi 'bu alanlar kullancnn grmesi iin textbox'lara yazalm 'Burada Trim kullandm. Sada solda fazladan bo karakterler varsa sildim. rtbNotlar.Text = Trim(dbKayit.Notlar) txtAd.Text = Trim(dbKayit.Ad) txtAdres.Text = Trim(dbKayit.Adres) txtTel.Text = Trim(dbKayit.Tel) txtEmail.Text = Trim(dbKayit.Email) 'Satatusbar gncelliyoruz:

VISUAL BASIC LE YAZILIM GELTRME Status.Panels.Item(1).Text = "Kayt Sras: " & Str(AktifKayit) & " / " & Str(dbSonKayit) End Sub Pr ivate Sub cmdNext_Click() Call mnuNext_Click End Sub Pr ivate Sub cmdPr evious_Click() Call mnuPrevious_Click End Sub Pr ivate Sub Form_Unload(Cancel As Integer ) If txtAd.BackColor <> vbWhite Then End Else 'Formu kapatmadan nce , yani program, kullancy uyarmalyz On Error Resume Next If Kaydedildi = False Then Dim i i = MsgBox("Deiiklikleri kaydetmek istiyor musunuz ?", vbInformation + vbYesNoCancel, "AdresTel 1.5") If i = vbYes Then Call mnuSave_Click End ElseIf i = vbNo Then End Else Cancel = 1 End If Else End End If End If End Sub

VISUAL BASIC LE YAZILIM GELTRME Pr ivate Sub mnuAbout_Click() frmAbout.Show 1 End Sub Pr ivate Sub mnuAdd_Click() AktifKaydiKaydet 'son kayt saysn 1 arttr ki ayn kayt zerine bir daha yazlmasn dbSonKayit = dbSonKayit + 1 'Buffer' boalt With dbKayit .Notlar = "" .Ad = "" .Adres = "" .Tel = "" .Email = "" End With 'Bo kayt al. u andan sonra veritabannda bo bir kayt vardr, 1220 bytlk Put #FreeDosya_Numarasi, dbSonKayit, dbKayit 'AktifKayit deikeni dbSonKayit deikenine eitlendi 'Yani bo kayta AktifKayit = dbSonKayit 'Aagdaki ilemle son kayt text kutularna yazlnca 'bo kayt grlr ve kullanc temizlenen text kutularnda yeni kayd 'girmesi gerektiini anlar AktifKaydiGoster Degisti = True 'Kaydedildi flag' False hale getirilir ki kayt ilemi yaplabilsin Kaydedildi = False End Sub Pr ivate Sub mnuDelete_Click() Dim DirResult Dim GeciciDosya_Numarasi Dim AraIslem_Dosyasi As dbKayit_Bilgisi Dim KayitSirasi As Long Dim TmpKayitSirasi As Long Degisti = True If MsgBox("Aktif kayt silinsin mi ?", _

VISUAL BASIC LE YAZILIM GELTRME vbYesNo + vbCritical, "AdresTel V1.5") = vbNo Then txtAd.SetFocus Exit Sub End If 'Basic'te Random access eriimli bir dosyadan bir kayt silmek isterseniz 'nce bir ara ilem dosyas amalsnz (burada TEMP.TMP) ve bu dosya 'araclyla silme ilemini yaparsnz. Bu ilem yle yaplr: '1.Bu ara ilem dosyas dizin iinde var ise silin. nk bize bo olan gerekli If Dir("TEMP.TMP") = "TEMP.TMP" Then Kill "TEMP.TMP" End If 'Sistemden sradaki bo dosya numarasn aln. Bunu ara ilem daoys iin kullanacaz. GeciciDosya_Numarasi = FreeFile 'Bu dosyay bizim kayt boyumuz uzunluunda an (Len = mRecorden) 'te buras nemli, nk veritabanmzdaki kaytlar birer birer 'bu dosyaya kopyalanacak taa ki silmek istediimiz kayda ulaana dek 'o kayt atlanacak, yani temp dosyasna kopyalanmayacak 'o kayttan sonraki kaytlar ise dosya sonuna kadar kopyalanmaya devam edilecek 'Aadaki kodu dikkatli inceleyin: Open "TEMP.TMP" For Random As GeciciDosya_Numarasi Len = dbKayit_Uzunlugu KayitSirasi = 1 TmpKayitSirasi = 1 Do While KayitSirasi < dbSonKayit + 1 'AktifKayit sileceimiz kaydn srasdr. Aadaki If blou 'denklik olmamas halinde esas veritabanndan GET ile okuduu kaytlar 'GeciciDosya_Numarasi ile alan Temp.tmp adl dosya iine kopyalar. Ancak denklik 'oluursa, yani AktifKayit adl rakama ularsa, geici dosyaya kopyalama 'yapmayacaktr (o kayd es geecektir) ve bir sonraki kayd okumaya balayacak 've temp.tmp'ye kopyalayacaktr. Sonuta Temp.tmp (yani geici yada ara ilem 'dosyasnda bir adet kayt eskik olacaktr. Bu da silmak istediimiz 'kayttr. Son bir ilem olarak bu Temp.tmp dosyasna gerek veritabanmzn 'adn verirsek, istediimiz kayd silmi oluruz... Eeeee gerekten uun bir ilem

VISUAL BASIC LE YAZILIM GELTRME 'bir kayt silmek iin yaplan eylere bakn. te malesef Basic'in bir yetersizlii... If KayitSirasi <> AktifKayit Then Get #FreeDosya_Numarasi, KayitSirasi, AraIslem_Dosyasi Put #GeciciDosya_Numarasi, TmpKayitSirasi, AraIslem_Dosyasi TmpKayitSirasi = TmpKayitSirasi + 1 End If KayitSirasi = KayitSirasi + 1 Loop 'Esas veritaban imdi kapatlyor ve siliniyor(Dosya kapatlmadan silinemez!) 'ayrca temp.tmp dosyas da kapatlyor Close FreeDosya_Numarasi Close GeciciDosya_Numarasi Kill AktifDosya 'temp dosyasna esas veritabanmzn adn veriyoruz Name "TEMP.TMP" As AktifDosya 'veritaban imdi tekrar alyor: FreeDosya_Numarasi = FreeFile Open AktifDosya For Random As FreeDosya_Numarasi Len = dbKayit_Uzunlugu 've son kayt flag' deeri bir azaltlyor dbSonKayit = dbSonKayit - 1 'sildiimiz kayt veritabanndaki ilk ve tek kayt ise 'yani artk kayt says sfr ise, o zaman sonkayt flag' 1'e eitlenir: If dbSonKayit = 0 Then dbSonKayit = 1 'yada aktif kayt flag' son kayttan byk ise 'o zaman aktif kayt son kayta eitlenir. If AktifKayit > dbSonKayit Then AktifKayit = dbSonKayit End If 'Aktif kayt gsterilir AktifKaydiGoster txtAd.SetFocus 'Kaydedildi deeri false yaplr, ve kayda hazr beklenir Kaydedildi = False

VISUAL BASIC LE YAZILIM GELTRME End Sub Pr ivate Sub YeniVeritabaniAc() 'Yeni veritaban oluturma rutini: On Error Resume Next 'Ak kalm olmas olaslna kar mutlaka dosyay kapatmaya aln: Close #FreeDosya_Numarasi dbKayit_Uzunlugu = Len(dbKayit) FreeDosya_Numarasi = FreeFile 'CommonDialog nesnesi araclyla dosya ayoruz: CD1.DialogTitle = "Alacak yeni veritabannn ad ne olsun?" CD1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly CD1.Filter = "Dat Dosyas(*.dat)|*.dat|" CD1.FilterIndex = 0 CD1.ShowSave 'aktifDosya deikenine CommonDialog'un at dosya adn veriyoruz: AktifDosya = CD1.FileName If AktifDosya = "" Then Exit Sub Else 'Dosyay yaratyoruz, nk henz yok!: Open AktifDosya For Random As FreeDosya_Numarasi Len = dbKayit_Uzunlugu AktifKayit = 1 'Son kayt herzaman dosyaboyutu / kayt uzunluudur: dbSonKayit = FileLen(AktifDosya) / dbKayit_Uzunlugu If dbSonKayit = 0 Then dbSonKayit = 1 Dosya_Adi = CD1.FileName AktifKaydiGoster TumunuAktifYap Me.Caption = FormCaption_Guncelle() Kaydedildi = True: Degisti = False End If End Sub

VISUAL BASIC LE YAZILIM GELTRME Private Sub mnuExit_Click() If txtAd.BackColor <> vbWhite Then End Else On Error Resume Next If Kaydedildi = False Then Dim i i = MsgBox("Deiiklikleri kaydetmek istiyor musunuz?", vbInformation + vbYesNoCancel, "AdresTel 1.5") If i = vbYes Then Call mnuSave_Click End ElseIf i = vbNo Then End Else Exit Sub End If Else End End If End If End Sub Pr ivate Sub mnuExpor t_Click() 'Veritabanndaki kaytlarn formatl ekilde 'bir text dosyasna aktarlmas rutini: Dim Big As String 'Veritabanndaki tm kaytlar tutacak tek bir string Dim Status As String Dim KayitSirasi As Integer Dim fNum As Integer Dim fAd As String AktifKayit = 1 AktifKaydiGoster KayitSirasi = 1 fNum = FreeFile 'Kayt alanlar birer birer okunuyor 'aralarnda birer bo satr karakteri (vbCrLf) braklarak

VISUAL BASIC LE YAZILIM GELTRME 'pepee Big deikeni iine yazlyor, taa ki KayitSirasi deikeni 'dbSonKayit ile ayn deere ulaana dek...: Do While KayitSirasi < dbSonKayit + 1 Big = Big & "Ad : " & txtAd.Text & vbCrLf Big = Big & "Adresi : " & txtAdres.Text & vbCrLf Big = Big & "Tel no : " & txtTel.Text & vbCrLf Big = Big & "E-mail : " & txtEmail.Text & vbCrLf Big = Big & "Notlar : " & rtbNotlar.Text & vbCrLf & vbCrLf & vbCrLf 'do ... loop dngleri kontr deerlerini for ... next gibi 'otomatik olarak arttrmazlar. Kontrleri her dngde bir arttrmak bizim iimiz: KayitSirasi = KayitSirasi + 1 AktifKayit = KayitSirasi AktifKaydiGoster Loop 'CommonDialog nesnesi ile veritabann export edeceimiz 'txt dosyasn ayoruz: CD2.DialogTitle = "Veritaban Txt dosyasna kopyalanyor..." CD1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly CD2.Filter = "Text Dosyas(*.txt)|*.txt*|Tm Dosyalar(*.*)|*.*" CD2.FilterIndex = 0 CD2.ShowSave 'kullanc vageerse rutinden k If CD2.FileName = "" Then Exit Sub Else 'yoksa kullancnn at dosyann son 4 karakterinden 'dosyann txt dosyas olup olmadn kontrol et: If Right(CD2.FileName, 4) = ".txt" Then 'son 4 karakter .txt ise sorun yok. dosyamzn ad bu fAd = CD2.FileName Else 'son4 karakter .txt deilse, sonuna bunu biz ekleyelim: fAd = CD2.FileName & ".txt" End If Status = Format(Date, "Long Date") & " tarihinde AdresTel 1.5! tarafndan oluturulmutur." & vbCrLf 'Squential (txt) dosyasn output modunda ayoruz, 'yani dosya yaratyoruz: Open fAd For Output As fNum

VISUAL BASIC LE YAZILIM GELTRME 'Big deikeni ieriini, yani formatlanm veritabann 'dosya iine yazyoruz: Print #fNum, Big 'son satr olarak ta programn imzasn atyoruz: Print #fNum, Status Close #fNum End If End Sub Pr ivate Sub mnuMail_Click() 'Mail client'i (mesela Outlook Express) altran rutin: Call ShellExecute(&O0, vbNullString, "mailto:webmaster@hakanersoz.com", vbNullString, vbNullString, vbNormalFocus) End Sub Pr ivate Sub mnuNew_Click() 'Program yeni vertitaban amas gerektiini text kutusunun rengine 'bakarak anlyor. Burada iki seenek var. Beyaz olan veya olmayan: '1. Beyaz deil ise sorun yok, demekki program daha yeni alm, ' ve ortada grilen veya girilmekte olan kayt gibi kontrol etmemiz ' gereken bir durum yok, o zaman direkt yeni database aalm: If txtAd.BackColor <> vbWhite Then YeniVeritabaniAc Exit Sub Else '2. Eer txtbox rengi beyaz ise o zaman kayt gir, bul, sil vs ' ilemleri yaplyor demektir, yani bir veritaban almtr ' kullancnn hata yapmasn nlemek iin Kaydedildi ve Degisti flag'larna ' bakalm. Kayt girilmi ve text kutularnda sonradan bir deiklik olmamsa ' o zaman iimiz kolay, yeni database aalm: If Kaydedildi = True And Degisti = False Then YeniVeritabaniAc Exit Sub 'Buras yukardaki seenee baldr. Yani If ... ElseIf ... End If 'Eer Degisti flag' True ise demekki Kaydedildi = True yapldktan 'sonra text kutularnda deiklik yaplmtr. Kullancy 'kendi dikkatsizliinden korumak ta iyi bir programcnn grevidir 'Hemen deiklii kaydetmek isteyip istemediini soralm: ElseIf Kaydedildi = True And Degisti = True Then 10 Dim i

VISUAL BASIC LE YAZILIM GELTRME i = MsgBox("Deiiklikleri kaydetmek istiyor musunuz?", vbInformation + vbYesNoCancel, "AdresTel 1.5") If i = vbYes Then 'verilen yes yada no yantna gre Call mnuSave_Click Close #FreeDosya_Numarasi YeniVeritabaniAc 'veritabann aalm Exit Sub ElseIf i = vbNo Then YeniVeritabaniAc 'veritabann aalm Exit Sub Else Exit Sub End If ElseIf Kaydedildi = False And Degisti = True Then GoTo 10 ElseIf Kaydedildi = False And Degisti = False Then YeniVeritabaniAc Exit Sub End If End If End Sub Pr ivate Sub mnuNext_Click() If AktifKayit = dbSonKayit Then Beep MsgBox "Bu veritabanndaki son kayttr !", vbInformation, "AdresTel 1.5" Else 'Bir sonraki kayda giderken kullancnn yapt deiiklikleri 'kaydetmek iin AktifKaydiKaydet rutinini altryoruz 'Eer herhangi bir deiiklik yoksa zaten bouna kayt yaplmayacak: AktifKaydiKaydet AktifKayit = AktifKayit + 1 AktifKaydiGoster End If End Sub Pr ivate Sub mnuOpen_Click() On Error Resume Next If txtAd.BackColor <> vbWhite Then MevcutVeritabani_Ac

VISUAL BASIC LE YAZILIM GELTRME Exit Sub Else If Kaydedildi = True And Degisti = False Then MevcutVeritabani_Ac Exit Sub ElseIf Kaydedildi = True And Degisti = True Then MevcutVeritabani_Ac Exit Sub 20 Dim i i = MsgBox("Deiiklikleri kaydetmek istiyor musunuz?", vbInformation + vbYesNoCancel, "AdresTel 1.5") If i = vbYes Then AktifKaydiKaydet MevcutVeritabani_Ac Exit Sub ElseIf i = vbNo Then MevcutVeritabani_Ac Exit Sub Else AktifKaydiGoster End If ElseIf Kaydedildi = False And Degisti = True Then GoTo 20 ElseIf Kaydedildi = False And Degisti = False Then MevcutVeritabani_Ac Exit Sub End If End If End Sub Private Sub MevcutVeritabani_Ac() 'dosyann ak kalm olmas olaslna kar dosyay kapatma 'giriiminde bulun. Dosya aksa kapatlacaktr, deilse zaten 'hi bir ilem yaplmayacaktr. Close #FreeDosya_Numarasi dbKayit_Uzunlugu = Len(dbKayit) FreeDosya_Numarasi = FreeFile

VISUAL BASIC LE YAZILIM GELTRME 'Commondialog nesnesi ile dosya a, kaydet ilemlerini standart 'Windows api'si ile yaparsnz. Aadaki rutinleri dikkatli 'inceleyin CD1.DialogTitle = "Bir veritaban an..." CD1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly CD1.Filter = "Dat Dosyas(*.dat)|*.dat|" CD1.FilterIndex = 0 CD1.ShowOpen AktifDosya = CD1.FileName Dosya_Adi = CD1.FileName Open AktifDosya For Random As FreeDosya_Numarasi Len = dbKayit_Uzunlugu AktifKayit = 1 dbSonKayit = FileLen(AktifDosya) / dbKayit_Uzunlugu If dbSonKayit = 0 Then dbSonKayit = 1 AktifKaydiGoster TumunuAktifYap Me.Caption = "AdresTel 1.5 - " & FormCaption_Guncelle() 'Right(Dosya_Adi, dosya) Kaydedildi = True Degisti = False End Sub Pr ivate Sub mnuOptions_Click() frmOptions.Show 1 End Sub Pr ivate Sub mnuPr evious_Click() If AktifKayit = 1 Then Beep MsgBox "Bu veritabanndaki ilk kayttr!", vbInformation, "AdresTel 1.5" Else AktifKaydiKaydet AktifKayit = AktifKayit - 1 AktifKaydiGoster

VISUAL BASIC LE YAZILIM GELTRME End If End Sub Pr ivate Sub mnuPr int_Click() MsgBox "yazdrlyor." End Sub Pr ivate Sub mnuProtect_Click() Dim tAd As String Dim tAdres As String Dim tEmail As String Dim tTel As String Dim tNotlar As String 'ifreleme rutini Tom Pickles tarafndan yazlmtr: tAd = modCipher.Crypt(txtAd.Text, Key) tAdres = modCipher.Crypt(txtAdres.Text, Key) tTel = modCipher.Crypt(txtTel.Text, Key) tEmail = modCipher.Crypt(txtEmail.Text, Key) tNotlar = modCipher.Crypt(rtbNotlar.Text, Key) txtAd.Text = tAd txtAdres.Text = tAdres txtTel.Text = tTel txtEmail.Text = tEmail rtbNotlar.Text = tNotlar Degisti = True Kaydedildi = False End Sub Pr ivate Sub mnuSave_Click() On Error Resume Next AktifKaydiKaydet 'kayt girildikten sonra aadaki flaglar deitirilir: Kaydedildi = True Degisti = False End Sub Pr ivate Sub mnuSearch_Click() 'Ad arama rutini: Dim Aranan_Ad As String

VISUAL BASIC LE YAZILIM GELTRME Dim Aranan_Bulundu As Integer Dim KayitSirasi As Long Dim dbKayit As dbKayit_Bilgisi Aranan_Ad = InputBox("Aradnz kiinin tam adn giriniz:", "Arama") If Aranan_Ad = "" Then txtAd.SetFocus Exit Sub End If Aranan_Ad = UCase(Aranan_Ad) Aranan_Bulundu = False 'Bulundu flag' nce False 'lk kayttan son kayta kadar tm kaytlarn Ad alanna baklacak. 'Bu dng belki bir ka rakam sonra sona erecektir 'Bu For ... Next dngsnde kontr olarak KayitSirasi kullanlyor: 'Kod For'dan balyor alt satrlar alyor ve Next'e ulayor 'ite o anda KayitSirasi deeri bir artyor ve bylece bir sonraki kayt 'veritabanndan okunuyor. Aranan denklik oluursa Aranan_Bulundu flag' True 'yaplyor ve Exit For ile dngden klyor: For KayitSirasi = 1 To dbSonKayit Get #FreeDosya_Numarasi, KayitSirasi, dbKayit If Aranan_Ad = UCase(Trim(dbKayit.Ad)) Then Aranan_Bulundu = True Exit For End If Next 'Aranan_Bulundu = True eleyip dngden az nce kmtk, ancak belki de 'arama olumsuz sonu vermitir ve Aranan_Bulundu = False olarak kalmtr 'Bu yzden Aranan_Bulundu flag'nn deerini burada bir kez kontrol etmeliyiz: If Aranan_Bulundu = True Then AktifKaydiKaydet AktifKayit = KayitSirasi AktifKaydiGoster Else MsgBox "Aradnz kii kaytlarda yok!" _ & vbCrLf & vbCrLf & "Dikkat: Aranan kiinin tam adn yazdnzdan emin misiniz!" _ , vbInformation, "AdresTel 1.5" End If txtAd.SetFocus

VISUAL BASIC LE YAZILIM GELTRME End Sub Pr ivate Sub mnuUnprotect_Click() Dim tAd As String Dim tAdres As String Dim tEmail As String Dim tTel As String Dim tNotlar As String tAd = modCipher.Decrypt(txtAd.Text, Key) tAdres = modCipher.Decrypt(txtAdres.Text, Key) tTel = modCipher.Decrypt(txtTel.Text, Key) tEmail = modCipher.Decrypt(txtEmail.Text, Key) tNotlar = modCipher.Decrypt(rtbNotlar.Text, Key) txtAd.Text = tAd txtAdres.Text = tAdres txtTel.Text = tTel txtEmail.Text = tEmail rtbNotlar.Text = tNotlar Degisti = True Kaydedildi = False End Sub Pr ivate Sub rtbNotlar_KeyPress(KeyAscii As Integer ) Kaydedildi = False Degisti = True End Sub Pr ivate Sub Tab1_Click() 'STab zerinde iki tab var. Stab zerine yaplan klik sonucu seilen tabn 'Caption deerine gre mevcut iki Frame grnr oluyor veya kayboluyor 'Bu eit StripTab kullanm ok pratiktir. If Tab1.SelectedItem.Caption = "Kiisel Bilgiler" Then FrameInfo.Visible = True FrameNote.Visible = False ElseIf Tab1.SelectedItem.Caption = "Notlar" Then FrameInfo.Visible = False FrameNote.Visible = True End If

VISUAL BASIC LE YAZILIM GELTRME End Sub Pr ivate Sub TumunuDeaktifYap() 'Tm kontrolleri kilitle txtAd.Locked = True txtAdres.Locked = True txtTel.Locked = True txtEmail.Locked = True rtbNotlar.Locked = True 'BGCOLOR gri yap txtAd.BackColor = &H8000000F txtAdres.BackColor = &H8000000F txtTel.BackColor = &H8000000F txtEmail.BackColor = &H8000000F rtbNotlar.BackColor = &H8000000F 'Butonlar kilitle cmdPrevious.Enabled = False cmdNext.Enabled = False 'menleri kilitle mnuSave.Enabled = False mnuAdd.Enabled = False mnuDelete.Enabled = False mnuSearch.Enabled = False mnuNext.Enabled = False mnuPrevious.Enabled = False mnuExport.Enabled = False mnuProtect.Enabled = False mnuUnprotect.Enabled = False End Sub Pr ivate Sub TumunuAktifYap() 'Kontrollerin klitlerini a txtAd.Locked = False txtAdres.Locked = False txtTel.Locked = False txtEmail.Locked = False rtbNotlar.Locked = False 'Arkaplan rengini beyaz yap

VISUAL BASIC LE YAZILIM GELTRME txtAd.BackColor = vbWhite txtAdres.BackColor = vbWhite txtTel.BackColor = vbWhite txtEmail.BackColor = vbWhite rtbNotlar.BackColor = vbWhite 'butonlar a cmdPrevious.Enabled = True cmdNext.Enabled = True 'Menuleri a mnuSave.Enabled = True mnuAdd.Enabled = True mnuDelete.Enabled = True mnuSearch.Enabled = True mnuNext.Enabled = True mnuPrevious.Enabled = True mnuExport.Enabled = True mnuProtect.Enabled = True mnuUnprotect.Enabled = True End Sub Pr ivate Sub form_load() Dim prg As String Dim txtIco As String Key = GetSetting(App.Title, "Options", "key") Key = Decrypt(Key, "1234567890") prg = App.Path & "\AdresTel.exe" Kaydedildi = False Degisti = False TumunuDeaktifYap txtIco = App.Path & "\dat.ico" 'Dat uzantl dosyalarn sisteme AdresTel Database 'programna ait olduunu bildir ve AdresTel.exe ile ilikilendir: Iliskilendir prg, "dat", "AdresTel Database", txtIco If Command = "" Then Exit Sub Else AktifKaydiKaydet Close #FreeDosya_Numarasi

VISUAL BASIC LE YAZILIM GELTRME dbKayit_Uzunlugu = Len(dbKayit) FreeDosya_Numarasi = FreeFile AktifDosya = Command 'Dosyay a Open AktifDosya For Random As FreeDosya_Numarasi Len = dbKayit_Uzunlugu AktifKayit = 1 dbSonKayit = FileLen(AktifDosya) / dbKayit_Uzunlugu If dbSonKayit = 0 Then dbSonKayit = 1 AktifKaydiGoster TumunuAktifYap Me.Caption = "AdresTel 1.5 - " & AktifDosya Kaydedildi = True Degisti = False End If End Sub Pr ivate Sub tmrSave_Timer () Call mnuSave_Click End Sub Pr ivate Sub Tool_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case Button.Key Case "New" mnuNew_Click Case "Open" mnuOpen_Click Case "Save" mnuSave_Click Case "Print" mnuPrint_Click Case "Protect" mnuProtect_Click Case "Unprotect" mnuUnprotect_Click Case "Add" mnuAdd_Click Case "Delete" mnuDelete_Click Case "Search" mnuSearch_Click

VISUAL BASIC LE YAZILIM GELTRME Case "Open" mnuOpen_Click Case "Options" mnuOptions_Click Case "Export" mnuExport_Click Case "Mail" mnuMail_Click Case "Exit" mnuExit_Click End Select End Sub Pr ivate Sub txtAdr es_KeyPr ess(KeyAscii As Integer ) Kaydedildi = False Degisti = True End Sub Pr ivate Sub txtEmail_KeyPr ess(KeyAscii As Integer ) Kaydedildi = False Degisti = True End Sub Pr ivate Sub txtAd_KeyPr ess(KeyAscii As Integer ) Kaydedildi = False Degisti = True End Sub Pr ivate Sub txtTel_KeyPr ess(KeyAscii As Integer) Kaydedildi = False Degisti = True End Sub

VISUAL BASIC LE YAZILIM GELTRME imdi sra geldi bu formlar ve modlleri doldurmaya: lk olarak frmOptions.frm u hazrlyoruz. Formdaki Elemanlar chkAutoSave (CheckBox) ChkPassword (CheckBox) Command2 (CommandButton) Command3 (CommandButton) Fr ame1 (Frame) Fr ame2 (Frame) frmOptions (Form) Label1 (Label) Label2 (Label) txtKey (TextBox) txtPassword (TextBox) frmOptions.frm un grnts frmOptions.frm adl formumuzu yukardaki ekilde grld gibi hazrlayp formun kodu olarak aadaki kodu yazalm: Pr ivate Sub chkPassword_Click() If txtPassword.Enabled = True Then txtPassword.Enabled = False txtPassword.BackColor = &H8000000F Else txtPassword.Enabled = True txtPassword.BackColor = vbWhite txtPassword.SetFocus End If

VISUAL BASIC LE YAZILIM GELTRME End Sub Pr ivate Sub Command2_Click() Dim ProtectKey As String Dim Login As Boolean Dim Password As String Dim AutoSave As Boolean ProtectKey = Crypt(txtKey.Text, "1234567890") If chkPassword.Value = 0 Then Login = False Password = Crypt(txtPassword.Text, "1234567890") ElseIf chkPassword.Value = 1 Then Login = True Password = Crypt(txtPassword.Text, "1234567890") End If If chkAutoSave.Value = 0 Then AutoSave = False ElseIf chkAutoSave.Value = 1 Then AutoSave = True End If SaveSetting App.Title, "Options", "Key", ProtectKey Key = ProtectKey SaveSetting App.Title, "Options", "AutoSave", AutoSave If Login = True Then SaveSetting App.Title, "Options", "Login", Login SaveSetting App.Title, "Options", "Password", Password Else SaveSetting App.Title, "Options", "Login", Login SaveSetting App.Title, "Options", "Password", Password End If Unload Me End Sub Pr ivate Sub Command3_Click() Unload Me

VISUAL BASIC LE YAZILIM GELTRME End Sub Pr ivate Sub form_load() Dim ProtectKey As String Dim Login Dim Password As String Dim AutoSave ProtectKey = GetSetting(App.Title, "Options", "Key") AutoSave = GetSetting(App.Title, "Options", "AutoSave") Login = GetSetting(App.Title, "Options", "Login") Password = GetSetting(App.Title, "Options", "Password") If Login = True Then chkPassword.Value = 1 txtPassword.Text = Decrypt(Password, "1234567890") txtPassword.Enabled = True txtPassword.BackColor = vbWhite Else chkPassword.Value = 0 txtPassword.Text = Decrypt(Password, "1234567890") txtPassword.Enabled = False txtPassword.BackColor = &H8000000F End If txtKey.Text = Decrypt(ProtectKey, "1234567890") If AutoSave = True Then chkAutoSave.Value = 1 Else chkAutoSave.Value = 0 End If End Sub

You might also like