Skip to main content

AccessTr.neT


Grafik Kullanımı

accessman
accessman
6
5076

Grafik Kullanımı

#1
alıntıdır
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]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)
Ö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
@benbendedeilem
Cevapla
#2
Sn:accessman
Paylaşım için teşekkürler.
OĞULCAN & OLCAYTUĞ

Oğulcan Excel Web Sitesi
Excel İle Programlama
Cevapla
#3
Teşekkürler sn.accessman, birde örnek olsaydı tadından yenmezdi Img-grin
Kaplumbağa ya dikkat et...
Sadece  başını çıkartıp risk aldığında ilerleyebiliyor...
Cevapla
#4
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

bu kodu nasıl accesse uyarlayabiliriz
@benbendedeilem
Cevapla
#5
(03/02/2010, 14:05)Puletin yazdı: Teşekkürler sn.accessman, birde örnek olsaydı tadından yenmezdi Img-grin
Bilgi paylaşıldıkça çoğalır....
Her engel, yaşam koşullarınızı daha iyileştirecek bir fırsattır.


Access için her zaman lazım olacak konu başlıkları listesi


Cevapla
#6
DrawMode property için
http://msdn.microsoft.com/en-us/library/...e.11).aspx
DrawStyle property için
http://msdn.microsoft.com/en-us/library/...e.11).aspx
FillStyle property için
http://msdn.microsoft.com/en-us/library/...e.11).aspx
SpecialEffect property için
http://msdn.microsoft.com/en-us/library/...e.11).aspx
ScaleMode property için
http://msdn.microsoft.com/en-us/library/...e.11).aspx

buda rapor ayrıntısına grafik çizmek için

Private Sub Ayrıntı_Print(Cancel As Integer, PrintCount As Integer)
Const conPI = 3.14159265359
Dim sngHCtr As Single, sngVCtr As Single
Dim sngRadius As Single
Dim sngStart As Single, sngEnd As Single

sngHCtr = Me.ScaleWidth / 2 ' Horizontal center.
sngVCtr = Me.ScaleHeight / 2 ' Vertical center.
sngRadius = Me.ScaleHeight / 3 ' Circle radius.
' Draw circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius
sngStart = -0.00000001 ' Start of pie slice.
sngEnd = -2 * conPI / 3 ' End of pie slice.
Me.FillColor = RGB(255,0,0) ' Color pie slice red.
Me.FillStyle = 0 ' Fill pie slice.
' Draw pie slice within circle.
Me.Circle(sngHCtr, sngVCtr), sngRadius, , sngStart, sngEnd
End Sub
@benbendedeilem
Son Düzenleme: 03/02/2010, 15:11, Düzenleyen: accessman.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da