5 Şubat 2010 Cuma

Generic List<T> Sıralama

Elimizde bir nesnemiz olsun. Örneğin doküman bilgilerini tutan DocumentInfo gibi.

public class DocumentInfo {       
       
 public string documentName;      
 public string documentId;
}
Bir de DocumentInfo nesnelerinden oluşan bir listemiz var.
List<DocumentInfo> documentList = new List<DocumentInfo>();
Bu listeyi doküman isimlerine göre (documentName) sıralamak istiyoruz. Şu şekilde yapabiliriz:

documentList.Sort(delegate(DocumentInfo document1, DocumentInfo document2)
          {
              return document1.documentName.CompareTo(document2.documentName);
          });

3 Şubat 2010 Çarşamba

ListView’de EnsureVisible

Belki bilinen bir metottur ama ben yeni öğrendim ve benim için güzel bir püf noktası oldu. ListView’e yeni bir item eklediğimizde scroll’un aşağı kaymasını sağlıyor.
ListViewItem item = new ListViewItem("x");
item.EnsureVisible();

Yeni bir item ekledik ve satırı bir aşağı kaydırdık. Ben bu metodu item için kullandım, fakat listview için de şöyle bir kullanımı varmış:

ListView myListView = new ListView();
myListView.EnsureVisible(myListView.Items.Count - 1);

Bunun farkı parametre olarak index değerini alması. Hangi satıra kaymasını istiyorsanız o satırın index değerini 
yazıyorsunuz. Yukarıdaki örnekte scroll en alttaki item’a kayacaktır.

28 Ocak 2010 Perşembe

Generic Listede Case Insensitive Arama

Herhangi bir eleman generic listede var mı diye kontrol ederken, büyük-küçük harfi önemsemeden kontrol etmek istiyorsak bunu nasıl yapabiliriz? Bir örnek verecek olursak;

List<string> imageFormats =
new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };

Resim formatlarını yazdığımız bu listede bu uzantılar büyük harflerle de yazılmış olabilir. Herhangi bir dosyaya resim formatında mı diye bakmak istediğimizde hata alırız. Bunu aşağıdaki gibi Contains metoduna parametre ekleyerek çözebiliriz:

private bool isImageFormat(string extension) { List<string> imageFormats =
            new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };
            return imageFormats.Contains (extension, StringComparer.OrdinalIgnoreCase);
}

14 Aralık 2009 Pazartesi

DataGridView Drag-Drop (Sürükle-Bırak)

Datagridview’de satırların yerlerini sürükle-bırak ile değiştirmek isterseniz, aşağıdaki 4 eventtaki (MouseMove, MouseDown, DragDrop, DragOver) değişiklikleri yapmanız yeterli olacaktır:

private Rectangle dragBoxFromMouseDown;
private int rowIndexFromMouseDown;
private int rowIndexOfItemUnderMouseToDrop;
private void datagridview1_MouseMove(object sender, MouseEventArgs e)
{
    if ((e.Button & MouseButtons.Left) == MouseButtons.Left)
    {
        // If the mouse moves outside the rectangle, start the drag.
        if (dragBoxFromMouseDown != Rectangle.Empty &&
            !dragBoxFromMouseDown.Contains(e.X, e.Y))
        {
            // Proceed with the drag and drop, passing in the list item. 
            if (datagridview1.Rows.Count != 0)
            {
                DragDropEffects dropEffect = datagridview1.DoDragDrop(
                  datagridview1.Rows[rowIndexFromMouseDown], DragDropEffects.Move);
            }
        }
    }
}

6 Kasım 2009 Cuma

Telefonlar İçin SMIL

  • Multimedya Mesaj hizmetlerini geliştirmek için Ericsson, Nokia, Siemens, Motorola, Logica, CMS ve Comverse ortak bir girişim başlattılar.
  • MMS multimedya içeriklerini tanımlamak için ortak dil olarak SMIL kullanılmaya başlandı.
  • SMIL, MMS mesajlarındaki içeriğin zamanlaması ve yerleşiminin tanımlanması açısından iyi tanımlanmış bir standart dil olduğundan, kabul edilmiştir.

SMIL XML serisi için yararlandığım kaynaklar:

1. http://www.w3schools.com/smil/default.asp, SMIL Tutorial

2. http://pet.ece.iisc.ernet.in/course/E0262/ch22.ppt, XML

3. http://www.cs.cmu.edu/~christel/MM2002/MM_111402.ppt, Synchronized Multimedia Interface Language (SMIL) and W3C

4. http://www.turkcebilgi.com/mms/ansiklopedi, MMS - Multimedia Messaging Service