Arşiv Anasayfa Visual Basic
Sayfalar: 1
Msflexgrıd (ızgara) Kontrol Nesnesi By: By.TuRuT Date: August 11, 2009, 02:22:21 AM
zgarayı kullanmak kolaydır. Zor olan mangalı yakmak bence. Yaklaşık kırkbeş dakika sonra kaşlarının bir kısmı tutuşmuş, kapkara bir halde ve "yaktım! yaktım!" naralarıyla mutfağa girdiğim düşünülünce bu işlerde ne kadar becerikli olduğum ortaya çıkıyor sanırım. Ama sizin FlexGrid nesnesini kullanmak için mangallla falan uğraşmanıza gerek yok. projects/ components'ı açıp Msflexgrid'i seçmeniz yeterli (konuyu nasıl da bağladım ama!).

Şekil itibariyle ızgara kontrolü (hızlı yüklensin diye resim koymadım), hücre adı verilen yapılardan oluşur. Orada gördüğünüz her dikdörtgene hücre adı verilir. Bu hücrelerin içine domates, biber, pirzola, sakat at...vb koyup kızartamazsınız ama metin, ikon hatta resim bile koyabilirsiniz. Metin ile bitmap karıştırıp türlü bile yapabilirsiniz. Hatta ve hatta bu hücrelerin bir kaçını fare ile seçerek grup bile yapabilirsiniz (kötü tarafa çekilebilecek bir cümle oldu).

Özellikler

Şekil olarak neye benzediğini anladık ama dış görünüş o kadar önemli değildir. Yakışıklı bulup hemen atlamayın. Önemli olan kişisel özelliklerdir. Gelin bir de onlara bakalım.

Height, Weight Seçili olan bir hücrenin sırasıyla yüksekliğini ve genişliğini belirler.
Cols, Rows Izgaranızdaki sütun (cols) ve satır (rows) sayısını ayarlamanız içindir. Tasarım aşamasında veya pişirirken ayarlayabilirsiniz. Yukarıdaki ızgarayı gözönüne alırsak; ızgara.cols = 4: ızgara.rows=4
ColWidth, RowHeight Belirleyeceğiniz bir kolonun genişliğini veya belirleyeceğiniz bir satırın yüksekliğini ayarlarsınız.Yukarıdaki ızgarada 3. sütun diğerlerinden daha genş. Bunun için; ızgara.ColWidth(3)=200
Col,Row Izgaranın içinde bir hücreyi seçerken bir nevi koordinat belirtmeye yarar bunlar. ızgara.Col=3:ızgara.Row=2 komutları ızgaranın 3. sütun ve 2. satırın kesiştiği yerdeki hücreyi seçer.
FixedCols, FixedRows Hani bu tür tablolarda genelde gri renkte olup, hiç değişmeyen bölümler vardır ya, işte onları bu özellikler ifade eder.Tasarım aşamasında kontrolünüze sağ tuşla basıp, özellikler'i seçerseniz bunların sayısını kolayca ayarlayabilirsiniz. üstlerinde yazacak metinleri ise Form_Load olayı içerisinde halledersiniz.
Text Bir hücrenin içinde yazan metni ifade eder. Yani hücrelere bir şeyler yazmak için de bunu kullanacağız.
CellAlignment Bir hücrenin iç hizalama durumunu ayarlamaya yarar. Hizalama derken umarım metnin ortalanmış, sola yaslanmış, sağa yaslanmış gibi özelliklerinden bahsettiğimi anlamışsınızdır. 0-9 arası bir atama gerçekleştirebilirsiniz. Bi zahmet hepsini deneyin hem pratik yapmış olursunuz. ızgara.CellAlignment = atama%
ColAlignment Yukarıdaki özelliğe benzer fakat bu sefer hizalama tek bir hücrede değil seçili olan tüm sütunda uygulanır. Izgara.ColAlignment(5) = 0 komutu ile ızgaranın 5. kolonundaki hizalama sol üst taraf olarak ayarlanacaktır.
GridLines Hmm... Izgara demirlerinin cinsini belirler desem... Evet bir bakıma böyle. Hücre sınırlarını oluşturan çizgilerin tipini belirlemek için kullanılır. 0-4 arası atama yapabilirsiniz. (Deneyin...işiniz ne?)
GridLineWidth Hücre çizgilerinin kalınlığını belirler.
ScrollBars Teknoloji hızla gelişiyor. Artık ızgaraların kaydırma çubuklularından çııyor. Siz de bu kolaylıktan yararlanmak isterseniz 0-3 arası bir atama yapın ve beğendiğinizi alın! (0:yok, 1:yatay, 2:dikey, 3:her ikisi de. bu seferlik denemeye gerek kalmadı. Hadi bu kıyağımı unutmatın).
CellSelected boolean tipte bir özelliktir. Yani doğru/ yanlış. Bir hücrenin seçili olup olmadığını anlamaya yarar.
ColSel, RowSel Sizlere hücreleri fare ile seçip grup yapabileceğiniz söylemiştim. sanılanın aksine bu grup olaylarının kanuni ve ahlaki bakımdan hiç bir mahsuru yoktur. Her isteyen yapablir ve yaptırabilir. Tabi bu durumda hangi hücrelerin seçili grup içinde yer aldığınnın bilinmesi, veya belirlenmesi gerekir. işte bunun için kullanılır bu iki özellik. Col ve Row ile seçtiğiniz hücreden başlayıp, colsel ve rowsel ile seçili olan hücreye kadar bir bölge seçilir. Şekildeki gibi bir yeri seçmek için;
ızgara.col=1:ızgara.row=1 'Seçmeye başlayacağımız yeri belirliyoruz.
ızgara.colsel=2:ızgara.rowsel=2' Seçmenin yapılağı alan, bu hücreye kadar olan alandır.


