Aranızda C64 ile program yapma şerefine erişmiş olanlar bilirler; grafik cizmek icin 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, ustteki değerlere gore toplanarak uzun datalar oluşturulurdu. Eğer uğraşmışsanız anlamışsınızdır. Anlamadıysanız uzulmeyin cunku artık programlara grafik eklemek icin boyle zahmetli işlerle uğraşmanız gerekmiyor.

OLE nesnesi sayesinde zaten pahalı cizim ve illutrasyon (turkcesi ne?) programlarıyla cizdiğiniz grafikleri pat diye programa koyabiliyorsunuz. Ama amacınız aktif grafikler ise (-ki kendileri, girilen bilgi ya da alınan sonuca gore sonradan cizilen grafikler oluyorlar) VB nin bizlere verdiği cizim imkÂnlarına şoyle bir bakmanız gerekecektir.

Line Nesnesi : Arac kutusunda bulunur. Nerde kaybolur, onu bilemeyeceğim (tamam, kotu espri.). Bordercolor ile renk, Borderwidth ile kalınlık, Borderstyle ile cizim bicimini ayarlayabilirsiniz ki, bu bicimler kesik cizgi, nokta ve saydam gibi niceliklerdir. X1,Y1 başlangıc koordinatlarını, X2,Y2 ise bitiş koordinatlarını belirtmektedir. Bunlar sayesinde kod icerisinden de Line nesnesini kullanabilirsiniz.
Shape Nesnesi: Bu nesne sayesinde kare, dikdortgen, elips, daire vb şekiller cizebilirsiniz.Nesnenin shape ozelliği sayesinde cizilecek şeklin tipini belirlersiniz.

Shape.shape = (Cizilecek şekil)
0 : Dikdortgen
1 : Kare
2 : Elips
3 : Daire
4 : Yuvarlatılmış dikdortgen
5 : Yuvarlatılmış kare
Shape.Borderstyle = (Cerceve tipi)
0 : Yok
1 : Surekli
2 : Kesikli cizgi
3 : Noktalı cizgi
4 : Cizgi-nokta şeklinde kesikli cizgi
5 : Cizgi-nokta-cizgi
6 : Sınır cizgisi şeklin icinde kalır
Shape.Fillstyle = (İcinin doldurulma şekli (daha iyi ceviremedim))
0 : Tamamen dolu
1 : Boş
2 : Yatay cizgiler
3 : Dikey cizgiler
4 : Yatay ve dikey cizgiler
5 : Sola yatık cizgiler
6 : Sağa yatık cizgiler
7 : Baklava Tepsisi

Backstyle ozelliğinin değerini 0 yaparsanız; cizilen şeklin ici saydam olacaktır. Yok "Ben saydam istemiyom" deseniz,o zaman 1 yapın ki; ici renkli olsun.
Borderstyle ve Fillstyle icin yukarı bakın, bakın ki, o kadar şeyi yeniden yazmayayım. Bana da yazık değil mi?

Bunlar basit şekiller cizerken kullanabileceğimiz nesnelerdi. İstatistik gibi bilgileri şemaya dokebileceğimiz MSCHART nesnesine gecmeden once kod ile grafik cizebileceğimiz VB komutlarına da şoyle 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 kucumsemeyin. Her hangi basit bir parabolu bile line nesnesi ile cizemessiniz.

Nesne.Line (X1,Y1)-(X2,Y2),Renk,B(F) : Şirin dikdotgenler cizmek icin kullanabilirsiniz. En sondaki "B" nin yanına "F" de koyarsanız, dikdortgeninizin ici dolu olur. Koymassanız boş olur. Hem "F" koyma, hem de dolu olmasını iste! Var mı oole !?! Geyiğe girmeden devam edelim sonra cıkamayız.

Nesne.Circle (X,Y),Yarıcap,Renk, Başlangıc acısı, Bitiş acısı, Basıklık aireler ve elipsler cizmek icin kullanırız biz bu komutu. Hem adı circle olduğu icin hem de daire ve elips cizmek icin bu komut kullanıldığı icin. ( Burda cok ince bir espri var. Esasında MUDER kullanmıştı bunu. Once anlamamıştım ama anladığımdan bu yana hep gulerim. Ah Gameshow Ah!)

Hepsini anlattım. Tabi boyle anlaşılmaz. Ornek gerek. Gerek de şimdi vaktim yok. Netcez şimdi? Ya uğraşın işte. Ya bakma oyle ağlamaklı, beni de ağlatacan. Tamam tamam ornek yapalım. Ama sadece nasıl kullanıldığı ile ilgili. Oyle ahım şahım bişe olmıyacak. Ha bir de Scale metotu var. Ona da bir bakalım da, orneğe oyle geceriz.

Scale Metotu : Normalde ekranın sol ust koşesi (0,0) koordinatları ile belirtilir. Bu Scale ile ekran koordinatlarını kafanıza gore değiştirebilirsiniz. Mesela Scale (-500,250)-(500,-250) ile ekranın sol ust koşesini (-500,250), sağ alt koşesini (500,-250) olarak değiştirmiş olursunuz. Ekran şuna benzer (şimdi paintle falan uğraştırmayın boyle idare ediverin işte):

(-500,250) (500,250)
(0,0)
(-500,-250) (500,-250)

Ornek_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

Ornek_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

__________________