Temel Bilgiler Visual Basic, nesneye yönelik bir programlama dilidir. Yani temel olarak nesneleri kullanırız. Peki nedir bu nesneler ? Bu satırları görebildiğinize göre windows kullanımı hakkında bilginiz vardır. Ekranda gördüğünüz o tuşlar, metin kutuları, açılan pencereler hepsi birer nesnedir.
Klasik programlama dilleri ile uğraştıysanız (C, Basic,..vb), programı yazarken yukarıdan aşağı doğru yazdığınızı ve programın da çalışırken aynı mantıkla hareket ettiğini bilirsiniz. VB'de ise durum farklıdır. Visual Basic'de kodu yazarsınız, gerisini kullanıcıya bırakırsınız. Tabi istediğiniz oranda. Kullanıcı ancak sizin izin verdiğiniz kadar hareket edebilir. Tabi kullanıcıyı devre dışı bırakmakta mümkün.
Bütün bunlar "olay"lar , "metot"lar ve "özellikler" kullanılarak kolaylıkla yapılabilir. Çok sık duyacağınız bu terimlerle daha sonra iyice uğraşacağız ama şimdi bir örnek vererek hem bunları, hem de Visual Basic mantığını anlamaya çalışalım.
Kapınızın önünde duran kırmızı, çelik cantlı, siyah camlı 98 model bir Doğan düşünün. Arka camında da bir şeyler yazılmış olsun.( Genelde anlamını bile bilmedikleri ingilizce birşeyler yazdırırlar.).Şimdi arabayı Visual Basic mantığı ile bir inceleyelim:
Nesnemiz işte o gördüğünüz Doğan marka otomobil. Gerçek araba tutkunları her zaman arabalarına bir isim verirler. Bizim Doğan'ın adı da: "Atılgan" olsun. Anlaştık değil mi? Şimdi, Atılgan'ın rengi kırmızı idi. O halde;
Atılgan.renk = kırmızı Sırada diğer özellikleri var.
Atılgan.cant = çelik Atılgan.cam = siyah Atılgan.yazı = True Atlgan'ın cantları çelik idi. Camları da siyahtı. Sanırım o anlaşıldı. Peki ama aşağıdaki ne oluyor? Hatırlarsanız, Atılgan'ın arka camında bir şeyler yazılıydı. Şimdi biz arkada ne yazılı olduğuyla değil, yazı olup olmamasıyla ilgileniyoruz. Arkada yazı var mı, yok mu? Var. Yani "olumlu".İşte yukarıdaki "true" bu anlama geliyor. Eğer yazı olmasaydı "false" (yanlış) diyecektik.
İşte visual basic tamamen
Nesne.Özellik = Değer mantığıyla çalışır.Bu değerin nasıl belirtileceği konusunda ise bize
değişken ler yardım eder. Biraz önceki True-False boolean türünde idi. Merak etmeyin bunlara daha sonra geleceğiz. Atılgan'ın gaz pedalına bastığımız zaman araba yürür.( Arabaların çalışması ve ileri sürücülük tekniklerine burada değinemeyeceğiz.). İşte bu da, Atılgan nesnesine ait bir olaydır." Gaza Basılması" olayı. Şimdilik Atılgan'ı burada bırakıyoruz..
Visual Basic'i çalıştırdığınızda, içinde beş-altı tane pencere olan bir yere gelirsiniz. İnceleyeceğimiz ilk pencere, ekranın en solunda bulunan Araç Kutusu.
Araç Kutusu ismi ona boşuna verilemiş. Gerçekten de o, içinde ihtiyacımız olan her türlü aracı bulabileceğimiz bir alet çantası. Çekicinden tornavidasına kadar her şey onun içinde. Yapacağımız işe göre onun içine istediğimiz aletleri koyup çıkartabiliyoruz da! Bunu üst taraftaki menüden "project/components "'ı seçerek yapıyoruz. Böylelikle hem gerekli aletleri alıyor, hem de işimize yaramayacak aletleri boşuna taşımaktan kurtulmuş oluyoruz.
Visual Basic ilk çalıştığında ihityacınız olan temel aletler, siz zahmet etmeyin diye emrinize verilmiş durumda.
Araç kutusundakiler aslında, hakkında sıkça konuştuğumuz nesnelerdir. Evet sonunda onlarla tanıştınız işte. Ne kadar sevimliler değil mi? Onları kullanmak için üstüne tıklamanız yeterli. Daha sonra formun üstüne, tıpkı paintte dikdörtgen çizermiş gibi bırakırsınız. Form ve bunlar hakkında daha sonra konuşacağız.
Hani daha önce Atılgan'dan bahsetmiş ve onu bir nesne olarak kabul etmiştik. Hatırlarsanız onun özellikleri üzerinde çalışmıştık. İşte bu araç kutusundakilerin de her nesne gibi bazı özellikleri var. Bu özelliklerine Özellikler Pencereresi (Properties Window) sayesinde ulaşabiliyoruz.
Ekranın sağında bulunan ve üzerinde "properties" yazan pencere, özellikler penceresidir. O anda seçili olan nesnenin özelliklerini gösterir. İşin güzel tarafı, bu pencere sayesinde onları görmekle kalmaz, değiştirebilirsiniz de! Seçili olan nesnenin özelliklerini ve o özelliğin o anki değerini gösterir.
Visual Basic kullanırken yeni projeye başladığınızda yada daha önceki bir projeyi çağırdığınızda form otomatik olarak seçilecektir. Madem seçili, o halde bu pencereyi kullanrak bazı özelliklerine bir bakalım.
(Name) : Seçili nesnenin ismidir. Burda form'un ismi Form1 imiş
BackColor : Sanırım anladınız. Arka plân rengi.
Caption : Nesnenin üzerindeki yazıyı bununla ayarlarsınız. Mesela şu anda ekranın en üstünde mavi bir şeritte "özellikler penceresi -" yazıyor. Bunu, 'caption' özelliği sayesinde görebiliyorsunuz.
ForeColor Önrenk demek biraz saçma olur herhalde ama doğru. Yazı rengi.
Borderstyle Çerçeve biçimi. Hani pencerelerin üstünde mavi bir şerit var ya, onunla ilgili işte.
Burada tüm özellikler anlatılmayacak. Sadece bir fikir sahibi olmanız için kısaca göz gezdirdik. Properties yazısının altındaki bölümde o an seçili olan nesnenin adı ve türü yazıyor. Altaki iki düğmeden özellikleri alfabetik mi, katogorize edilmiş olarak mı görmek istediğinize karar veriyorsunuz.
Biraz önce bir formdan bahsettik.Biraz forum hakkında bilgi verelim.
Visual Basic'de form için "önemli bir nesnedir" demek doğru olmakla beraber, "önemli" kelimesi yerine "zorunluluk" koyarak, formun ne demek olduğunu daha iyi anlatmış olacağız. Çünkü form olmaksızın diğer nesnelerle hiç bir şey yapamayız. Form bir bakıma diğer nesneler için bir biosfer konumundadır. Bütün bunlara rağmen formun kendisi de aslında bir nesnedir. Aslında onu hepimiz tanıyoruz. Pencereler, dialog kutuları,... hepsi Windows kullanmaya başladığımızdan beri beraber yaşadığımız şeyler
Nesnelerin Ortak Noktaları Standart Özellikler Align: Bu özellik, nesne genişliğinin form genişliğine eşitlenmesini sağlayarak, Formun üstünde mi yoksa altında mı duracağına karar verir.
Alignment: CheckBox, OptionButton ve TextLabel nesneleri üzerinde bulunan metinlerin sola dayalı, sağa dayalı veya ortalanmış olmasını sağlar. Sadece tasarım aşamasında değiştirilebilir.
Apparance: Herhangi bir nesnenin görünüşüile ilgili özelliktir. 3 boyutlu veya düzlem halinde olmasını ayarlar.
Autosize: Nesne boyunun, nesne içeriğine göre otomatik olarak ayarlanmasını sağlar. Mesela Label nesnesine bir sözcük yazıp, bu özelliği true yaparsanız, label nesnesinin boyu, sözcüğünkine eşit olacaktır.(Bir deneyin, anlarsınız.)
BackColor: Nesne zeminin rengini belirler. Kod esnasında değiştiriken renklerin adını yazarak kolayca yapabilirsiniz. (Örn: Label1.backcolor = vbblue ("vb" yazmayı unutmayın.))
BorderStyle: Nesneye ait çerçevenin tipini belirler.(Örn:Form için, "fixed single"; min ve max butonsuz bir çerçeve yapar.)
Cancel: Form üzerinde bulunan button nesnesinin, "iptal" tuşu olup olmadığını belirler
Caption: Form nesnesi için pencerenin taşıma çubuğundaki yazıyı, diğer nesneler için, nesnenin üzerinde yazan yazıyı belirtir.
DataField: Data nesnesine bağlı bir kontrolün, veri tabanı dostyasındaki hangi alana bağlı olduğunu gösterir.
DataSource: Nesnenin bağlı olduğu Data kontrolünün adını belirtir.
Default: Bir form üzerindeki CommandButton'lardan hangisinin seçili olduğunu belirtir.
DragIcon: Sürükle ve Bırak (Drag&Drop) işlemi sırasında fare imlecinin sembolünü belirtir.
DragMode: Sürükle&Bırak işleminin el ile m, yoksa otomatik olarak mı yapılacağını ayarlar.
Enabled: Nesnenin kullanılabilirliğini ayarlar. "False" ise kullanıcı o nesneyi kullanamaz. (mesela benim ses kartımda, "bas" ve "tiz" özelliğini seçemiyorum. Çünkü enabled özelliği false. Ulan alcan bir adam gibi kart. O zaman gör bakim. Kötü ESS işte.)
Font: Nesnenin yazıtipi ile ilgili tüm ayarları bununla yapabilrsiniz. (Eski versiyonlarda bulunan fontbold, fontitalic... gibi özellikler uyumluluk açısında halâa varlar.)
ForeColor: Nesnenin ön plânda kullandığı rengi belirler.
Height: Nesnenin boyunu gösterir.
hWind: Nesneyi referans gösteren handle'ı içerir. İleri düzey VB progrmlamakta kullanılır. API larda falan.
Index: Eğer form üzerinde, aynı tür ve aynı adda nesneler varsa, indextranooberi farklı olmalıdır.Bu özellik o indexin kaç numara olduğunu beliritr. (En iyisi bir örnekle açıklayayım. Bkz: Örnek_Index)
Left: Nesnenin, üzerinde bulunduğu nesneden yatay olarak ne kadar uzakta olacağını belirtir. Bir nevi X koordinatı olayı yani.
ListCount: Nesnenin listelediği verilerin toplam sayısını verir.
ListIndex: Nesnenin listelediği verilerden hangisinin seçili olduğunu gösterir.
Locked: Metin kutusunun (TextBox) kilitli olup olmayacağını belirtir. Kilitli iken kullanıcı, metin kutusundaki metni değiştiremez.
MaxLength: Nesne içndeki metnin, en fazla kaç karakterden oluşacağını belirler.
MouseIcon: Fare imlecini belirler. MousePointer özelliğinin 99 olması durumunda geçerlidir.
MousePointer: Farenin nesne üzerinde dolaşırken, hangi imleci kullanacağını gösterir.99 ise MouseIcon'da seçili ikonu kullanır.
MultiLine: Nesnenin içindeki metnin, tek satırda yazılıp yazılmayacağına karar verir. "True" ise metin yazarken, nesnenin sonuna gelindiğinde; bir alt satıra geçer.
Name: Nesnenin adını gösterir. Sadece tasarım aşamasında değiştirilebilir.
Parent: Nesnenin hangi nesne üzerinde bulunduğunu veya hangi nesneye bağlı olduğunu gösterir.
Picture: Nesne içeriği olan resim dosyasının bulunduğu sdizini ve dosya adını içerir.
ScrollBars: Nesnenin, yatay veya dikey kaydırma çubuklarına sahip olup olmadığını belirtir.
SelLength: Seçili metnin, metnin tamamı içerisinde bulunduğu yeri gösterir.
SelText: Seçili metni içerir.
TabIndex: Nesnenin, Tab tuşu değişimlerinde kaçıncı sırada olduğunu belirler.
TabStop: Nesnenin Tab tuşu sektirmelerine dahil olup olmadığını belirtir.
ToolTipText: Bir nesnenin üzerinde, mouse ile bekleyince çıkan sarı zeminli yaznın ne olacağını belirler. ( bişeyler yaz ve nesnenin üzerinde bekle görürsün.)
Top: Nesnenin, üzerinde bulunduğu nesneden düşey olark ne kadar uzakta olduğunu belirler. Y koordinatı yani.
Value: Nesneye ait seçili veri tipi ile ilgili değeri içerir.(RadioBox lar için mesela. Seçili değilken 0, seçiliyken 1.)
Visible: Nesnenin görünür olup olmadığını ayarlar.
Width: Nesnenin genişliğini belirler.
Standart Olaylar
Change: Nesne içeriği üzerinde değişiklik yapılmasıdır.
Click: Nesne üzerine fareyle kliklemek. (Klik: Fare düğmesine basılıp çekilmesi. (Bir kitapta görmüştüm. Aynen böyle yazıyordu.))
DblClik: Çift klikleme.
DragDrop: Sürükle&Bırak işleminin tamalanmasıyla ortaya çıkan olaydır.( Bırakma işlemi olarak da yorumlayabiliriz.)
DragOver: Sürükle+Bırak devam ederken ortaya çıkar.(Bu da sürükleme işlemi.)
GotFocus: Nesnenin, kullanıcı tarafından seçilmesi ya da etkin hale dönüştürülmesidir.
KeyDown: Bir tuşa basılması.
KeyUp: Basılı olan bir tuşun bırakılması.
KeyPress: Bir tuşa basılıp çekilmesi. (Bu key olaylarının kullanılabilmesi için, nesnenin keypreview özelliğinin açık olması gerekir.)
LostFocus: GotFocus olayının tersi. Yani nesnenin pasif duruma geçmesi.
MouseDown: Fare düğmesine basılması.
MouseUp: Basılı olan fare düğmesinin bırakılması.
MouseMove: Farenin nesne üzerinde gezinmesi. Standart Metotlar
Drag: Sürükle & Bırak işleminin başlamasını, bitmesini ya da iptal edilmesini sağlayan metot.
Hide: Form'un bellekteki yerini kaybetmeksizin, yalnızca görünmez olmasıdır.
Move: Herhangi bir nesnenin ekran üzerinde taşınmasını sağlar.
PrintForm: MDI tipinde olmayan bir formun içeriklerinin yazıcıdan dökümünü almaya yarar.
Refresh: Nesnenin hem içerik, hem de görünüş açısından güncelleşmesini sağlar.
SetFocus: Nesnenin etkin konum önceliğine sahip olmasını sağlar.
Procedure
Procedure, yazmış olduğunuz programın, daha esnek ve anlaşılır bölümlere ayrılması demektir.Visual Basic'de üç tip procedure vardır.
1. Subroutine: Bir değişken yada parametreye gerek duymaksızın, tek başına çalışan procedure'lerdir. Çağırdığınız zaman, üstüne düşen görevi yapar ve başka birşeye karışmazlar.
2. Function: Değişken ve parametreler ile çalışır.Verilen görevi yaptıktan sonra iş dönüşünde yaptıklarını değişkenlerle geri getirebilirler.
3. Property: Function'ların ve özelliklerin birleşiminden oluşmuş özel bir türdür. Özellikle ActiveX kontrolleri yaparken nesneye yeni özellik eklemede kullanılır.
Örnekler
Subroutine Örneği
Basit bir örnekle başlayalım.Formun üzerine iki tane commandbutton yerleştirip, başlıklarını (caption) mavi top ve kırmızı halı olarak değiştirin. Bir tane de textBox koyup aşağıdaki kodu yazın.
Public Sub mavitop()
Text1.Text = "Mavi Top"
End Sub
Public Sub kırmızıhalı()
Text1.Text = "Kırmızı Halı"
End Sub
Private Sub Command1_Click()
mavitop
End Sub
Private Sub Command2_Click()
kırmızıhalı
End Sub
Aslında bu program procedure kullanarak işlerimizi pek kolaylaştırmıyor ama amaç nasıl kullanıldığını anlatmaktı. Procedure eklerken, bunu kod ile yapabileceğiniz gibi, "tools" menüsünden "add procedure" yi seçerek de yapabilirsiniz.
Function Örneği
Biraz önceki örneği bu sefer function ile yapalım. yine demin ki gibi bir form oluşturun ve işe başlayalım. - Code:
-
Public Function yazıyazma(yazı As String)
Text1.Text = yazı
yazıyazma="yazma işlemi yapıldı."
End Function
Private Sub Command1_Click()
Print yazıyazma("mavi top")
End Sub
Private Sub Command2_Click()
Print yazıyazma("kırmız Halı")
End Sub
Parantez içindeki yazı as string ifadesi, bu procedure de kullanılacak değişkeni ifade etmektedir. Bu function çağırılırken, yollanacak bir string değeri, yazı değişkenine otomatik olarak aktarılmaktadır.
yazıyazma("mavi top") ifdesi, yazıyazma adlı function'a "mavi top" stringini yollar. Yukarıda anlatıldığı üzere, zatn yazıyazma adlı function da kendine yollanacak bir stringi beklemekteydi. Sonra o string'i alıp görevini yapıyor ama işi henüz bitmedi.
function, kendine verilmiş ad olan yazıyazma'ya atanacak bir değeri de iş dönüşünde geri göndermektedir. Mesela bu örnekte, text1.text değiştirildikten sonra yazıyazma=" yazma işlmi yapıldı" ifadesi bunun içindir.
Bir toparlama gerekirse (nihayet!), print yazıyazma("mavi top") satırı şu anlama gelmektedir;
1. Önce yazıyazma adlı function'a git.
2. Giderken eli boş gitme, "mavi top" şeklindeki string'i de götür.
3. Orada işler bitince, oradan gelecek olan yazıyazma değişkenini form üzerine yaz.
Ben elimden geleni yaptım. Artık anlamak sizin elinizde. yukarıdaki örneklerin orasını burasını değiştirerek kısa sürede anlayabileceğinizi sanıyorum.
Grafik Kullanımı
Aranızda C64 ile program yapma şerefine erişmiş olanlar bilirler; grafik çizmek için nelere katlanılırdı o zamanlar. Karelere ayrılmış bir tabloda (yanlış hatırlamıyorsam 24*21 idi) karakterler oluşturulur, sonra her bir kare, üstteki değerlere göre toplanarak uzun datalar oluşturulurdu. Eğer uğraşmışsanız anlamışsınızdır. Anlamadıysanız üzülmeyin çünkü artık programlara grafik eklemek için böyle zahmetli işlerle uğraşmanız gerekmiyor.
OLE nesnesi sayesinde zaten pahalı çizim ve illutrasyon (türkçesi ne?) programlarıyla çizdiğiniz grafikleri pat diye programa koyabiliyorsunuz. Ama amacınız aktif grafikler ise (-ki kendileri, girilen bilgi ya da alınan sonuca göre sonradan çizilen grafikler oluyorlar) VB nin bizlere verdiği çizim imkânlarına şöyle bir bakmanız gerekecektir.
Line Nesnesi : Araç kutusunda bulunur. Nerde kaybolur, onu bilemeyeceğim (tamam, kötü espri.).
Bordercolor ile renk,
Borderwidth ile kalınlık,
Borderstyle ile çizim biçimini ayarlayabilirsiniz ki, bu biçimler kesik çizgi, nokta ve saydam gibi niceliklerdir. X1,Y1 başlangıç koordinatlarını, X2,Y2 ise bitiş koordinatlarını belirtmektedir. Bunlar sayesinde kod içerisinden de Line nesnesini kullanabilirsiniz.
Shape Nesnesi: Bu nesne sayesinde kare, dikdörtgen, elips, daire vb şekiller çizebilirsiniz.Nesnenin
shape özelliği sayesinde çizilecek şeklin tipini belirlersiniz.
Shape.shape = (Çizilecek şekil)
0 : Dikdörtgen
1 : Kare
2 : Elips
3 : Daire
4 : Yuvarlatılmış dikdörtgen
5 : Yuvarlatılmış kare
Shape.Borderstyle = (Çerçeve tipi)
0 : Yok
1 : Sürekli
2 : Kesikli çizgi
3 : Noktalı çizgi
4 : Çizgi-nokta şeklinde kesikli çizgi
5 : Çizgi-nokta-çizgi
6 : Sınır çizgisi şeklin içinde kalır
Shape.Fillstyle = (İçinin doldurulma şekli )
0 : Tamamen dolu
1 : Boş
2 : Yatay çizgiler
3 : Dikey çizgiler
4 : Yatay ve dikey çizgiler
5 : Sola yatık çizgiler
6 : Sağa yatık çizgiler
7 : Baklava Tepsisi
Backstyle özelliğinin değerini 0 yaparsanız; çizilen şeklin içi saydam olacaktır. Yok "Ben saydam istemiyom" deseniz,o zaman 1 yapın ki; içi renkli olsun.
Borderstyle ve Fillstyle için yukarı bakın, bakın ki, o kadar şeyi yeniden yazmayayım. Bana da yazık değil mi?
Bunlar basit şekiller çizerken kullanabileceğimiz nesnelerdi. İstatistik gibi bilgileri şemaya dökebileceğimiz MSCHART nesnesine geçmeden önce kod ile grafik çizebileceğimiz VB komutlarına da şöyle bir bakalım isterseniz.
Taa BASIC'den buyana kullandığınız, tanıdık, sevimli komutlardır bunlar. Gelin hasret giderelim.
Nesne.PSET (X,Y), Renk :X ve Y ile belirttiğiniz koordinata bir tane nokta koymaya yarar bu komut. İsterseniz renk de yazarak noktalarınızın renkli, cıvıl cıvıl olmalarını sağlayabilirsiniz. Nokta deyip küçümsemeyin. Her hangi basit bir parabolü bile line nesnesi ile çizemessiniz.
Nesne.Line (X1,Y1)-(X2,Y2),Renk,B(F) : Şirin dikdötgenler çizmek için kullanabilirsiniz. En sondaki "B" nin yanına "F" de koyarsanız, dikdörtgeninizin içi dolu olur. Koymassanız boş olur. Hem "F" koyma, hem de dolu olmasını iste! Var mı ööle !?! Geyiğe girmeden devam edelim sonra çıkamayız.
Nesne.Circle (X,Y),Yarıçap,Renk, Başlangıç açısı, Bitiş açısı, Basıklık
aireler ve elipsler çizmek için kullanırız biz bu komutu. Hem adı circle olduğu için hem de daire ve elips çizmek için bu komut kullanıldığı için. ( Burda çok ince bir espri var. Esasında MUDER kullanmıştı bunu. Önce anlamamıştım ama anladığımdan bu yana hep gülerim. Ah Gameshow Ah!)
Hepsini anlattım. Tabi böyle anlaşılmaz. Örnek gerek. Gerek de şimdi vaktim yok. Netcez şimdi? Ya uğraşın işte. Ya bakma öyle ağlamaklı, beni de ağlatacan. Tamam tamam örnek yapalım. Ama sadece nasıl kullanıldığı ile ilgili. Öyle ahım şahım bişe olmıyacak. Ha bir de Scale metotu var. Ona da bir bakalım da, örneğe öyle geçeriz.
Scale Metotu : Normalde ekranın sol üst köşesi (0,0) koordinatları ile belirtilir. Bu Scale ile ekran koordinatlarını kafanıza göre değiştirebilirsiniz. Mesela Scale (-500,250)-(500,-250) ile ekranın sol üst köşesini (-500,250), sağ alt köşesini (500,-250) olarak değiştirmiş olursunuz. Ekran şuna benzer (şimdi paintle falan uğraştırmayın böyle idare ediverin işte):
(-500,250) (500,250)
(0,0)
(-500,-250) (500,-250)i
Örnek_LineNesnesi : - Code:
-
Private Sub Command1_Click()
k = 1
For i = 1 To 10
Line1.BorderColor = QBColor(Rnd*15)'***
'*** Kullanılış şekli QBColor(Renk Kodu). Renk kodu 0-15 arasında yazılabilir.
Line1.BorderWidth = k
Line1.X1 = i * Rnd * 100
Line1.Y1 = i * Rnd * 100
Line1.X2 = i * Rnd * 100
Line1.Y2 = i * Rnd * 100
k = k + 1
If k = 6 Then k = 1
For f = 1 To 300
Next f
Next i
End Sub
Örnek_LineKomutu : - Code:
-
Private 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
VB'de Menüler tools menüsünden yada formun üstüne sağ tuşla tıklayınca çıkan yerden Menü Editörü seçin.
Aşağıda resmini gördüğünüz menü editör, programlarınıza form menüleri eklemeye yarar. Cümlem her ne kadar anlamzsız gibi gözükse de, benim bunun hemen ardından dosya, düzen, ara... gibi demem de bu karışıklığa tuz biber ekmiş olup, lafı uzatmama kararı vermeme neden olmuştur. Yani kısaca, neredeyse her programda olan ve alt tuşuna basınca seçilebilir hale gelen ve mouse'nin kullanımıyla bu tuşsuz bile çalışan menüleri, şu editör sayesinde siz de yapabilirsiniz.
Editörün üzerindeki düğme ve seçenekleri teker teker açıklamak yerine, bir menü oluşturarak olayı daha iyi anlayabileceğinizi düşündüm. Kabul edenler... etmeyenler... Kabul edilmiştir!
İlk Menümüz Mesela şu an benim bilgisayarımda arka plânda açık bulunan internet explorer 3.0'daki (Gülmeyin. CD sürücümü sattım da. 4.0 yükleyemiyorum ehe.) gibi bir menü hazırlayalım.
Bir bakalım... Önce "Dosya" var. Caption kısmına "Dosya" yazalım. Tamam. Şimdi de her kontrolde olduğu gibi buna da bir isim verelim. "mnDosya" bunun içi uygun bir isim. Sitede ki "25 Altın Kural"'ı zahmet edip de okuduysanız, isimlendirme de açıklayıcı olmak gerektiğini anlamışsınızdır. Kontrolleri isimlendirirken, hangi nesne olduklarını da belirtirseniz sonradan başınız ağrımaz. Mesela text box ları adlandırıken "txtİsim" gibi yazlışla sonradan çekilebilecek bir çok sıkıntıdan kurtulmuş olursunuz. Bu kısa tavsiyeden sonra devam edelim. İsmi yazdıktan sonra Next (sonraki) tuşuna basın. Tamadır. Artık mndosya hazır. Şimdi sıra mnDosya'nın alt menülerinde. Yani mnDosya2ya basınca açılacak olanlar da. Editörün üstünde, hemen Next tuşunun yanında 4 tane ok var. Gördünüz mü? İşte onlardan sağ arafı gösterene bir kez tılayın. Ne oldu? Dosya'nın altına üç tane nokta koyuldu değil mi? Bunu anlamı mnDosya'nın altına bir kez girdik demektir. (OHA BE! Bir insan ancak bu kadar yanlış anlamaya müsait bir cümle kurabilir yani!!!) Bilirsiniz genelde bütün programlarda Dosya menüsünde aynı seçenekler bulunur. biz de öyle yapalım. Sırada "Yeni" var. Aynen demin olduğu gibi caption kısmına "Yeni", name kısmına da "mnYeni" yazın. Sonra da Next. "Aç" ve "kaydet" ve "Çıkış" kısmını da kendiniz yapın bakim. Bu arada ben de çayın altına bir bakayım...
Kod Yazma Artık Menümüz hazır. Sırada menü seçeneklerine kod eklemek var. Tasarım esnasında olsanız dahi, fare ile menülere ulaşabilrsiniz. Şimdi formunuzdaki hazırlanmış olan menüyü açık "Çıkış"'ı seçin. Tıpkı diğer kontrollerdeki gibi "_click()" porsedürüyle birlikte kod penceresi açılacaktır. Komut olarak "end" yazalım.
- Code:
-
Private Sub mnÇıkış_Click()
End
End Sub
Şimdi programı çalıştırın ve menüyü test edin. Düzgün çalışıyorsa her şeyi doğru yapmışsınızdır. Değilse bir şeyler yanlış yapılmıştır. (Basit bir mantık, öyle değil mi?)
İncelikler Yüzünden * Yazımı bitirmeden önce şu alt menü olayına biraz girmek istedim. Aynı seviyede olan menü düğmelerinin girinti kısımlarının da aynı olmasına dikkat edin. Mesela az önceki menüye bir de düzen kısmını ekleyeceğinizi varsayalım. Bu durumda "Düzen", "Dosya" ile aynı seviyede olacaktır. Çünkü ikisi de en üst düzey ve ekranda görünüyorlar. Şu halde "Çıkış" tuşunu da yaptıktan sonra girintiyi kaldırmanız gerekecektir. Çünkü mnDosya'da hiç bir girinti yoktu. Bunu içinde o oklardan sol tarafı gösterene basın. Sanırım anlamışsınızdır.
* Menü oluşturken caption kısmına "-", name kısmına da herhangi bir şey yazın. Bakalım ne olacak?
* Editördeki shortcut kısmı, seçeneklere kısayol tuşu eklemek içindir. Mesela "Çıkış" seçip shortcut kısmından da CTRL+A yı seçerseniz, program çalışırken bu tuş kombinasyonu, seçeneğin _clik() prosedürünü gerçekleştirecektir (Lafı da amma uzattım ha. Zaten adı üstünde, Kısayol...)
* Menüdeki seçeneklere isim yazarken -komut düğmelerinde de olduğu gbi- ismin belli bir harfinde önce "&" işaretini koyarsanız, program çalışırken ALT tuşuyla birlikte o harfe basıldığında seçenek seçildiğinde gerçekleşmesi gereken olay cereyan edcektir.
* Editörü incelediğinizde "checked" yazılı bir checkbox göreceksiniz. Bununla menü seçeneklerinize "seçilebilme" özelliği eklersiniz. Tıpkı bir checkbox gibi yani. aşağıdaki örnekle bunu daha iyi anlarsınız sanırım.
Minik Bir Örnek Yandaki gibi bir menü hazırlayıp, text1 isimli bir metin kutusu yerleştirin. Örnek yalnızca checked özelliğini anlatmak için yapılmış olup, aç, kaydet gibi menü seçenekleri boş bırakılmıştır.
- Code:
-
Private Sub Form_Load()
mnKalın.Checked = False
mnYatık.Checked = False
End Sub
Private Sub mnÇıkış_Click()
End
End Sub
Private Sub mnKalın_Click()
Text1.FontBold = Not(mnKalın.Checked)
mnKalın.Checked = Not(mnKalın.Checked)
End Sub
Private Sub mnYatık_Click()
Text1.FontItalic = Not(mnYatık.Checked)
mnYatık.Checked =Not(mnYatık.Checked)
End Sub
Veri Tabanları Bilgileri saklamanın kolay yollarından bir tanesidir bu veri tabanları. Visual Basic sayesinde veritabanlarını oluşturmak ve kullanmak oldukça kolaylaşmıştır.Eskiden uzuuun kodlarla dosyalarla uğraşmak, onlara erişmek, bir bilgiyi aramak, sıralamak silmek için baya bir cebelleşmeniz (bizim memlekette böyle derler) gerekirken, Vb sayesinde artık çok daha az bir zahmetle basit depolama programları oluşturabiliyoruz. İsterseniz ben lafı hiç uzatmayayım, basit bir program yaparak her şeyi adım adım anlatayım.
Öncelikle bir veri tabanına ihtiyacaımız var. Bunun için VB5.0 ile birlikte gelen Visual Data Manager'ı kullanacağız.Add-Ins menünde o zaten sizi bekliyor. Tamam mı? Seçtiniz mi? Güzel. Şimdi, File/New.../Microsoft Access/Version 7.0 MDB yi seçerek yeni bir veri tabanı oluşturalım.Personel.mdb adı ile kaydetsin.
Database Window da bulunan "Properties" in üstüne sağ tuşla tıklayıp, "New_Table" i seçin.İsim olarak birşeyler yazın işte. Ben nedense hep "personel" yazarım. Bu seferlik siz de öyle yapın ki, ileride isim karışması olmasın. Tamam. Artık personel adında ki veri tabanımıza alan (field) eklemenin zamanıdır. Hangi bilgileri saklamak istiyorsanız alanları ona göre seçin. Mesela biz şimdi isim, soyisim ve telefon numaralarını saklayabileceğimiz bir veritabanı yapalım.
Bunun için ilk olarak "Add Field" tuşuna basın.İsim olarak "ad" yazıp enter tuşuna basın. Böylece "ad" isminde bir alanımız veri tabanına eklenmiş oldu. Sonra "soyad" ve "telefon" isminde de iki tane oluşturup "close" ye basın.Field list yazan bölümde oluşturduğunuz alanları gördünüz mü?"Build Table" tuşuna basın. Ve TaTa! Artık sizin de bir veri tabanınız oldu. Veri tabanı deyip geçmeyin. Buna sahip olamayanlar da var. Neyse cıvımayayım...
Yine ilk ekrana döndük. Ama bir farkla: "Database window" da artık propertiesin altında personel de var. Şimdi personel'e sağ tuşla basıp, "Open" ı seçin.Gelen yeni formda Add tuşuna basıp bir tane yeni kayıt yapalım isterseniz. Tuşa basın ve ad olarak "Hande", soyad olarak "Ataizi", telefona da "02123457687" yazın. (İstersen bir ara. Denemesi bedava). Bunları yazdıktan sonra "Update" ye basıp kaydedelim. EvEvet işte kaydettik. Bu kadar kolay. Bir kaç tane daha yapın. Zararı olmaz, hem de pratik yapmış olursunuz.
Pekâla şimdi Visual Data Manager dan çıkıp bizim eski dost VB ye geri dönelim.Formun üstüne tetxbox,label ve DataObject yerleştirip şekildeki gibi yapın bakalım.
İnşAllah pratik yapın dediğimde beni ciddiye alıp bir kaç tane daha yapmşsınızdır. Yapmadıysanız gidin yapın. Haa visual Data manager'e girince, önceden yapılmış bir veri tabanı dosyası çağırmak için open new database seçeneğini kullanacağınızı biliyorsunuz değil mi?
Şu en altta duran ve üstünde "Data1" yazan şey var ya, işte o bizim data object. Siz bi tanışa durun ben yemeğin altını yakıp geleyim(Ciddiyim)... Geldiim. Oo siz baya bir samimi olmuşsunuz. Allah muhabbetinizi artırsın. ama işimiz var. Şşşt! Olm dataobject geç işinin başına!!
Tamam. Şimdi özellikler pencerini kullanarak Data1 nesnesinin "DatabaseName" kısmına gelin. anladığınız gibi; buradan kullanacağımız veri tabanının yolunu gösteriyoruz. Şo yaptığımız "personel.mdb" yi gösterin bakiim. EvEvet. Daha sonra yine özellikler pencerinde Data1 in "RecordSource" kısmına tıklayıp "personel" i seçin. Bu sayede veri tabanımız ile, Data objecti tanıştırmış olduk. Gerisi onlara kalmış. Biz üstümüze düşeni yaptık. Ama daha bitmedi. Şu yukarıda duran üç tane textbox okeye dördüncü arıyorlarken bizim data objecti görüyor ve davet ediyorlar. Şimdi onları da tanıştırmalıyız. Bunun için text1 nesnesini seçip properties penceresine gidelim. DataSource kısmına tıklayıp Data1 i seçin. Hemen üstteki DataField kısmından da "ad" ı seçin. Ne yaptığımızı anladınız mı? Artık text1 data1 in bağlı lduğu veri tabanındaki alanlardan "ad" ile bağlanmış oldu. Şimdi diğer iki TextBox ı da soyad ve telefon ile bağlayın.
Herşey yolunda gittiyse programı çalıştırın. Text kutuları Hande Ataizi'ni ile ilgili bilgileri gösteriyor olmalı. Şimdi Data1 deki düğmelere bir basın bakalım. Gördün mü? değiştiler. Yani başardın! Sen bir harikasın! Müthişsin!
Kaynak - TıklaVisual Basic Hakkında Küçük Bilgiler :1-Pointer::(Fare İmleci)Bu araç ile form üzerindeki araçların boyutlarını , yerlerini ve buna benzer özellikleri yapabiliriz.
2-PictureBox::(Resim Kutusu)Resim dosyalarının görüntülenmesinde kullanılır.
3-Label(Etiket)Form üzerinde kullanıcı bilgilendirmek amacı ile yazılması gereken yazılar bunla yazılır.
4-TextBox(Metin Kutusu)Kullanıcıdan veri almak için kullanılarn kutucuklardır.
5-Frame(Çerçeve)Form üzerindeki kontolleri gruplamak için kullandığımız bir aracımızdır.
6-CommandButton(Komut Butonu)En çok kullanılan araçlardan biris olup kullanıcının bu butonlara tıklaması ile kodların çalışması sağlanır.
7-CheckBox(Onay kutusu)Bu kutular kullanıcının herhangi bir konu yada sizin belirlerdiğini bazı şeyleri işatlemesi için kulanılır.Örneğin::Bir program yazdınız ve bazı ayarlar var bunlardan bazıları windows açıldığında bu da açılsın, çalıştığında simge durumunda çalışsın,otomatik güncelensin gibi bazı ayarlar kullanıcı bunların içinden kendine uygun olan seçnekleri seçer ve kaydeder.
8-OptionButton(Seçenek Kutusu)Bu ise checkbox gibidir yani seçim yapmaya yarar.Fakat bunda sadece bir seçenek seçilebilir.Nasıl;programda cinsiyet bölümü olsun erkek bayan diye bunlardan birisinin seçilmesi gerekir işte bu durum da bu araç kullanılır.
9-ComboBox(Açılır kutu)Kenarında bulunan butona basıldığı zaman içinde bulunan verileri görüntüler.
10-ListBox(Liste Kutusu)İçerisine yazdığımız verileri listelmeye yarar.
11-HScrollBar(Yatay Kaydırma Çubuğu)Formumuzu yatay kaydırmak için kullanılır.
12-VScrollBar(Dikey Kaydırma Çubuğu)Formumuzu dikey kaydırmak için kullanılır.
13-Timer(Zamalayıcı)Bunu bir örnekle açıklayalım.Örneğin;programda kullanıcı girişi var fakat kullanıcı şifresini belirli bir sürede girmek zorunda bu durumda bu timer devreye girer.
14-DriveListBox(Sürücü Listesi)Bilgisayarımızdaki sürücülerini listelemek için kullanılır.
15-DirListBox(Dizin Listesi)Bilgisayarımızdaki dizinleri listelemek için kullanılır.
16-FileListBox(Dosya Listesi)Dosyaları listelemek için kullanılır.
17-Shape(Şekil)Form üzerine şekil çizdirmek için kullanılır.
18-Line(Çizgi)Formumuza çizgi çizmek için kullanılır..
19-Image(Resim)Resim görüntülemek için kullanılır.PictureBox dan daha az özelliğe sahiptir.
20-Data(Veri İşlemleri)Programda kayıt işlemelerini denetler.