Olaylar, örneğin; fareyi hareket ettirmek veya üzerine
tıklamak gibi kullanıcı eylemlerine karşı verilen sinyallerdir. Olayların ne
olduğunu ve nasıl kullanılabildiklerini anlamanıza yardımcı olacak çok basit
bir örneğe bir göz atacağız.
GraphicsWindow.MouseDown = Faretıklandı
Sub Faretıklandı
GraphicsWindow.ShowMessage("Tıkladınız.",
"Merhaba")
EndSub |
Yukarıdaki
programda dikkat edilmesi gereken ilginç bölüm, GraphicsWindow nesnesinin MouseDown
olayına altyordam ismi atadığımız satırdır. Olay gerçekleştiğinde,
altyordam otomatik olarak çağırılır. Bu durumda, kullanıcı fareyi kullanarak
her tıkladığında, GraphicsWindow üzerinde Faretıklandı altyordamı
çağrılır. Hadi programı çalıştırın ve deneyin. Fareyle GraphicsWindow üzerine
her tıkladığınızda, aşağıdaki pencerede gösterilen gibi bir mesaj kutusu
göreceksiniz.
Olayların
bu şekilde kullanılması oldukça güçlüdür ve oldukça yaratıcı ve ilginç
programların yazılabilmesini sağlar. Bu şekilde yazılmış programlar, genellikle
olay güdümlü programlar olarak adlandırılırlar.
OnMouseDown altyordamını, bir mesaj kutusu açmak yerine başka şeyler
yapmak üzere değiştirebilirsiniz. Örneğin; aşağıdaki programda olduğu gibi,
kullanıcının fareyi tıkladığı yerlere büyük mavi noktalar çizebilirsiniz.
GraphicsWindow.BrushColor =
"Blue"
GraphicsWindow.MouseDown =
Faretıklandı
Sub Faretıklandı
x = GraphicsWindow.MouseX - 10
y = GraphicsWindow.MouseY - 10
GraphicsWindow.FillEllipse(x,
y, 20, 20)
EndSub |
Yukarıdaki programda, farenin koordinatlarını elde etmek
için MouseX ve MouseY’yi kullandığımıza dikkat edin. Daha sonra
bunları, farenin koordinatlarını dairenin merkezi olarak alarak, bir daire
çizmek için kullanıyoruz.
Birden fazla olayın kullanılması
Ne
kadar olayı kullanmak istediğinizle ilgili gerçekte bir sınır yoktur. Hatta,
birden fazla olayı kullanacak bir altyordama bile sahip olabilirsiniz. Ancak,
bir olayı yalnızca bir kez kullanabilirsiniz. Aynı olaya iki altyordam atamaya
çalışırsanız, ikincisi galip gelir. Bunu göstermek için, bir
önceki örneği alalım ve tuşlara basmayı kullanan bir altyordam ekleyelim.
Ayrıca, bu yeni altyordama fırçanın rengini değiştirtelim, böylece fareye
tıkladığınızda farklı bir renkte nokta elde edin.
GraphicsWindow.BrushColor =
"Blue"
GraphicsWindow.MouseDown
=Faretıklandı
GraphicsWindow.KeyDown =
Tusabasıldı
Sub Tusabasıldı
GraphicsWindow.BrushColor =
GraphicsWindow.GetRandomColor()
EndSub
Sub Faretıklandı
x = GraphicsWindow.MouseX - 10
y = GraphicsWindow.MouseY - 10
GraphicsWindow.FillEllipse(x,
y, 20, 20)
EndSub |
Bu
programı çalıştırır ve pencereye tıklarsanız, mavi bir nokta çıkacaktır. Şimdi,
herhangi bir tuşa bir kez basar ve sonra yine tıklarsanız, farklı renkte bir
nokta çıkacaktır. Bir tuşa bastığınızda, fırçanın rengini rasgele bir renge
değiştiren Tusabasıldı altyordamı uygulanır. Bundan sonra fareye
tıkladığınızda, yeni belirlenen renk kullanılarak bir daire çizilir ve böylece
ortaya rastgele renkli noktalar çıkar.