Olaylar ve Etkileşim

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.