1,1 1,2
2,1 2,2

Clip Izgaranın içinde seçili olan bölgenin içeriğini String (metin) olarak bir değişkene aktarmaya yarar. Bildiğiniz gibi string türü değişkenlerle toplama yapıyorsanız, sonradan gelen metin diğerinin ucuna eklenir.Diyelim ki ColSel, RoeSel ile bir bölge seçtiniz ve seçtiğiniz hücrelerde sırasıyla "erkan","ayça","ali","sibel" yazıyor. Izgara.clip=a$ yazarsak a$ değişkenin değeri: "erkanayçaalisibel" olur. Anladınız di mi?
Picture Izgaranın görünüşünün resmini çekmeye yarar. Bu şekilde ekrana sığmayan satır ve sütunlara da ulaşabilirsiniz. Resmi clipboard'a gönderip sonradan ne yapacaksanız o iş için saklayabilirsiniz.
PictureType Picture ile elde edeceğiniz resmin tipini belirlemeye yarar.0 yüksek kalite, 1 düşük kalite içindir. pek de öyle önemli bir fark yok. ama yine de ben 1 seçeneğini öneririm. Hem hafıza hem yazıcı için.
CellPicture Aktif hücreye görüntü yüklemek için kullanılır. LoadPicture ile yükleyebilir veya başka bir kontrolden çağırabilirsiniz. Izgara.Cellpicture = LoadPicture("c:\belgelerim\kedi.bmp") gibi bir komutla annenizin görmesini istemeyeceği bir resim yükleyebilirsiniz. Başka bir yol da; ızgara.CellPicture = PictureBox.picture. CellPictureAlignment ile resmin hizalanması ile ilgili ayarları yapabilirsiniz.
Sort En önemli özelliklerden biri. Seçilen satırları belirtilen kriterlere göre sıralamak için kullanılır. Bunu denemeniz zor olacağından biraz açıklıyayım.
0 Sıralama işlemi yapılmaz. (o zaman niye sort komutnu kullanayım ki di mi?)
1 Artan sırada sıralama. Genel
2 Azalan sırada Sıralama. Genel
3 Artan sırada sıralama. Sayısal
4 Azalan sırada sıralama. Sayısal
5 Artan sırada sıralama. Metin (Büyük-küçük harf duyarsız)
6 Azalan sırada sıralama. Metin (büyük-küçük harf duyarsız)
7 Artan sırada sıralama. Metin (Büyük-küçük harf duyarlı)
8 Azalan sırada sıralama. Metin (Büyük-küçük harf duyarlı)
9 Özel. Compare olaynın gerçekleşmesine sebeb olur.


Özelliklerin önemli olanları bu kadar. örnekleri şimdi mi yapalım yoksa sonunda mı? hmm. Hızımı almışken devam edeyim de sonra bakarız örneklere.

