4 Şubat 2016 Perşembe

XAML ListViewItem Tasarımı

XAML grid nesnesi sayesinde listview e her türlü kontrol aktarabilir olduk. Bu bir çok işimizi kolaylaştırdığı gibi görselimizi de harika oranda iyileştirdi. Bu grid nesnesi bir çok kontrolüze etki edecek düzeyde iyileştirme yapmakla kalmayıp birden fazla kontrol eklememize olanak sağlayarak çok da fonksiyonel bir element oluşturmamıza yardımcı oluyor.

Grid nesnesi içine eleman eklerken Children propertysinden Add özelliği ile içeri aktarılır. Örnek vermek gerekirse...

            ListViewItem lv = new ListViewItem(); // Listviewitem oluşturduk
            Grid gr = new Grid();//Burda da grid nesnesini baştan yarattık
            gr.Height = 470;//grid nesnesine yükseklik değeri vererek listviewitemın yüksekliğini sınırladık.

31 Ocak 2016 Pazar

C# Application Data Kullanımı ( How to use ApplicationData in C# )

Bu sayfaya geldiyseniz bir depolama birimine ihtiyacınız var demektir. Application data da oldukça ideal bir depolama bölgesidir. Kullanıcı verilerini depolarken oldukça pratik bir bölüm ve object türünde depolama yaptığını söylesem nimet gözü ile seve seve bakabilirsiniz. Kullanımı da oldukça basittir. Sözlük mantığı ile çalışır. Yani ini dosyası gibi düşünebilirsiniz. Neyse kullanımını anlatayım tecrübe edinin ve çok daha iyi kavrayın. Burdan okuduğunuz uçup gider tecrübeleriniz elinizde kalır. 

Kullanımı için ilk önce Storage kütüphanesini using ile tanımlamanız gerekiyor.

using Windows.Storage;

20 Ekim 2015 Salı

C# Queue kullanımı ( Sıra )

Queue aynı ArrayList gibi object turunden değişken alır ve Collection sınıfının bir üyesidir. İlk giren ilk çıkar formatı ile işler ve birçok programlama mantığı kurmanızda basitlik sağlar. Örnek vermek gerekirse bankada fiş aldığımızda ister kartlı müşteri olalım ister kartsız müşteri olalım hep farklı numaralar verir. Biri 3xx biri 5xx iken numaralar burada tamamen zaman kavramını yenmek için yapılmış. Diyelim sizin numaranız 325 en son 315 vezneye geçti. Düşününce önünüzde 10 kişi varmış gibi durur ama aslında en az 30 kişi vardır. Sıralar karmaşık şekilde listeye eklendiğini varsayarsak queue tam bu iş için biçilmiş kaftan. Queue biraz ergen gülmesini andırır. Facebookta, inci sözlükte bu tarz platformlarda qeqewqeq tarzı kahkaha atanlara alternatif bir gülme şekli de olabilir.
"C# veya herhangi bir dilde yazılan yığın veri yapılarında Enqueue(), Dequeue, Peek(), Clear() fonksiyonları ve Count, özelliği vadır. Bunların yanında Clone(), CopyTo(), ToArray(), Contains() ve Equals() metodları .NET'in yığın sınıfında yeralır."
Enqueue kayıt eklemek için kullanılır. Dequeue kayıt silmek için peek ilk kayıdı göstermek için, clear da diziyi temizlemek için vardır.

 Neyse kullanımını anlatmak için öncelikle Collections sınıfımızı import etmemiz gerekmektedir.

using System.Collections;

projemize collections sınıfımızı import(ithal) ettikten sonra queue diyerek tanımlamaya başlayabiliriz.


Queue OrnekQueue = new Queue();

Örneğimizi tanımladıktan sonra içine değer aktarmaya sıra geldi. Değişik bir içeri nesne alma şekli var ve ilk defa burada kullanacağız. Visual studionun otomatik tamamlama özelliği olmasa ezbere yazılmayacak kadar değişik yani.

19 Ocak 2015 Pazartesi

Dev/urandom C# ve Python da kullanımı

Öncelikle bu yazımın hepinizin işine yaramasımı umuyorum.

Öncelikle skype altyapısını araştırırken dev/random la karşılaştım. İnceledim ve size de anlatmak istedim.

Öncelikle c# da anlatayım.

Random değişkenini bilirsiniz Random rnd = new Random(); diye tanımlanır fakat bu sistem
Cryptography clasını kullanıyor. Öncelikle import bölümüne ekleyelim 
 
using System.Security.Cryptography;
 
Sonra ise fonksiyon olarak yazalım ve her satırı tek tek açıklayayım
 
 

7 Temmuz 2014 Pazartesi

Visual C# Chart kullanımı ( Grafik )

