Event 'lerin Oluşturulması Ve Yakalanması

.NET programcılığı Event 'lerin Oluşturulması Ve Yakalanması Programlama Dilleri hakkında bilgi paylaş; Windows mesaj tabanlı çalışan bir işletim sistemidir. Win32 terminolojisin 'de sistem tarafından tespit edilen girdi bilgilerine mesaj ...
Cevapla
WebMasTer SiTeSi
 
Seçenekler
  #1  
Arama 24-01-2008, 01:51
Banlı
Üyelik Tarihi: 18/09/07
Mesajlar: 1.551
 
     WS-Ticareti: (1)
Blog Yazıları: 1
Teşekkürleri: 0
20 Msg. 27 Tşkr.
Rep Gücü: 0 B737 rep gücü epey yüksek

Event 'lerin Oluşturulması Ve Yakalanması

Windows mesaj tabanlı çalışan bir işletim sistemidir. Win32 terminolojisin 'de sistem tarafından tespit edilen girdi bilgilerine mesaj denilir. Her girdi bilgisi yani mesaj belirli bir nedenden dolayı oluşur. Örneğin klavyede bir tuşa basılması ya da mouse ile çift tıklama gibi. Windows, herhangi bir nedenden oluşan bir mesajı, bir veri yapısı biçiminde ifade ederek mesaj kuyruğuna yerleştirir. Programcı ise, geleneksel olarak bu mesaj 'ları yakalama teması üzerine hareket ederek windows programlarını oluşturur. Ancak sistem mesajlarının oluşturulması, mesaj kuyruğuna eklenmesi yada kuyruktan alınması gibi rutin 'ler windows 'un aşağı seviyeli çalışması ile ilgili bilgiler gerektirir.

Visual Basic gibi görsel dillerde ise mesaj kavramı, event kavramı ile karşılanarak, yukarıda bahsedilen mesaj işleme rutin 'lerinin programcının algısından uzaklaştırılması sağlanır. Bu sayede, aslında programlama tekniği açısından oldukça karmaşık olan windows programlaması kolay hale getirilir. Ancak bu durum; windows 'un aşağı seviyeli çalışması hakkında bilgi sahibi olmadan, görsel dilleri kullanarak program yazan kişilerde, arka planda gerçekleşen bir takım olayların sanki kendi kendine oluyormuş izlenimine kapılmalarına neden olmaktadır.

Visual Basic .NET 'te, programcı yazdığı sınıflar içerisinde çeşitli event 'ler tanımlayıp, bu event 'leri; client kod içerisinde kullanabilir (handle eder ).

Visual Basic .NET'te; event tanımlamanın genel biçimi;

[Skop Belirten Anahtar Sözcük] Event Event_İsmi ( ) şeklinde yapılır.

Örneğin; Public Event Load( ) gibi.

Event oluşturma (Raise etme ); RaiseEvent deyimi ile yapılır. Kullanımı :

RaiseEvent Event_İsmi ( ) şeklinde yapılır.

Örneğin; RaiseEvent Load( ) gibi.

Bu şekilde oluşturulan bir event 'in, client tarafta bir prosedüre bağlanarak çalıştırılması ve bu sayede o event oluştuğunda yapılması istenen işlerin gerçekleştirilmesi sağlanır. (Buton 'a click yapıldığında bir takım işlemlerin gerçekleştirilmesi gibi ...) Bunun için yaratılan event 'in mesaj döngüsüne eklenmesi gerekmektedir. VB .NET 'te mesaj döngüsüne bir mesajın eklenmesi işlemi AddHandler deyimi ile yapılmaktadır. AddHandler deyimi; bir event ile event handler olarak anılan bir prosedürün ilişkilendirilmesini sağlar. Kullanımı :

AddHandler Event_İsmi, AddressOf Prosedür_İsmi

Örneğin; AddHandler obj.AlarmCalacak, AddressOf BeforeAlarm gibi.

Böylece sözkonusu event oluştuğu zaman ilişkilendirildiği prosedür'ün çalışması sağlanacaktır.

