Formlarla Calışmak,
Hazırladığımız projelerde coğu zaman kullanıcı ile iletişim kurabilmek icin birden fazla forma ihtiyac duyarız. Visual Basic bu konuda bize yardımcı olmakta, projelerimize birden fazla form eklememize imkan sağlamaktadır. Projeye eklenen her yeni forma Visual Basic bir isim vermektedir. Yeni bir proje başlattığımızda Visual Basic bir tane form oluşturmakta ve buna Form1 adını vermektedir. Daha sonradan bizim eklediğimiz formlar ise sırası ile Form2, Form3 gibi isimler alacaktır.
Bir projeye yeni bir form eklemek icin Project menusunu kullanabileceğimiz gibi Project Explorer penceresine sağ tıklayarak gelen menuden Add seceneğini kullanarak da yeni bir form ekleyebiliriz. Bu komutlar verildikten sonra Visual Basic bize aşağıdaki gibi bir pencere sunacak.
Bu pencerede Visual Basic ile beraber gelen bircok hazır form şablonu bulunmaktadır. Eğer istersek bu şablonlardan birini secerek projemize ilave edebilir veya Form seceneğini kullanarak boş bir form ekleyebiliriz.
Projemize yeni bir form ekledikten sonra, eklenen yeni form adı Project Explorer penceresinde gorulebilir. Projemizde birden fazla form varsa eğer, hangi formla calışmak istiyorsak Project Explorer penceresinden formu secip View Object butonuna basarız.
Eklediğimiz yeni formu projemize kaydetmek icin File-Save Form komutunu verebiliriz. Karşımıza gelen pencereden formun bulunmasını istediğimiz klasor ve forma vermek istediğimiz ismi belirtiriz. Visual Basic formu .frm uzatısı ile kaydeder.
Visual Basic’de eğer bir forma ihtiyacımız kalmadı ise, o formu projemizden cıkarmak icin File-Remove Form komutunu kullanırız. Boylece form projeden ve Project Explorer penceresinden cıkartılır.
Visual Basic başka bir projede kullandığımız bir formu uzerinde calıştığımız projeye eklememize izin verir. Boylece tekrar tekrar aynı tip formları dizayn etmekle uğraşmak zorunda kalmayız. Add Form komutunu verdiğimizde gelen pencerede Existing sekmesini kullanarak istediğimiz .frm uzantılı dosyayı secerek projemize ekleyebilriz.
Program Kodları ile Formları Yonetmek
Projelerimizde yeni bir formu yuklemek icin aşağıdaki yontem kullanılır.
Load FormAdı
Burada FormAdı yerine yuklemek istediğimiz formun adını yazmalıyız. Daha onceden yuklenmiş olan bir formu gostermek icin ise aşağıdaki sozdizimi kullanılır.
FormAdı.Show Mode
Mode parametresine 1 verilirse form kalıcı olacak, 0 verilirse kalıcı olmayacaktır. Eğer mode bildirilmezse Visual Basic varsayılan değeri olan 0’ı kullanacaktır. Kalıcı formlara ornek olarak ekrana gelen mesaj pencerelerini verebiliriz. O pencerede kapanmadan başka bir işlem yapamayız.
Bir formu henuz yuklemeden Show yontemini kullanırsak Visual Basic once formu yukleyecek yani load olayını gercekleştirecek ardından ise formu gosterecektir.
Acık olan veya yuklenmiş olan bir formu kapatmak icin ise aşağıdaki yontemler kullanılır.
Unload FormAdı ‘Formu hafızadan kaldırır.
FormAdı.Hide ‘Formu gizli hale getirir. Form hala hafızada yer işgal eder.
Visual Basic’de birden fazla form ile calışırken projeyi calıştırdığımızda hangi formun ilk olarak calışacağını belirlemek icin Project –Project Properties komutunu kullanmalıyız. Bu komutu verdikten sonra karşımıza yukarıdaki gibi bir pencere gelecek. Gelen pencereden Startup Object adlı acılan liste kutusundan projenin hangi form ile acılacağını belirleyebiliriz.
MDI Formlar
Hazırlayacağımız projelerde genellikle birden fazla form kullanacağız. Bu formlardan birisi Ana Formumuz olacak, diğerleri ise bu form icerisinde calışan Yavru Formlar olacaktır. Orneğin Microsoft Word, Microsoft Excel bu şekilde tasarlanmış uygulamalardır. Word ve Excel icerisinde birden fazla form acılmaktadır. Uyguluma simge durumunda kucultuğunde veya kapatıldığında icerisinde bulunan formlar da otamatik olarak kapanmaktadır. Visual Basic’de bu tip Formlara MDI From ve MDI Child Form adı verilmektedir.
Projemize bir MDI Form eklemek icin Project-Add MDI Form komutunu veririz. Bir projede en fazla bir tane MDI Form olabilir. Projemizde bulunan diğer formları ise yavru form olarak tanımlamak icin Properties penceresinden MDIChild ozelliklerine True değerini atamamız gerekir. MDI Form aşağıdaki ozellikler dışında diğer formlarla aynı işlevleri sağlarlar.
· Butun yavru formlar ait oldukları MDI Form icerisinde gorulurler.
· Bir yavru form simge durumunda kucultuğunde, gorev cubuğunda değilde ait olduğu MDI Form icerisinde kucuk bir başlık cubuğuna donuşur.
· MDI Form simge durumunda kucultuğunde, yavru formlarda kendisi ile beraber simge durumunda kuculur ve hepsi gorev cubuğunda tek bir duğme olarak gosterilirler.
· Butun yavru formlarda bulunan menuler, MDI Formun menu cubuğunda gorulur.
Visual Basic’de Cizim
Visual Basic’de cizim yapabilmek icin Line, Circle, Pset yontemlerini kullanırız. Bu yontemler Form ve Printer icin kullanılabilir. Form uzerine cizim yapılırken formun AutoRedraw ozelliğini True yapmalıyız.
Visual Basic’de cizim yaparken kordinat sistemini anlamalıyız. Cizim yaparken X ve Y kordinatlarını kullanırız. Y kordinatının yukarıdan aşağı inerken artar ve başlangıc değeri 0’dır. X kordinatı ise soldan sağa giderken artar ve başlangıc değeri 0’dır. Formun sol ust koşesi kordinatları 0,0 dır.
Form uzerinde cizim yapılacak alan formun ic kısımlarıdır. Width ve Height ozellikleri ise formun cerceveler ve başlık cubuğu dahil olmak uzere genişlik ve yuksekliğini verir. Formun ic yukseklik ve genişliğini ise ScaleWidth ve ScaleHeight ozelliklerini kullanarak oğrenebiliriz.
DrawWidth; Cizgi kalınlığını belirler.
Line Yonetimi
Line (X1,Y1) - (X2,Y2), renk;Line yontemi form uzerine cizgi cizmek icin kullanılır. X1 ve Y1 başlangıc, X2 ve Y2 bitiş noktasını belirler. Renk paramtresi secimlidir. Eğer istenirse ForeColor ozelliğine değer atayarakda renkli cizmler yapılabilir.
Private Sub Form_Load()
DrawWidth = 5
For i = 0 To Form1.ScaleHeight Step Form1.ScaleHeight / 10
Line (0, i)-(Form1.ScaleWidth, i), vbRed
Next
End Sub
Circle Yonetimi
Circle (MX,MY), R , renk; Circle yontemi merkezi MX ve MY olan cemberi R yarıcapında verilen renkte cizer. FillStyle ozelliği 0 yapıldıktan sonra ve FillColor ozelliğini kullanılarak icleri renklendirilebilir.
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
For i = 1 To 5
Circle (X, Y), i * 100, vbRed
Next
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
FillStyle = o
FillColor = Rnd * 16777216
Circle (X, Y), 500
End Sub
Pset Yonetimi
Pset(X,Y), renk; Pset yontemi X ve Y olarak verilen kordinatlara bir nokta koyar.
Private Sub Form_Load()
Dim x, y, i, r
r = ScaleHeight / 2
While r > 0
i = (i + 1) Mod 360
r = r - 1 'Yarıcağı surekli azalt
y = ScaleHeight / 2 + r * Sin(i * 3.1415 / 180)
x = ScaleWidth / 2 + r * Cos(i * 3.1415 / 180)
PSet (x, y)
Wend
End Sub
Yazıcı Kullanımı
Er yada gec projelerimizde yazıcıyı kullanmak zorunda kalacağız. Visual Basic ile yazıcıdan dokum alabilmek icin Windows ortamında tanıtılmış bir yazıcıya ihtiyac duyulur. Visual Basic yazıcı kullanımı icin Printer nesnesini sunar. Printer nesnesinin onemli ozellikler aşağıda verilmiştir;
Ozellik Tanımı
· DeviceName Yazıcı ismi bu ozellikle oğrenilebilir
· FontName Metinde kullanılacak yazı tipinin adını belirler
· FontSize Metinde kullanılacak yazı tipi boyutunu belirler
· FontBold Metinde kullanılacak yazı tipi biceminin kalın olup olmaycağını belirler
· FontItalik Metinde kullanılacak yazı tipi biceminin eğik olup olmaycağını belirler
· Page Basılmakta olan sayfa numarasını belirler
· CurrentX Yazdırma işlemine sayfanın ustunden ne kadar boşluk bırakılarak başlanacağını belirler.
· CurrentY Yazdırma işlemine sayfanın sol tarafından ne kadar boşluk bırakılarak başlanacağını belirler.
· ColorMode Yazdırmanın renklimi siyah beyazmı olacağını belirler.
· Copies Alınacak kopya sayısı belirlenir.
· Orientation Sayfanın yataymı, dikeymi kullanılacağını belirler
· Papersize Sayfa boyutunu belirler.
Yontem Tanımı
· Print Belirlenen metnin yazıcıdan cıkmasını sağlar.
· Circle, Line, Pset Yazıcıda cizi yapmayı sağlar
· NewPage Baskı işlemine yeni bir sayfadan devam edileceğini belirler
· EndDoc Baskı işleminin bittiğini belirler
· KillDoc Surmekte olan baskı işlemini sona erdirir.
Visual Basic’de kullanılan varsayılan olcu birimi Twip’dir. Bir Twip 1/1440 inc’e tekabul etmektedir. Buna gore A4 ebatındaki bir kağıtın boyutları Twip cinsinden 11909 X 16834’dur.
Printer.CurrentY = 300
Printer.CurrentX = 400
Printer.FontName = "Times New Roman"
Printer.Font.Size = 16
Printer.Font.Bold = True
Printer.Print "Brain Bilişim Akademisi "
Printer.EndDoc
Yukarıda kod ile ustten ve yandan ne kadar boşluk bırakılacağını belirledikten sonra yazı tipini ve bicemini belirledik. Ardından Printer.Print yazdırmak istediğimiz metni belirledik. Son olarak da Printer.EndDoc komutunu vererek yazdırma işinin son bulduğunu belirledik.
Circle, PSet gibi işlevler Printer nesnesiyle kullanılabilmektedir. Bu yontemler kullanılarak sayfalarımıza şekillerde cizdirebiliriz.
Yordamlar ve Fonksiyonlar
Visual Basic’de sık sık tekrarlanan kodlar yazmak yerine yordam ve fonksiyonlar oluşturulabilir. Oluşturulan bu yordam veya fonksiyonlar program icerisinde istenilen yerden ismi kullanılarak cağrılabilir. Bu sayede tekrar eden kodlar yazmaktan kurtulabiliriz. Eğer oluturduğumuz yordam geriye bir değer gonderiyorsa fonksiyon adını veririz.
Procedure (Yordam)
Projelerimizde şimdiye dek hep nesnelere ait olaylar uzerine kodlar yazdık. Eğer proje icerisinde bircok kez tekrarlanan kodlar varsa surekli olarak aynı kodları yazmak yerine bu işlemleri gercekleştiren yordam’lar yazarız. Visual Basic’de yazılan bir yodamı sadece yordam adı belirterek cağırabiliriz.
Visual Basic’de yeni bir yordam oluşturmak icin Tool-Add Procedure komutunu veririz. Bu komut verildikten sonra yandaki gibi bir pencere ile karşılaşırız. Name kutucuğuna yordama vermek istediğimiz adı yazarız. Type bolumunden tur seceriz. Yordamlar icin Sub Fonksiyonlar icin ise Function secilir. Scope bolumunden ise Public işaretlenir. Tum bu işlemler yapıldktan sonra Visual Basic formumuzun General Declarations bolumunde belirlediğimiz isimde bir yordam oluşturur. Eğer bu yordamın paramtre almasını istiyorsak parantezler icerisine değişkenler tanımlanır.
Yukarıda tanımlanmış bir yordam orneği var. Command1 nesnesinin Click olayı gercekleştiğinde yordam calışıyor
Function (Fonksiyon)
Fonksiyonların oluşturulması ve kullanılması tıpkı yordamlara benzer. Fonksiyonlar yordamlardan farklı olarak geriye bir değr gonderirler.
Bir fonksiyon oluşturmak icin Tool-Add Procedure komutunu veririz. Name kutucuğuna fonksiyona vermek istediğimiz adı yazarız ve Function seceneğini işaretleriz. Fonksiyonun sadece form uzerinde calışmasını istiyorsak Private Butun Projede calışmasını istiyorsak Public işaretlenmelidir. Tum bu işlemler yapıldktan sonra Visual Basic formumuzun General Declarations bolumunde bir fonksiyon oluşturur. Eğer bu fonksiyona paramtre vermek istiyorsak parantezler icerisine değişkenler tanımlanır. Parantez sonrasında ise fonksiyonun geriye dondureceği veri tipini belirlememiz gerekir.
Yukarıda tanımlanmış bir fonksiyon orneği var. Command1 nesnesinin Click olayı gercekleştiğinde fonksiyon calışıyor.
Diziler
Aynı tur bilgileri bellekte tutmak icin kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın avantajı, aynı tur bilgileri bir listede tutarak daha hızlı işlem yapılabilmesidir. Visual Basic'de dizi şu şekildedir
Ornek
Private Sub Form_Load()
Dim Ad(2) As String
Ad(0) = "Ali"
Ad(1) = "Ahmet"
Ad(2) = "Ebru"
End Sub
Option Base
Eğer diziyi 0’dan değilde 1’den itibaren başlatmak istersek diziyi tanımlamadan once Option Base 1 satırını eklemeliyiz.
Statik Diziler
Bu tip dizilerde kullanılacak yer sayısı sabittir. Bu tip diziler sadece tanımlandıkları modul icersinde kullanılabilirler. Statik dizi şu şekilde tanımlanabilir
Dim dizi_adı(sayi) As Veri_Tipi
Tum proje icinde kullanılacak bir dizi tanımlanmak isterse standart modulun General Declarations bolumunde yukarıdaki şekildeki gibi tanımlanmalıdır
Ornek
Option Base 1
Dim a(5) As Integer
Private Sub Form_Load()
a(1) = 10
a(2) = 20
End Sub
Private Sub Command1_Click()
Text1.Text = a(1) + a(2)
End Sub
Bu ornekte gorulduğu gibi projenin General Declarations kısmında a(5) dizisi tanımlanıyor. Bu dzi tanımlanmadan once dizi indislerinin 1 den itibaren başlıyacagını belirten Option Base1 satırı koda dahil edilmiştir. Form1 yuklendiğinde bu dizinin ilk elemanınna 10 sayısı ikinci elemanına 20 sayısı atanıyor. Eğer kullanıcı Command1 isimli butona tıklarsa dizinin ilk ve ikinci elemanları toplanarak Form uzerinde Text1 adlı nesnenin Text ozelliğine atanıyor. Yani TextBox'ın bu sayıların toplamını gostermesi sağlanıyor.
Dinamik Diziler
Bu tip dizilerde kullanılacak yer sayısında bir sınırlama yoktur. Bu tip diziler ilk başta aşagıdaki şekildeki gibi bir tanımlamaya ihtiyac duyarlar
Dim dizi_adı( ) As Veri_Tipi
Daha sonra bu dizi kullanılacak iken indis sayısını belirtmek gerekir bunun icinde aşagıdaki gibi bir tanımlama yapılmalıdır.
ReDim dizi_adı(boyut ) As Veri_Tipi
Artık bu veri dizisini projemiz icinde kullanabiliriz.
Ornek
Option Base 1
Private Sub Form_Load()
Dim s() As String
End Sub
Private Sub Command1_Click()
ReDim s(10) As String
s(1) = "Selam "
s(2) = "Ayşe"
Text1.Text = s(1) + s(2)
End Sub
Bu dizi tanımlanmadan once dizi indislerinin 1’den itibaren başlıyacagını belirten Option Base1 satırı koda dahil edilmiştir. Form1 yuklendiginde s adlı bir dinamik dizi tanımlanmaktadır. Kullanıcı Command1 isimli butuna tıkladığında, ReDim anahtar sozcuğu ile s dizisinin boyutu belirlenir. Bu dizinin ilk elemanınna "Selam " değeri ikinci elemanına "Ayşe" değeri atanıyor. Dizinin ilk ve ikinci elemanları birleştirilerek Form uzerinde Text1 adlı nesnenin Text ozelligine atanıyor. Yani TextBox'ın bu değerlerin toplamını gostermesi sağlanıyor.
Dim Ad As String * 20
ClipBoard
Windows işletim sistemi Kopyala-Yapıştır ve Kes-Yapıştır yontemini kullanırken ClipBoard nesnesinden faydalanır. Visual Basic’de ClipBoard’u nesnesini kullanabilmemiz icin birkac yontem sunar.
Clear
ClipBoard nesnesinin iceriğini temizler.
SetText
ClipBoard nesnesinin icerisine gidecek yazıyı belirler. Kopyalama işlemlerinde kullanılır.
GetText
ClipBoard nesnesinin icerisindeki yazıyının alınacağını belirler. Yapıştır işlemlerinde kullanılır.
SetData
ClipBoard nesnesinin icerisine gidecek resini belirler. Kopyalama işlemlerinde kullanılır.
GetData
ClipBoard nesnesinin icerisindeki resmin alınacağını belirler. Yapıştır işlemlerinde kullanılır.
Visual Basic’de Clipboard nesnesini kullanarak kes, kopyala ve yapıştır işlemlerini gercekleştiren yeni bir proje tasarlayalım. İlk once yeni bir proje başlatalım. Projenin formuna bir TextBox nesnesi yerleştirip Text ozelliğindeki değeri boşaltalım, Left ve Top ozelliklerinede 0 değerini verelim. Bu sayede formun sol ust koşesinde ici boş bir TextBox nesnesi oluşturmuş olduk. Ardından Menu editoru acarak yanda gorulduğu gibi menuleri ekleyelim. Formumuzu tasarladıktan sonra kes, kopyala ve yapıştır işlemlerini gercekleştirecek kodları Code Editoru acarak aşağıdaki gibi girelim. Eğer istenirse yeni menuler ilave ederek kullanıcının yazı bicemlerini değiştirmesinide sağlayabilirsiniz.
Private Sub Form_Load()
Text1.Text = ""
Text1.Left = 0
Text1.Top = 0
Text1.Width = Form1.ScaleWidth
Text1.Height = Form1.ScaleHeight
End Sub
Private Sub Form_Resize()
Text1.Width = Form1.ScaleWidth
Text1.Height = Form1.ScaleHeight
End Sub
Private Sub mnuCikis_Click()
End
End Sub
Private Sub mnuDuzen_Click()
If Text1.SelLength = 0 Then
mnuKes.Enabled = False
mnuKopyala.Enabled = False
Else
mnuKes.Enabled = True
mnuKopyala.Enabled = True
End If
End Sub
Private Sub mnuKes_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
Private Sub mnuKopyala_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText
End Sub
Private Sub mnuSecim_Click()
Dim Mesaj As String
Dim KarakterSayisi As Integer
KarakterSayisi = Text1.SelLength
Mesaj = "Secili karakter sayısı : "
Mesaj = Mesaj & Str(KarakterSayisi)
MsgBox Mesaj
End Sub
Private Sub mnuYapistir_Click()
Text1.SelText = Clipboard.GetText
End Sub
__________________
ders 5 (FORMLARLA CALIŞMAK )
Programlama0 Mesaj
●20 Görüntüleme
- ReadBull.net
- Programlama ve Yazılım
- Programlama
- ders 5 (FORMLARLA CALIŞMAK )