Makale Özeti

Visual dillerin gelişmesiyle yazılım geliştiricilere en çok heyecan veren kavram grafik programcılığı olmuştur. GDI C++ dili ile grafik çizmek için oluşturulmuş sınıflar kümesi idi.

Makale

GDI+ Dili-1

Merhaba yeni bir yazıda yine beraberiz. Bu yazımda sizlere GDI+ dilinden bahsedeceğim. Yani Net dilleri ile nasıl grafik çizilir? Bunu inceleyeceğiz. Hangi sınıflar ve hangi namespaceler kullanılıyor? Bunu göreceğiz.

Visual dillerin gelişmesiyle yazılım geliştiricilere en çok heyecan veren kavram grafik programcılığı olmuştur. GDI C++ dili ile grafik çizmek için oluşturulmuş sınıflar kümesi idi. Ancak GDI dili ile pek çok sorunlar yaşanmıştı. Microsoft tüm bu olumsuzlukları dikkate alarak GDI dilini yeniden düzenledi ve GDI + haline getirdi. Öyle ki GDI düşük ve orta düzey programlama ortamı sağlıyordu. Ancak GDI + ile yüksek düzeyli programlama yapmak mümkün olabilmektedir. Yalnız yüksek düzeyli programlama ile kalmaz. Bununla beraber Gradyand renk fırça spline eğrileri gibi birçok özellikte bunları kapsar. İsterseniz gelin bu dilin daha doğrusu namespaceleri tanımaya başlayalım.

GDI+ içindeki tüm sınıflar 6 adet namespace içinde toplanmıştır


System.Drawing
System.Drawing.Desing
System.Drawing.Printing
System.Drawing.Imaging
System.Drawing.Drawing2D
System.Drawing.Text

Namespace kavramı bu konunun dışında bir kavramdır ancak ben size namespace kısaca "kategori anlamına gelir" diyebilirim. Aslında fonksiyonları sınıflandırmak için sınıf yapısı geliştirilmiştir. Aynı şekilde sınıfları sınıflandırmak içinde Namespaceler geliştirilmiştir.

Konumuza geri dönelim. Şunu söyleyebilirim ki çizim ile ilgili tüm kod System.Drawing.DLLnin içindedir. Tüm sınıflar ve kategoriler (Namespaceler) bu DLL içinden çağrılır. İsterseniz gelin bu kategorileri incelemeye başlayalım.

1-System.Drawing

Bu kategori GDI+ ortamındaki en çok işlevselliğe sahip fonksiyonları içeren bir kategoridir. Burada kalem, Fırça,Grafik, Bitmap ve Font gibi temel sınıflar bulunur. Aslında burada temel sınıf grafik sınıfıdır. Yani aslında temel çizimi yapan Grafik sınıfıdır. Diğer sınıflar grafik sınıfına ait fonksiyonların özelliklerini atayan fonksiyonları barındıran sınıflardır. Yan biraz açarsak sadece grafik sınıfı ile çizim yapabilirsiniz. (Belki…) Ancak fırça kalem yada font sınıfı ile çizim yapamazsınız.

Olaylar ve metotlar ile ilgili konuyu başka bir yazıda ele almak istiyorum ancak burada bize çizim yaptıracak olan bir metot Formun Onpaint Metodudur. Yani çizim kodları bu metot içine yazılarak işleme sokulur. Onpaint metodunu kullanmadan da çizim yapmak mümkündür. Ancak bazı tanımlamalar Onpaint metodu içindeki nesnelere otomatik olarak yüklenir.

Şimdi isterseniz basit bir içi dolu dikdörtgen çizelim. Bunu sağlayacak kod aşağıdadır.

Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) Dim g As Graphics
g = Me.CreateGraphics
Dim firca As SolidBrush = New SolidBrush(Color.Red)
g.FillRectangle(firca, 10, 10, 50, 70)
End Sub

Bu kodu derlerseniz karşınıza çıkacak şekil bir dikdörtgendir. Şimdi de bu kodu analiz edelim.Öncelikle formun onpaint metodunu kullandığımızı görüyorsunuz. Öncelikle g adında grafik sınıfına ait bir nesne tanımlıyoruz. Daha sonra bu nesneye formun Creategraphics isimli özelliğini atıyoruz yani grafik yaratmak için gerekli özellikleri nesnemize yüklüyoruz. Daha sonra Fırça tanımlıyoruz. G nesnesinin FiilRectangle Metodu ile grafiğimizi çiziyoruz. Bu metodun çeşitli parametreleri var bunların da siz deneyerek keşfedebilirsiniz.

Sistem Drawing Namespace içindeki bazı sınıflar ve parametreleri aşağıda tablo halinde verilmiştir.

Tarık Gökhan Kızılırmak
tarikgokhan@hotmail.com