Hazırladığımız projelerde çoğu zaman kullanıcı ile iletişim kurabilmek için birden fazla forma ihtiyaç 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 için Project menüsünü kullanabileceğimiz gibi Project Explorer penceresine sağ tıkla***** gelen menüden Add seçeneğ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 birçok hazır form şablonu bulunmaktadır. Eğer istersek bu şablonlardan birini seçerek projemize ilave edebilir veya Form seçeneğini kullanarak boş bir form ekleyebiliriz.
Projemize yeni bir form ekledikten sonra, eklenen yeni form adı Project Explorer penceresinde görülebilir. Projemizde birden fazla form varsa eğer, hangi formla çalışmak istiyorsak Project Explorer penceresinden formu seçip View Object butonuna basarız.
Eklediğimiz yeni formu projemize kaydetmek için File-Save Form komutunu verebiliriz. Karşımıza gelen pencereden formun bulunmasını istediğimiz klasör 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 çıkarmak için File-Remove Form komutunu kullanırız. Böylece form projeden ve Project Explorer penceresinden çıkartılır.
Visual Basic başka bir projede kullandığımız bir formu üzerinde çalıştığımız projeye eklememize izin verir. Böylece 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ı seçerek projemize ekleyebilriz.
Program Kodları ile Formları Yönetmek
Projelerimizde yeni bir formu yüklemek için aşağıdaki yöntem kullanılır.
Load FormAdı
Burada FormAdı yerine yüklemek istediğimiz formun adını yazmalıyız. Daha önceden yüklenmiş olan bir formu göstermek için ise aşağıdaki sözdizimi 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 örnek olarak ekrana gelen mesaj pencerelerini verebiliriz. O pencerede kapanmadan başka bir işlem yapamayız.
Bir formu henüz yüklemeden Show yöntemini kullanırsak Visual Basic önce formu yükleyecek yani load olayını gerçekleştirecek ardından ise formu gösterecektir.
Açık olan veya yüklenmiş olan bir formu kapatmak için ise aşağıdaki yöntemler 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 çalışırken projeyi çalıştırdığımızda hangi formun ilk olarak çalışacağını belirlemek için 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ı açılan liste kutusundan projenin hangi form ile açı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 içerisinde çalışan Yavru Formlar olacaktır. Örneğin Microsoft Word, Microsoft Excel bu şekilde tasarlanmış uygulamalardır. Word ve Excel içerisinde birden fazla form açılmaktadır. Uyguluma simge durumunda küçültüğünde veya kapatıldığında içerisinde 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 için 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 için Properties penceresinden MDIChild özelliklerine True değerini atamamız gerekir. MDI Form aşağıdaki özellikler dışında diğer formlarla aynı işlevleri sağlarlar.
· Bütün yavru formlar ait oldukları MDI Form içerisinde görülürler.
· Bir yavru form simge durumunda küçültüğünde, görev çubuğunda değilde ait olduğu MDI Form içerisinde küçük bir başlık çubuğuna dönüşür.
· MDI Form simge durumunda küçültüğünde, yavru formlarda kendisi ile beraber simge durumunda küçülür ve hepsi görev çubuğunda tek bir düğme olarak gösterilirler.
· Bütün yavru formlarda bulunan menüler, MDI Formun menü çubuğunda görülür.
Visual Basic’de Çizim
Visual Basic’de çizim yapabilmek için Line, Circle, Pset yöntemlerini kullanırız. Bu yöntemler Form ve Printer için kullanılabilir. Form üzerine çizim yapılırken formun AutoRedraw özelliğini True yapmalıyız.
Visual Basic’de çizim yaparken kordinat sistemini anlamalıyız. Çizim yaparken X ve Y kordinatlarını kullanırız. Y kordinatının yukarıdan aşağı inerken artar ve başlangıç değeri 0’dır. X kordinatı ise soldan sağa giderken artar ve başlangıç değeri 0’dır. Formun sol üst köşesi kordinatları 0,0 dır.
Form üzerinde çizim yapılacak alan formun iç kısımlarıdır. Width ve Height özellikleri ise formun çerçeveler ve başlık çubuğu dahil olmak üzere genişlik ve yüksekliğini verir. Formun iç yükseklik ve genişliğini ise ScaleWidth ve ScaleHeight özelliklerini kullanarak öğrenebiliriz.
DrawWidth; Çizgi kalınlığını belirler.
Line Yönetimi
Line (X1,Y1) - (X2,Y2), renk;Line yöntemi form üzerine çizgi çizmek için kullanılır. X1 ve Y1 başlangıç, X2 ve Y2 bitiş noktasını belirler. Renk paramtresi seçimlidir. Eğer istenirse ForeColor özelliğine değer ata*****da renkli çizmler 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 Yönetimi
Circle (MX,MY), R , renk; Circle yöntemi merkezi MX ve MY olan çemberi R yarıçapında verilen renkte çizer. FillStyle özelliği 0 yapıldıktan sonra ve FillColor özelliğini kullanılarak içleri 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 Yönetimi
Pset(X,Y), renk; Pset yöntemi 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ıçağı sürekli 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