Merhaba arkadaşlar.
Size bugün Chart yani grafik kullanımını anlatacağım.
Öncelikle Chart ne işe yarar?
Chart bildiğin grafik( Çubuk,pasta,çizgiler,eğilim çizgileri vs) hazırlamak için kullanılan bir tür Microsoft tarafından geliştirilen Component'dir. Bir çok projede iş görür niteliktedir ve tasarımını renklendirerek iyileştirebiliyorsunuz. Microsoftun sitesinde yazdığı gibi 'Microsoft Chart for .NET Framework 3.5 SP1' den itibaren bulunur ve .net framework 2.0 de yoktur.(Şahsen aradım). Chart Componentinden ufak bir ekran görüntüsü.


Visual c# Chart
Chart Ekran Görüntüsü


Örneklerle anlatmaya geçeyim hemen.


Chart componenti toolbox da data sekmesinin altında mevcuttur. ordan sürükleyerek formumuza ekleyelim.
Boyutlarını ve kişisel ayarlarınızı yapın ve kod kısmına geçelim hemen.

Ben network kim ne kadar dosya indirmiş kim ne kadar dosya yüklemiş onların takibini yaptığım için grafiği de ona göre hazırlayacağım.

            this.chart1.Titles.Clear();//Chart da varsayılan olarak gelen başlıkları temizliyoruz.
            this.chart1.Series.Clear();//Chart da varsayılan olarak gelen series (Liste) temizliyoruz.
            this.chart1.Series.Add("Download");//2 adet çubuk türü olacak biri upload diğeri download. Downloadı ekledik.
            this.chart1.Series.Add("Upload");//Uploadı ekledik
            this.chart1.Series[0].Color = Color.Red;//Downloadın rengini belirledik.(Grafiksel iyileştirmek için)
            this.chart1.Series[1].Color = Color.Orange;//Uploadın rengini belirledik.
            for (int i = 0; i < 7; i++)//Ben 7 adet kayıt gösteriyorum çünkü bu stilde ekrana 7 adet kayıt sığıyor.
            {
                this.chart1.Series[0].Points.AddXY(kisi[i].ToString(), double.Parse(down[i].ToString())/1024.0/1024.0);//x parametresi altta yazacak yazıyı belirliyor y ise o yazının değerini belirliyor.
                this.chart1.Series[1].Points.AddXY(kisi[i].ToString(), double.Parse(up[i].ToString()) / 1024.0 / 1024.0);//Burda o kişiye birde upload değeri eklememize yarıyor. Ben kb olarak aldığım değeri gb ye çevirmek için 2 kez 1024 e bölüyorum.
            }

Bu arada kisi, up, down değişkenleri bende arraylist isterseniz siz string, int ve double dizi değişkenlerle de bu işlemi yapabilirsiniz.

İşin basit tarafını anlatmak gerekirse.