Örnek : CalarSaat sınıfında tanımlanmış olan AlarmCalacak() ve AlarmCaldi() isimli event 'ler, AlarmCal() isimli fonksiyonda raise edilmiştir. Daha sonra bu event 'ler client tarafta AddHandler deyimleri kullanılarak BeforeAlarm() ve AfterAlarm() isimli prosedürlerle ilişkilendirilmiştir. Kodun çalışmasını adım adım incelersek;

CalarSaat sınıfı türünden tanımlanan obj isimli nesne kullanılarak AlarmCal() isimli fonksiyon çağrıldığında sırası ile önce AlarmCalacak() event 'i oluşmakta ve kendisi ile ilişkilendirilen BeforeAlarm() prosedürü otomatik olarak çalıştırılmaktadır. (Bu aşamada konsol ekranına "Alarm Çalacak" mesajı basılır)

Daha sonra programın akışı tekrar AlarmCal() fonksiyonuna gelerek alarm çalınmakta ve konsol ekranına "Beep !" mesajı basılmaktadır.

Bu aşamada akış "RaiseEvent AlarmCaldi() " kod satırına gelerek AlarmCaldi() event 'inin oluşması sağlanır. AlarmCaldi() event 'i oluştuğu anda ise kendisi ile ilişkilendirilen AfterAlarm() prosedürü otomatik olarak çalıştırılmakta ve konsol ekranına "Alarm Çaldı" mesajı basılmaktadır.

Not : Konunun anlaşılması bakımından örneği F8 ile adım adım çalıştırarak incelemenizi tavsiye ederim !

Public Class CalarSaat

'Event tanımlamaları

Public Event AlarmCalacak()

Public Event AlarmCaldi()

'Fonksiyon Tanımlamaları

Public Function AlarmCal()

RaiseEvent AlarmCalacak()

Beep()

Console.WriteLine("Beep !")

RaiseEvent AlarmCaldi()

End Function

End Class


--------------------------------------------------------------------------------

Module Module1

'AlarmCalacak() event'i oluşunca yapılacak işlemlerin tanımlandığı 'prosedür

Public Sub BeforeAlarm()

Console.WriteLine("Alarm Çalacak")

End Sub

'AlarmCaldi() event'i oluşunca yapılacak işlemlerin tanımlandığı 'prosedür

Public Sub AfterAlarm()

Console.WriteLine("Alarm Çaldı")

End Sub

Sub Main()

Dim obj As CalarSaat = New CalarSaat() 'Break Point

AddHandler obj.AlarmCalacak, AddressOf BeforeAlarm

AddHandler obj.AlarmCaldi, AddressOf AfterAlarm

obj.AlarmCal()

End Sub

End Module



RemoveHandler Deyimi

RemoveHandler deyimi; AddHandler deyiminin aksine davranarak bir event ile event handler olarak anılan bir prosedürün arasındaki ilişkiyi yok eder. Kullanımı :

RemoveHandler Event_İsmi, AddressOf Prosedür_İsmi

Örneğin; RemoveHandler obj.AlarmCalacak, AddressOf BeforeAlarm gibi.
Alıntı ile Cevapla
Cevapla
Arama Etiketleri: , , ,



Seçenekler


Benzer Konular
Konu Konu Açanlar Forum Cevaplar Güncel Mesajlar
VB .Net 'te ActiveX Component 'lerin Kullanımı W-S ASP 0 Dün 09:46
2000 lerin Dünya Özet Çocuk Raporu capi İnsan Hakları 2 28-11-2008 05:03
Sitene Sorunsuz İnen Mp3 lerin Listesini Koy becerikliforum Html kodları 0 08-07-2008 08:52
E-posta Dağıtım Listesinin Oluşturulması kadınca Network-internet 0 04-11-2007 12:51
Zarar görmüş partition tablolarının yeniden oluşturulması kadınca Harici Bileşenler 0 03-11-2007 11:29


Webmaster web tasarım online reviews ~ Kadınlar blogu ~ Apple iPhone, iPod Touch ( iTouch ) Forum ~ iPhone