Olaylar ve Metotlar

Bir nesne olmasındandır ki, bunun da kendine özgü olay ve metotları vardır. ("Ne yani ne olayı ne! kondu işte kondu!" Cem Yılmaz. (Bilenler anlar!))

Compare Sıralama (sort) özelliği 9 olarak atandığında gerçekleşen olaydır. Ben bişe anlamadım. anlayan varsa bana da anlatsın (kimse mükemmel değildir ve kimse her şeyi bilemez!).
EnterCell, LeaveCell Hücreye giriş-çıkışları kontrol eder (ehe).
Scroll Kaydırma çubukları tarafından kaydırıldığında bu olay olur (bundan sonra bunun kadar aşikâar olaylar anlatılmayacaktır, haberiniz olsun!)
Clear Izgaranın her türlü içeriğii temizlemek için kullanılır. Satır ve sütun sayısında bir değşiklik olmaz.
AddItem Bir gride satırlar eklemek için kullanılır. ızgara.addItem içerk$,[index%] .index% kullanıma bağlı olup eklenecek satırın yerini belirtir. İçerik$ ile belirtilen metin (string), yeni satırn ilk sütununda yer alır. Diğer sütunlara da bilgi yazdırılacak ise bu char(9) (tab) karakteri ile sağlanabilir. içerik$ = "örnek" & char(9) gibi...
RemoveItem Bir gridden satır silmek için kullanılır. Izgara.RemoveItem 5 komutu ile 5 nolu satır ızgaradan silinecektir.
Oh be sonunda hallettik bu işi de. şimdide verdiğim sözü tutp bir kaç örnek yerleştirelim sayfaya.

Örnekler

1. Picture - PictureType

Izgaranın içeriğini clipboard'a aktarmak ile ilgili bir örnek (kimse de anlamamıştı! ha). Adı grid1 olan bir ızgara ve bir command button yerleştirip kodu yapıştrın. Tuşa bastıktan sonra paint programını (yada resim yapıltırabileceğiniz her hangi bir program) çalıştırıp ctrl+ins yapın. Kodun gereksiz zahmetler içerdiğini biliyorum. Maksat size bazı komutları tanıtmak. Select case kalıbını bilmeyenler varsa kodu iyi incelesinler. clipboard nesnesine ise ayrıca değinilecektir.

Private Sub Command1_Click()
Clipboard.SetData grid1.Picture
End Sub

Private Sub Form_Load()
grid1.Cols = 2
grid1.Rows = 6
grid1.ColWidth(0) = 1120
grid1.FixedRows = 1
grid1.BackColor = vbBlue
For sutun = 0 To 1
For satir = 0 To 5
Select Case sutun
Case 0:
Select Case satir
Case 0: Text = "Oyuncu"
Case 1: Text = "Şifo Mehmet"
Case 2: Text = "Ahmet D."
Case 3: Text = "Ayhan"
Case 4: Text = "Hakan Şükür"
Case 5: Text = "Rüştü"
End Select
Case 1:
Select Case satir
Case 0: Text = "Puanlama"
Case 1: Text = "9"
Case 2: Text = "8"
Case 3: Text = "7"
Case 4: Text = "8"
Case 5: Text = "9"
End Select
End Select
grid1.Col = sutun: grid1.Row = satir
grid1.Text = Text
Next satir
Next sutun

End Sub


--------------------------------------------------------------------------------

2. Sort

Sıralama ile ilgili küçük bir program.

Private Sub Command1_Click()
grid1.Sort = 4
End Sub

Private Sub Form_Load()
grid1.FixedCols = 0
grid1.FixedRows = 0
grid1.Cols = 1
grid1.Rows = 5
End Sub

Private Sub grid1_KeyPress(KeyAscii As Integer)
If Not (KeyAscii > 47 And KeyAscii < 59) Then MsgBox "lütfen bir sayı giriniz"
grid1.Text = grid1.Text + Chr$(KeyAscii)
End Sub

Ynt: Msflexgrıd (ızgara) Kontrol Nesnesi By: melek_03 Date: May 04, 2010, 06:36:29 PM
Emeğine sağlık..
Ynt: Msflexgrıd (ızgara) Kontrol Nesnesi By: sibeL* Date: May 04, 2010, 06:41:29 PM
Emeğine Sağlık Gülmek :)

SiteMap - İmode - Wap2