1- Başlık Eklemek: chart1.Series.Add("Başlık Tanımı");
2- Değer Eklemek:chart1.Series[int türünde seri ID değerini yazıyoruz yada string olarak başlık tanımı yazılabilir"].Points.AddXY("Burda Kalemin Tanımını Giriyoruz", "Burda da double yada int türünde değeri giriyoruz.")/1024.0/1024.0);


Bir çok değişik grafikleme özelliğine sahip. Misal pasta diliminden tutun da noktalı değerlere kadar bir çok çeşidi vardır. Bilmek istediğiniz çeşidini yorum olarak attığınızda size 24 saat içinde örnek uygulamasını hazırlar makaleye eklerim. Şu an sadece çubukların ihtiyaç olacağını düşündüğüm için böyle bir anlatım yolu izledim.


Yorumlarınız benim için önemli google içinde

30 Haziran 2014 Pazartesi

ArrayList Kullanımı

ArrayList object türünde liste oluşturmamızı ve bir çok problemden kurtulmamızı sağlayan bir tür dizi değişkendir. En büyük özelliği her türden yani object olarak verileri saklamasıdır. Veri türünüz ister int ister string ister form ister resim isterse de buton olsun hepsini saklar ve siz isteyince geri döndürür. Yada sizin hazırladığınız bir veri türünü de ekleyebilirsiniz. ArrayList değişkenini kullanabilmek için using kısmına system.collection eklememiz lazım.
using System.Collections;
 Hadi şimdi ilk değişkenimizi tanımlayalım ve içinde işlemler yapalım.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace erreylist

23 Haziran 2014 Pazartesi

Visual Csharph XML Teknolojisi ile Döviz Kuru Çekme

Merhaba arkadaşlar.
Bugün döviz kuru çekeceğiz.
Döviz kurunu merkez bankasının xml servisinden alacağız. Bilmeyenler için döviz kuru xml sayfası

http://www.tcmb.gov.tr/kurlar/today.xml

XML okumak için önce xml referansını ekleyelim ve bu sayede .net companentlerinin faydasını görelim.

                    using System.Xml;
Sonra bu döviz kurunu listview e aktaracağımız için ekrana bi listview ekleyelim. Özellikleri şöyle olacak

19 Haziran 2014 Perşembe

Ağdaki Bilgisayarların Adlarını Öğrenmek

İş yerindesiniz ve elinizde ipler var. Siz gidip gidip bilgisayar ismine bakıyorsunuz. Oluyor mu? Tabi ki de olmuyor. Öncelikle yapmanız gereken şey basit. Kendi ip adresinizi öğreneceksiniz ve bu sayede de hangi bacaktan ipleri listeleyeceğini karar veriyorsun. Mesela ben 10.1.2.x kullanıyorum. Buna ek olarak istesem  10.1.3.x de kullanabilirim. Yani ağında hangi bacaklar kullanılıyor. Tek bacak kullanıyorsan işin basit. tek döngü ile işin biter ama 2 - 3 bacak kullanıyorsan hatta aynı anda farklı bloklar kullanıyorsan işin uzar gider. Size tek bacaklı bir ip blokundan anlatacağım.

Neyse önce ip adresimizi öğrenelim.

 System.Net.Dns.GetHostByName(Net.Dns.GetHostName).AddressList(0).ToString()

Bize ip adresimizi döndürüyor. Bu sayede sistemde hangi bacağı kullandığımızı öğreniyoruz. Şimdi split ile bloklar ayıralım.

 Dim bloklar() As String =  System.Net.Dns.GetHostByName(Net.Dns.GetHostName).AddressList(0).ToString().Split(".")

Bloklara ayırdık. şimdi ip blokları her biri byte den meydana geldiği için yani ip bloklarının her biri byte türündedir. Bu blokları for kodu ile byte.minvalue den byte.maxvalue ye kadar gezdirelim. Bu sayede kendi bloğumuzda bulunan bütün ipleri gezmiş olacaktır. sonrada bunları listboxumuza ekleyelim.

18 Haziran 2014 Çarşamba

Textbox Yazı Yazma Sihiri

Sihir mi değil mi bilmiyorum ama MYO da okurken hocamın gösterdiği ve çok hoşuma giden bir taktik göstermek istiyorum size.

Hani bazı programlarda textboxa yazıyı yazarken yazı rengi yeşil oluyo başka bir textboxa geçince o textboxun rengi yeşile dönüyo eski textbox normal halini alıyor. Bla bla bla. Projenize görsellik olarak hoşluk katacaktır.

Öncelikle olayları belirleyelim. Mesela Textboxa tıkladığımızda enter olayı meydana geliyor yani textbox a focuslanmışsın demektir. Neyse form üzerine textboxu attıktan sonra event kısmından enter olayına fare ile çift tıklayarak ekrana gelecek olan kodlara gerekli düzeltmeleri yapınız. Komutlar aşağıda.

17 Haziran 2014 Salı

Eventteki Sender ve E değişkenleri (object sender, EventArgs e)

Merhaba arkadaşlar.
Bu yazımda size Visual C# yada Visual Basic de butona çift tıkladığımızda
object sender, EventArgs e
değişkenlerinin ne işe yaradığını anlatacağım.

Öncelikle sender den başlıyorum.

Tıklanan bir butondan örnek vermek istiyorum anlatırken. Şimdi Buttona tıkladın. Object Sender o butonu temsil eder. Kısaca Nesneyi temsil ediyor. Sender objesini kendi türüne yani butonda butona, checkboxda checkboxa parse ederseniz daha rahat işlem yaparsınız. Çok detaya girmeden bir işlem yapacaksanız otomatik Control nesnesine pars etmenizi öneririm. Bu sayede aynı methodu birden fazla kontrolde kullanırken sorun yaşamazsınız. Yani checkbox ve textboxa enter(içine girdiğimizde) dediğimizde kalınlığını koyu yapıp leave(içinden ayrıldığımızda) eski inceliğine geri döndürebiliriz. Basit olsun diye butondan örnek vermek gerekirse aşağıdaki kodu bir inceleyin.


private void button_Click(object sender, EventArgs e)
{
    Button btn = (Button)sender;
    btn.Enabled = false;
}


13 Haziran 2014 Cuma

Okulda öğrendiğimiz gibi toplama yapan program

Bir çoğumuz hatırlar. Okulda toplamayı şema şeklinde yapardık. Örnek vermek gerekirse

      30
      40
+_____
      50

c# da yaparken ise genelde işlem hep arka planda otomatik hesaplar. Peki biz bunu tek tek nasıl hesaplarız?

Öyle bi mantık yürütmeliyiz ki program değil biz hesaplayalım. Elde olan sayıyı elinizde tutarak hesaplayalım. Bir blogda görmüştüm bu yapacağımız örnek bir yarışmada sorulmuştu. O zamanlar o yazı dikkatimi çekmemişti. Hatta hiç bakmadım bile girişi okudum puff dedim kapattım. Şimdi ise bir kahramanlık yapıp eskiden boş verdiğim bu programı yazmaya karar verdim. Sizinle de paylaşacağım ve tek tek satır satır hesaplayacağım. Adım adım anlatacağım.