12.07.2015 Views

bu döküman kaan aslan tarafından c ve sistem ... - Kitabxana

bu döküman kaan aslan tarafından c ve sistem ... - Kitabxana

bu döküman kaan aslan tarafından c ve sistem ... - Kitabxana

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

{}if (mea.Button == MouseButtons.Left)m_prevPoint = mea.Location;private void mouseMo<strong>ve</strong>Handler(object sender, MouseE<strong>ve</strong>ntArgs mea){if (mea.Button == MouseButtons.Left){Graphics g = this.CreateGraphics();g.DrawLine(m_redPen, m_prevPoint, mea.Location);}}}m_prevPoint = mea.Location;}}Pencerelerin Yok Edilmesi: Bir pencerenin nesne olarak yaratılmasıyla işletim <strong>sistem</strong>i genelindeyaratılması farklı zamanlarda gerçekleştirilmektedir. Control sınıfı ya da o sınıftan türetilmiş birsınıf türünden nesneyi new operatörü ile yarattığımızda henüz windows düzeyinde alt pencereyaratılmamış durumdadır. Alt pencerenin windows düzeyinde yaratılması üst pencerenin pencerelistesine eklenmesi sırasında yapılmaktadır. Fakat ana pencereler için durum böyle değildir. Anapencereler gerçekten de nesne new operatörüyle yaratıldığında yaratılmaktadır. Peki bir pencerenasıl yok edilir. Alt pencerelerin fiziksel olarak yok edilmesi tamamen ters bir işlem olarak altpencerenin üst pencerenin pencere listesinden silinmesiyle gerçekleştirilebilir. Fakat ana pencereninyok edilmesi form sınıfının Close fonksiyonuyla yapılmaktadır. Şüphesiz üst pencere yokedildiğinde onun tüm alt pencereleri de yok edilmektedir.Görüldüğü gibi programlama yoluyla ana pencereyi kapatıp mesaj döngüsünden çıkmak istiyorsaktek yapılacak şey Form sınıfının Close fonksiyonun çağırmaktır. Ana pencereyi kapatmanın bir yoluda pencerenin sağ üst köşesindeki X simgesine tıklamaktır. Şüphesiz kullanıcı X simgesinetıkladığında <strong>bu</strong> işlemin iptal edilebilmesine olanak <strong>ve</strong>rilmelidir. İşte . net te X tuşuna tıklandığındaForm sınıfının bazı e<strong>ve</strong>nt elemanları tetiklenmektedir.Form sınıfının FormClosing isimli e<strong>ve</strong>nt elemanı FormClosingE<strong>ve</strong>ntHandler isimli delegetüründendir. Windows <strong>tarafından</strong> oluşturulan <strong>bu</strong> mesajın mesaj parametre sınıfıFormClosingE<strong>ve</strong>ntArgs isimli sınıftır.FormClosingE<strong>ve</strong>ntArgs sınıfının bool türden Cancel isimli property elemanına e<strong>ve</strong>nt fonksiyonuçağrıldıktan sonra .net <strong>tarafından</strong> bakılmaktadır. Eğer <strong>bu</strong> elemanda true varsa pencereninkapatılması iptal edilir. Bu e<strong>ve</strong>nt çağrıldığında <strong>bu</strong> eleman içinde default olarak false vardır.Form sınıfının Close fonksiyonu yine FormClosing mesajını oluşturmaktadır. O halde çıkış kontrolü(örneğin sa<strong>ve</strong> edilmesine yönelik) FormClosing mesaında gerçekleştirilebilir.FormClosing e<strong>ve</strong>nt elemanı anapencere henüz yok edilmeden önce tetiklenmektedir. Fakat bazenana pnecere yok edildikten sonra da bir takım işlemlerin yapılması gerekebilir. Bunun içinFormClosed e<strong>ve</strong>nt elemanı kullanılır. Şüphesiz artık <strong>bu</strong> e<strong>ve</strong>nt oluştuğunda pencereninkapatılmasının iptal edilmesi söz konusu değildir. O halde FormClosing mesajı işlemin iptal41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!