|
|
![](//theme.webme.com/designs/red/images/cont_top.gif) |
Veri Tabanı
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.
Başlıyoruz...
![](http://www.acemiler.net/img/leer.gif)
Veri Tabanları
|
Ö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.
![](http://www.acemiler.net/images/dersler/visual/images/5.jpg)
|
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. Eveet 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.
![](http://www.acemiler.net/images/dersler/visual/images/6.jpg)
|
İ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. Eveet. 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!
Siftah benden bereket Allah'tan. Hayırlısı ile başladık, gerisi gelir elbet. Şimdilk bu kadar yeter sanırım. Yukarıda yazanları, başarıncaya kadar tekrar edip, uğraş. Yap bişeler işte ya. İşin ne? Bir kaç güne kadar kod içinden kaıt yazma, silme gibi işlemler de yaparız merak etme
|
visual basic
Visual Basic 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ı
Gayet basit değil mi?. 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.
![](http://www.acemiler.net/images/dersler/visual/images/1.jpg)
|
|
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.
![](http://www.acemiler.net/images/dersler/visual/images/2.jpg)
|
|
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. İyi de nedir bu form?
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, indexleri 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
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.
-----------------------------------------------
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ı
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 (daha iyi çeviremedim))
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)
|
|
Örnek_LineNesnesi :
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 :
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
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.
Tanışma
Yanda 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.(Kısaca ?!?)
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.
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 (Sert@p Erener)
* 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. Haberiniz olsun.
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
|
![](http://www.acemiler.net/images/dersler/visual/images/4.jpg)
|
|
Veri Tabanı
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.
Başlıyoruz...
![](http://www.acemiler.net/img/leer.gif)
Veri Tabanları
|
Ö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.
![](http://www.acemiler.net/images/dersler/visual/images/5.jpg)
|
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. Eveet 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.
MSFlexGrid
VB'de Menüler
|
MSFLEXGRID (Izgara) kontrol Nesnesi
Izgarayı kullanmak kolaydır. Zor olan mangalı yakmak bence.
Yaklaşık kırkbeş dakika sonra kaşlarının bir kısmı tutuşmuş, kapkara bir halde ve "yaktım! yaktım!" naralarıyla mutfağa girdiğim düşünülünce bu işlerde ne kadar becerikli olduğum ortaya çıkıyor sanırım.
Ama sizin FlexGrid nesnesini kullanmak için mangallla falan uğraşmanıza gerek yok. projects/ components'ı açıp Msflexgrid'i seçmeniz yeterli (konuyu nasıl da bağladım ama!).
|
Şekil itibariyle yukarıdakine benzeyen ızgara kontrolü (hızlı yüklensin diye resim koymadım), hücre adı verilen yapılardan oluşur. Orada gördüğünüz her dikdörtgene hücre adı verilir. Bu hücrelerin içine domates, biber, pirzola, sakat at...vb koyup kızartamazsınız ama metin, ikon hatta resim bile koyabilirsiniz. Metin ile bitmap karıştırıp türlü bile yapabilirsiniz. Hatta ve hatta bu hücrelerin bir kaçını fare ile seçerek grup bile yapabilirsiniz (kötü tarafa çekilebilecek bir cümle oldu).
Özellikler
Şekil olarak neye benzediğini gördünüz ama dış görünüş o kadar önemli değildir. Yakışıklı bulup hemen atlamayın. Önemli olan kişisel özelliklerdir. Gelin bir de onlara bakalım.
Height, Weight
|
Seçili olan bir hücrenin sırasıyla yüksekliğini ve genişliğini belirler.
|
Cols, Rows
|
Izgaranızdaki sütun (cols) ve satır (rows) sayısını ayarlamanız içindir. Tasarım aşamasında veya pişirirken ayarlayabilirsiniz. Yukarıdaki ızgarayı gözönüne alırsak; ızgara.cols = 4: ızgara.rows=4
|
ColWidth, RowHeight
|
Belirleyeceğiniz bir kolonun genişliğini veya belirleyeceğiniz bir satırın yüksekliğini ayarlarsınız.Yukarıdaki ızgarada 3. sütun diğerlerinden daha genş. Bunun için; ızgara.ColWidth(3)=200
|
Col,Row
|
Izgaranın içinde bir hücreyi seçerken bir nevi koordinat belirtmeye yarar bunlar. ızgara.Col=3:ızgara.Row=2 komutları ızgaranın 3. sütun ve 2. satırın kesiştiği yerdeki hücreyi seçer.
|
FixedCols, FixedRows
|
Hani bu tür tablolarda genelde gri renkte olup, hiç değişmeyen bölümler vardır ya, işte onları bu özellikler ifade eder.Tasarım aşamasında kontrolünüze sağ tuşla basıp, özellikler'i seçerseniz bunların sayısını kolayca ayarlayabilirsiniz. üstlerinde yazacak metinleri ise Form_Load olayı içerisinde halledersiniz.
|
Text
|
Bir hücrenin içinde yazan metni ifade eder. Yani hücrelere bir şeyler yazmak için de bunu kullanacağız.
|
CellAlignment
|
Bir hücrenin iç hizalama durumunu ayarlamaya yarar. Hizalama derken umarım metnin ortalanmış, sola yaslanmış, sağa yaslanmış gibi özelliklerinden bahsettiğimi anlamışsınızdır. 0-9 arası bir atama gerçekleştirebilirsiniz. Bi zahmet hepsini deneyin hem pratik yapmış olursunuz. ızgara.CellAlignment = atama%
|
ColAlignment
|
Yukarıdaki özelliğe benzer fakat bu sefer hizalama tek bir hücrede değil seçili olan tüm sütunda uygulanır. Izgara.ColAlignment(5) = 0 komutu ile ızgaranın 5. kolonundaki hizalama sol üst taraf olarak ayarlanacaktır.
|
GridLines
|
Hmm... Izgara demirlerinin cinsini belirler desem... Evet bir bakıma böyle. Hücre sınırlarını oluşturan çizgilerin tipini belirlemek için kullanılır. 0-4 arası atama yapabilirsiniz. (Deneyin...işiniz ne?)
|
GridLineWidth
|
Hücre çizgilerinin kalınlığını belirler.
|
ScrollBars
|
Teknoloji hızla gelişiyor. Artık ızgaraların kaydırma çubuklularından çııyor. Siz de bu kolaylıktan yararlanmak isterseniz 0-3 arası bir atama yapın ve beğendiğinizi alın! (0:yok, 1:yatay, 2:dikey, 3:her ikisi de. bu seferlik denemeye gerek kalmadı. Hadi bu kıyağımı unutmatın).
|
CellSelected
|
boolean tipte bir özelliktir. Yani doğru/ yanlış. Bir hücrenin seçili olup olmadığını anlamaya yarar.
|
ColSel, RowSel
|
Sizlere hücreleri fare ile seçip grup yapabileceğiniz söylemiştim. sanılanın aksine bu grup olaylarının kanuni ve ahlaki bakımdan hiç bir mahsuru yoktur. Her isteyen yapablir ve yaptırabilir. Tabi bu durumda hangi hücrelerin seçili grup içinde yer aldığınnın bilinmesi, veya belirlenmesi gerekir. işte bunun için kullanılır bu iki özellik. Col ve Row ile seçtiğiniz hücreden başlayıp, colsel ve rowsel ile seçili olan hücreye kadar bir bölge seçilir. Şekildeki gibi bir yeri seçmek için;
ızgara.col=1:ızgara.row=1 'Seçmeye başlayacağımız yeri belirliyoruz.
ızgara.colsel=2:ızgara.rowsel=2' Seçmenin yapılağı alan, bu hücreye kadar olan alandır.
|
Clip
|
Izgaranın içinde seçili olan bölgenin içeriğini String (metin) olarak bir değişkene aktarmaya yarar. Bildiğiniz gibi string türü değişkenlerle toplama yapıyorsanız, sonradan gelen metin diğerinin ucuna eklenir.Diyelim ki ColSel, RoeSel ile bir bölge seçtiniz ve seçtiğiniz hücrelerde sırasıyla "erkan","ayça","ali","sibel" yazıyor. Izgara.clip=a$ yazarsak a$ değişkenin değeri: "erkanayçaalisibel" olur. Anladınız di mi?
|
Picture
|
Izgaranın görünüşünün resmini çekmeye yarar. Bu şekilde ekrana sığmayan satır ve sütunlara da ulaşabilirsiniz. Resmi clipboard'a gönderip sonradan ne yapacaksanız o iş için saklayabilirsiniz.
|
PictureType
|
Picture ile elde edeceğiniz resmin tipini belirlemeye yarar.0 yüksek kalite, 1 düşük kalite içindir. pek de öyle önemli bir fark yok. ama yine de ben 1 seçeneğini öneririm. Hem hafıza hem yazıcı için.
|
CellPicture
|
Aktif hücreye görüntü yüklemek için kullanılır. LoadPicture ile yükleyebilir veya başka bir kontrolden çağırabilirsiniz. Izgara.Cellpicture = LoadPicture("c:belgelerimkedi.bmp") gibi bir komutla annenizin görmesini istemeyeceği bir resim yükleyebilirsiniz. Başka bir yol da; ızgara.CellPicture = PictureBox.picture. CellPictureAlignment ile resmin hizalanması ile ilgili ayarları yapabilirsiniz.
|
Sort
|
En önemli özelliklerden biri. Seçilen satırları belirtilen kriterlere göre sıralamak için kullanılır. Bunu denemeniz zor olacağından biraz açıklıyayım.
0 Sıralama işlemi yapılmaz. (o zaman niye sort komutnu kullanayım ki di mi?)
1 Artan sırada sıralama. Genel
2 Azalan sırada Sıralama. Genel
3 Artan sırada sıralama. Sayısal
4 Azalan sırada sıralama. Sayısal
5 Artan sırada sıralama. Metin (Büyük-küçük harf duyarsız)
6 Azalan sırada sıralama. Metin (büyük-küçük harf duyarsız)
7 Artan sırada sıralama. Metin (Büyük-küçük harf duyarlı)
8 Azalan sırada sıralama. Metin (Büyük-küçük harf duyarlı)
9 Özel. Compare olaynın gerçekleşmesine sebeb olur.
|
Özelliklerin önemli olanları bu kadar. örnekleri şimdi mi yapalım yoksa sonunda mı? hmm. Hızımı almışken devam edeyim de sonra bakarız örneklere.
Olaylar ve Metotlar
Bir nesne olmasındandır ki, bunun da kendine özgü olay ve metotları vardır. ("Ne yani ne olayı ne! kondu işte kondu!" Cem Yılmaz. (Bilenler anlar!))
Compare
|
Sıralama (sort) özelliği 9 olarak atandığında gerçekleşen olaydır. Ben bişe anlamadım. anlayan varsa bana da anlatsın (kimse mükemmel değildir ve kimse her şeyi bilemez!).
|
EnterCell, LeaveCell
|
Hücreye giriş-çıkışları kontrol eder (ehe).
|
Scroll
|
Kaydırma çubukları tarafından kaydırıldığında bu olay olur (bundan sonra bunun kadar aşikâar olaylar anlatılmayacaktır, haberiniz olsun!)
|
Clear
|
Izgaranın her türlü içeriğii temizlemek için kullanılır. Satır ve sütun sayısında bir değşiklik olmaz.
|
AddItem
|
Bir gride satırlar eklemek için kullanılır. ızgara.addItem içerk$,[index%] .index% kullanıma bağlı olup eklenecek satırın yerini belirtir. İçerik$ ile belirtilen metin (string), yeni satırn ilk sütununda yer alır. Diğer sütunlara da bilgi yazdırılacak ise bu char(9) (tab) karakteri ile sağlanabilir. içerik$ = "örnek" & char(9) gibi...
|
RemoveItem
|
Bir gridden satır silmek için kullanılır. Izgara.RemoveItem 5 komutu ile 5 nolu satır ızgaradan silinecektir.
|
Oh be sonunda hallettik bu işi de. şimdide verdiğim sözü tutp bir kaç örnek yerleştirelim sayfaya.
Örnekler
1. Picture - PictureType
Izgaranın içeriğini clipboard'a aktarmak ile ilgili bir örnek (kimse de anlamamıştı! ha). Adı grid1 olan bir ızgara ve bir command button yerleştirip kodu yapıştrın. Tuşa bastıktan sonra paint programını (yada resim yapıltırabileceğiniz her hangi bir program) çalıştırıp ctrl+ins yapın. Kodun gereksiz zahmetler içerdiğini biliyorum. Maksat size bazı komutları tanıtmak. Select case kalıbını bilmeyenler varsa kodu iyi incelesinler. clipboard nesnesine ise ayrıca değinilecektir.
Private Sub Command1_Click()
Clipboard.SetData grid1.Picture
End Sub
Private Sub Form_Load()
grid1.Cols = 2
grid1.Rows = 6
grid1.ColWidth(0) = 1120
grid1.FixedRows = 1
grid1.BackColor = vbBlue
For sutun = 0 To 1
For satir = 0 To 5
Select Case sutun
Case 0:
Select Case satir
Case 0: Text = "Oyuncu"
Case 1: Text = "Şifo Mehmet"
Case 2: Text = "Ahmet D."
Case 3: Text = "Ayhan"
Case 4: Text = "Hakan Şükür"
Case 5: Text = "Rüştü"
End Select
Case 1:
Select Case satir
Case 0: Text = "Puanlama"
Case 1: Text = "9"
Case 2: Text = "8"
Case 3: Text = "7"
Case 4: Text = "8"
Case 5: Text = "9"
End Select
End Select
grid1.Col = sutun: grid1.Row = satir
grid1.Text = Text
Next satir
Next sutun
End Sub
2. Sort
Sıralama ile ilgili küçük bir program.
Private Sub Command1_Click()
grid1.Sort = 4
End Sub
Private Sub Form_Load()
grid1.FixedCols = 0
grid1.FixedRows = 0
grid1.Cols = 1
grid1.Rows = 5
End Sub
Private Sub grid1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii > 47 And KeyAscii < 59) Then MsgBox "lütfen bir sayı giriniz"
grid1.Text = grid1.Text + Chr$(KeyAscii)
End Sub
Yaptığım en uzun sayfa oldu. Web tasarımı ile ilgili her yerde uzun sayfaların ziyaretçiyi sıktığından bahsediliyor. Ama şu durumda yapacak pek bir şeyim yoktu. Zaten buraya bir şeyler öğrenmek için gelmiş olan siz, bilginin fazlalığından şikâyet edecek değilsiniz ya
|
|
|
|
![](//theme.webme.com/designs/red/images/cont_bottom.gif) |
|
|
|