Bağlantılı Öğeler
Son Yorumlar
- En Kısa Yol Algoritması (10)
- Montaj hattı dengeleme (Konum Ağırlıklı Dengeleme Metodu) (3)
- PHP de Güvenlik Kodu Uygulaması (6)
- Goalunited İçin Saha Yerleşim Hesaplayıcı (12)
- Sıralama Algoritmaları (4)
- Bumerang Web Sitesi ve Blog Ödülleri Başlıyor! (1)
- Rubik Küp Çözümü (1)
- GoalUnited Rehberi (7)
Kimler Sitede
Şu anda 9 ziyaretçi çevrimiçiBağış
| Visual Basic MSHFlexGrid Nesnesi |
| Makale - Visual Basic | |||
| Yazar ugokhan | |||
| Çarşamba, 30 Nisan 2008 12:15 | |||
|
MS Excel'deki grid (ızgara) görünümüne benzer birimler oluÅŸturmak için kullanılabilecek bir nesne. Database üzerinden hazır veri çekebilen DataGrid nesnesine göre daha serbest bir kullanımı vardır. Bu konu anlatımında bu nesnenin önemli özelliklerini anlatacağım.
Nesneyi Projeye Ekleme MSHFlexGrid nesnesi Visual Basic toolbar'ına default olarak gelen nesnelerden biri deÄŸildir. Bu sebeple önce bu nesneyi projemize eklememiz gerekir. Project > Components menüsünden veya Ctrl+T kısayoluyla komponentler penceresi ekrana getirilir. Buradan "Microsoft Hierarchical FlexGrid Control 6.0 (OLEDB)" seçeneÄŸi iÅŸaretlenir ve "Uygula" butonuna basılarak nesne projeye eklenmiÅŸ olur. Nesne Ön Bilgileri MSHFlexGrid nesnesini form üzerine bir dikdörtgen çizer gibi ekleyin. İlk eklemede 2 satır ve 2 sütun olarak gelecektir. İleri de bunları istediÄŸimiz gibi arttırıp azaltabiliriz. Nesne üzerinde saÄŸ tıklayıp "Properties" seçeneÄŸi seçilirse karşınıza bu nesneye ait bazı ayarlamaları yapabileceÄŸiniz bir pencere gelir. Kısaca bunlardan bahsedelim: Property Pages - General : Rows : Nesne Üzerinde Kullanılacak Satır Sayısı AllowUserResizing : Program çalışırken kullanıcıya satır ve sütun geniÅŸliklerini mouse ile deÄŸiÅŸtirebilme iznini açar. Sadece satırlara veya sadece sütunlara izin verebileceÄŸiniz gibi, tamamen kaldırabilir veya hepsine izin verebilirsiniz. Penceredeki diÄŸer sekmeler görsel ayarlarla ilgilidir. Hücre çizgilerinin tipleri, fontlar, hücre renkleri ..vb. Mesela gri hücrelerdeki satır ve sütun baÅŸlıklarını koyu (bold) yapmak için Font sekmesine girip buradaki FontFixed deÄŸeri seçilir ve yandaki kısımdan ayarları yapılır. FontFixed gri hücrelerin, Font ise beyaz hücrelerin ayarlarıdır. Bir Hücreye Yazı Yazdırmak MSHFlexGrid nesnesi üzerindeki bir hücreye yazı yazdırmak için öncelikle o hücrenin koordinatları belirtilmelidir. Bunu nesnenin .col ve .row özellikleri ile ayarlayıp .text özelliÄŸi ile yazımızı yazarız. Mesela 1,1 hücresine "galatasaray" yazdıralım. Bunun için, MSHFlexGrid.Col = 1 ÅŸekline yaparız. 3,5 hücresine "gokhanca.com" yazdırmak için ise MSHFlexGrid.Col = 3 kodunu kullanabiliriz. İlk koordinatlar 0,0 ile baÅŸlar. Sonra sırayla devam eder. Dikkat edilirse bir yazı yazdırmak için 3 defa nesneye ait deÄŸiÅŸiklik yaptık. Bu her seferinde programcıyı yoracaktır. Bu iÅŸlemi küçük bir sub ile tanımlarsak daha pratik bir iÅŸlem yapmış oluruz. Örnek bir sub ÅŸöyle olabilir. Sub TabloYaz(satir As Integer, sutun As Integer, yaz As Variant, obje As MSHFlexGrid) Burada çok pratik bir uygulama daha yapmış olduk. EÄŸer ki, projede birden fazla MSHFlexGrid nesnesi varsa nesne ismini de belirtip hangisine yazdırma yapacağımızı da belirleyebiliriz. Diyelim ki, iki tane tablomuz olsun ve bunların isimleri LigSira ve TakimKadro olsun. TabloYaz 1, 1, "Fenerbahçe", LigSira ÅŸeklinde kullanabiliriz. Birden fazla form üzerinde bunu kullanmak istiyorsanız projenize bir Module ekleyip Sub ifadesini Public olarak tanımlamalısınız. Bir Hücredeki DeÄŸeri Okumak Hücreye yazdırma iÅŸlemiyle aynıdır. Yine öncelikle satır ve sütun deÄŸerlerini tanımlarız ve text özelliÄŸinin deÄŸerine bakarız. 2,13 hücresinin deÄŸerini almak için aÅŸağıdaki kodu kullanabiliriz. MSHFlexGrid.Col = 2 Yine bunu da bir function ile belirtip daha pratik bir kullanım saÄŸlayabiliriz. Üstte sub yapmıştık ama burada function kullandık. Çünkü burada bir deÄŸer dönmesini istiyoruz. Yazdırma iÅŸleminde bir deÄŸer dönmesine gerek yok. Function TabloOku(satir As Integer, sutun As Integer, obje As MSHFlexGrid) As Variant Kullanımı da ÅŸöyle olabilir. Mesela Tablo1 isimli MSHFlexGrid nesnemiz üzerinde birinci sütundaki ilk 10 satırı tarayıp içinde "gokhanca" yazan ifadeleri bulalım: For i = 1 To 10 Kolon GeniÅŸliklerini Ayarlamak Programınızda kullanacağınız grid nesnesinde her sütunun geniÅŸliÄŸi aynı olmayabilir. Bunu tek seferde Form_Load ( ) olayında tanımlayabilirsiniz. Bunun için hangi sütunda deÄŸiÅŸiklik yapmak istiyorsanız o sütunun indexini belirtip ColWidth deÄŸeriyle ayarlama yaparız. Tablo1.ColWidth(0) = 200 EÄŸer daha önceden nesnenin AllowUserResizing deÄŸerine izin verdiyseniz bunu mouse ile de yapabilir kullanıcı. Ama ilk açılışta biçimsiz bir tablo istemiyorsanız kodlarla geniÅŸlikleri belirtip ayarlama yapabilirsiniz. Sütun DeÄŸerlerini Büyükten KüçüÄŸe Sıralama Bir MSHFlexGrid nesnesi kullanıyorsak ÅŸayet, illaki bir sütunu büyükten küçüÄŸe sıralamamız gerekebilir. Nesnenin Sort özelliÄŸi ile bunu çok kolay bir ÅŸekilde yapabiliriz. Bunun için öncelikle hangi sütunda sıralama yapacaksak sütunu belirlememiz ve ondan sonra sıralama ÅŸeklini seçmemiz gerekir. Bir örnek yapalım. AÅŸağıdaki birinci resimde olduÄŸu gibi bir tablomuz olsun:
Diyelimki birinci sütunu büyükten küçüÄŸe dizmek istiyoruz. Bunun için aÅŸağıdaki kodları yazarız. Tablo1.Col = 1 Buradaki Col ifadesi hangi sütunda sıralama yapılacağını belirtir. Sort ise sıralama türüdür. 1 küçükten büyüÄŸe, 2 ise büyükten küçüÄŸe sıralama yapar. Diyelim ki 2. sütundaki deÄŸerleri küçükten büyüÄŸe sıralayalım. Üstteki resimdeki 3. tablodaki gibi. Tablo1.Col = 2 2. sütundaki deÄŸerleri büyükten küçüÄŸe dizmek için ise aÅŸağıdaki ayarlamaları yaparız. Tablo1.Col = 2 Sıralama iÅŸlemi için bir sub yazalım. Daha kolay iÅŸlem yapmış oluruz. Sub TabloSirala(sutun As Integer, yon As Byte, obje As MSHFlexGrid) Diyelimki Tablo1 tablosundaki 5. sütunu küçükte büyüÄŸe sıralamak isteyelim: TabloSirala 5, 1, Tablo1 iÅŸte bu kadar ;)
|

Yorumlar
"SelectionMode" tek bir satır veya sütunu seçmek için yeterli değil. Sadece seçimi satır ve sütun olarak ayarlamaya yarıyor. Bu durumda birden fazla satır veya sütun seçilebilir. Kod örneğin için teşekkür ederim. Tek bir satır veya sütunu seçtirmek isteyenlere yardımcı olacaktır.
SelectionMode bu denetimden row(satır) veya col(sütün) seçimi yapsanız bile birden fazla seçim yapmayı engellemez.
Eğer sadece tek bir satır veya sütününun seçimini yaptırmak istiyorsanız, tıklama yöntemine şunu eklemelesiniz;
Private Sub MSFlexGrid1_Click()
MSFlexGrid1.rowsel = MSFlexGrid1.row
'tek satır seçtirmek için
MSFlexGrid1.colsel = MSFlexGrid1.col
'tek sütün seçtirmek için
End Sub
Murat Bey, ayrı bir form üzerinde istediğiniz bir haftaya ait maçları çağırabilir ve değişiklikleri yapabilirsiniz. Sonra tekrar maçları kaydedersiniz. Kulüp içerisindeki kategori olayını anlamadım.
yardım ederseniz çok sevinirim
RSS beslemesi, bu iletideki yorumlar için.