Visual C# ile Basit Bir Not Defteri Uygulaması
Visual C# ile Basit Bir Not Defteri Uygulaması
| Bu yazımızda konu olarak Windows Form’u seçtim;çünkü bu konuda Türkçe kaynak neredeyse yok, doğru dürüst bir programın yapımını gösteren bir yazı, bir site bulamadım, tabi ki Türkçe bir çok makale var sitelerde, bende onlardan yararlanarak ve deneyerek bir şeyler yaptım ve şimdi bu yaptıklarımı sizinle paylaşıyorum.
Eğer bu yazıyı sonuna kadar okursanız ve kodları sizde yazarsanız, yazının sonuna geldiğiniz Basit Not Defteri adında bir uygulamanız olacak. Önce bu programdan biraz bahsedelim. Adı üstünde bir Not Defteri uygulaması ancak basit hem de çok basit. Yapabildiği şeyler: Yeni dosya yaratmak, var olan dosyaları açmak, dosya kaydetmek… Böyle bir program yapmamın sebebi tabi ki metin editörleri konusunda alternatif oluşturma isteği falan değil, tek sebep benim ilk başlarda çok zorlandığım SaveFileDialog, OpenFileDialog gibi kontroller konusunda örneklemeler yapmak.. Lafı daha fazla uzatmadan artık uygulamaya geçelim. Önce aşağıdaki programı Visual Studio .Net’in Designer’ında oluşturun… Şimdi kodlarımıza geçebiliriz. Bu bölümde adım adım ilerleyeceğiz. Menülerdeki tüm başlıkların olaylarını yazacağız. 1)Genel değişkenimizi tanımlama
2)Form1’in onLoad Olayı
3)Kullanılacak metotların tanımlanması…
Kayitci.Write(strVeri) satırı ile gelen veriyi kaydediyor ve StreamWriter nesnesini kapatıyor. Degisim değerini ise true olarak atıyor. Bunun nedeni değişim oldu ve ben bunu gördüm demek. Kullanıcıya haber vermeye gerek yok anlamına gelecek. Şimdi devam edelim.
Bu satırı biraz incelemek lazım. Burada ilk overload (Overload metodlara parantezler içinde yollanan veri demek.) mesaj kutusunda görünecek olan yazı, ikinicisi bu mesaj kutusunun başlığı, üçüncüsü mesaj kutusu üzerinde ki “Evet”, “Hayır” düğmeleri ve son olarak mesaj kutusundaki simge. Ancak kodlara bakmaya devam ettiğimizde bir karşılaştırma görüyoruz (“==” ifadesi) DialogResult.Yes , aslında açıklamaya bile gerek yok. Eğer kullanıcı “Evet”e tıkladı ise demek. Asıl kodlarda bu durumda bir “true” ifadesi döndürüldüğünü görebilirsiniz. Biz daha sonra bunu kontrol ederek KayitMekanizmasi metodumuzu çağıracağız. 4) Yeni düğmesi
Eğer değer “true” ise biraz karışıyor ortalık. Önce kullanıcıyı uyarmak için DegisimUyari() çalıştırılıyor. Eğer kullanıcı kayıt etmek istiyorsa, KayitMekanizmasi() çalıştırılıyor, ekran temizleniyor ve Degisim değeri false oluyor.Eğer kullanıcı kayıt etmek istemiyorsa içerik temizleniyor ve Degisim değeri yine false oluyor. Böylece yeni bir dosya açma işlemlerini hallettik. 5) Varolan dosyayı açma Metin editörünüz ile daha önce var olan bir dosyayı açmak istersiniz diye böyle bir özellik ekledik birde. Menümüzde “Aç”a çift tıklayın ve tıklama olayına aşağıdaki kodları girin.
Bu kodlarda da önce değişim var mı diye bakıyoruz. Yani amacımız kullanıcının yazdığı metni yanlışlıkla bastığı bir düğme yüzünden kaybetmesini engellemek. Eğer değişim varsa ve uyarıdan “true” değeri dönerse kaydediyoruz, aksi halde herhangi bir şey yapmıyoruz. Bundan sonra yukarıda SaveFileDialog için yaptığımız benzer şeyleri yapıyoruz. Yani .ShowDialog() metodunu çağırıyoruz. Kullanıcı OK’e tıklayınca kodlarımız devam ediyor. Ancak burada yukarıdakinden farklı kodlar var. Dosya okumak için çok farklı yöntemler var. Yazmak içinde tabi ki. Mesela StreamWriter’ın StreamReader’ı da var ve ben burada bunu kullandım. Eğer kodları incelerseniz biraz farklı olduğunu göreceksiniz. Çünkü burada FileInfo diye de bir şey var. FileInfo bu tür dosya işlemcilerine yardımcı olur. strKaynak değişkenine atadığımız nesnemizde StreamWriter daki gibi path gösterip dosyamızı açıyoruz. Burada objOpen.FileName’den gelen veri, kullanıcının açmak istediği dosya. 6) Kaydet düğmesi Kullanıcı çalışmasını kaydetmek istediği zaman bu düğmeye tıklayabilir. Çok kısa bir kodu var. Zaten asıl işi yapan KayitMekanizmasi(), biz sadece onu çağıracağız şimdi.
Burada açıklanacak bir kod yok. Gördüğünüz gibi … 7) Kapat Düğmesi Kullanıcı programı kapatmak isteyebilir ve bunun için Dosya menüsündeki Kapat düğmesini kullanabilir. O zaman bu düğmeye de bir olay atamamız lazım. Şimdi çift tıklayın ve aşağıdaki kodları yazın.
Bu kod çok basit. Sadece Close() metodunu çağırıyor. Bu özel tanımlı bir metodur ve o form penceresinin kapanmasını sağlar. Şimdi aklınıza gelebilir ya içeride kaydedilmemiş veri varsa hiç kontrol etmedik. O zaman biraz sabır, ona da bakacağız… 8) Kapanmadan önce kontrol
Burada yapılanlardan farklı olan hiç bir şey yok. Degisim değerini kontrol ediyoruz ve ona göre işlem yapıyoruz.. 9) Son bir metod… Asıl en önemli şeyi yapmadık sanıyorum. Örneğin kullanıcı programa bir veri girdiğinde yani herhangi bi yazı yazdığında Degisim değeri değişmedi. O zaman bunu halledelim. objText’in TextChanged adında bir olayı var. Şimdi o olay kodları içine aşağıdaki tek satırlık kodu yazıyoruz.
Evet, böylece olayın iş yapan kısmı bitti.. Ancak menülerimiz arasında hiç ilgilenmediğimiz bir düğme var. Hakkında. Bu aslında en gereksiz şey belki ama bir programcının en çok önemsediği bölüm :). Bunun için basit bir form yaratınız. Ben aşağıdaki formu oluşturdum ve adını “hakkinda” yaptım. Burada altta iki tane de link var. Biri MaxiASP.Com ‘a biri MaxiASP.Net’e yönlenmiş durumda. Bunlara tıklandığında tarayıcımızın açılıp sitelere gitmemizi sağlayacak kodlarda aşağıda.
Gerçekten çok uzun bir yazı oldu. Eğer her şey yolunda gitti ise şu an canavar gibi çalışan bir “Basit Not Defteriniz” var. Başka yazılarda görüşmek üzere. |
