- Bahsedeceğim konular ileri düzey Delphi gerektirir. Çözümünü bulmakta zorlanabilirsiniz.
- Yapılacak en basit yol (istediğiniz opsiyonlar var mı bilmiyorum ama) QuantumGrid veya benzeri üçüncü parti bileşen paketini kurmak. (@Admin bu yazdıklarımı görünce bana gülecektir. Çünkü, çözümü varken üçüncü parti bileşen kullanmaya özel olarak karşıyım.)
- Delphi süprizlerle dolu bir dil.
- DBGrid aslında bir StringGrid özelliklerine sahiptir. Zaten şeklinden de bu çıkarımda bulunmuşsunuzdur.
- Delphi'de benzer bileşenler genelde en basit halinden türetilerek meydana gelirler.
- Madem DBGrid, StringGrid gibi bir bileşen, şunun da çalışması lazım.
- Başlık satır'ın yüksekliğini ayarlamak için
Kod: Tümünü seç
StringGrid1.RowHeights[0] := 30;
Kod: Tümünü seç
DBGrid1.RowHeights[0] := 30;
- Bu nedenle DBGrid'i direkt kullanamayacağız. Siz yine formunuza DBGrid koyacaksınız, bildiğimiz türden atamaları Datasource vs. yapacaksınız.
- Formunuzun en başındaki Type satırının daha da üzerine gelip yapacağınız yeni Type tanımlaması ile bunu geçerli kılabilirsiniz.
Ödev 1: DBGrid'den türeyen yeni bir DBGrid nasıl yapılır. Bunun çözümü probleminizin çözümü...
Kod: Tümünü seç
***
DBGrid.RowHeights[0] := 30; demenize halen müsade edilmez.
Kod: Tümünü seç
TYeniDBGrid(DBGrid1).RowHeights[0] := 30;
- İki satır başlık yazma konusuna gelince.
- DBGrid'in ilk satırının height değerini büyüterek genişlettiniz. Şimdi buraya nasıl iki satır başlık yazacaksınız ona bakalım.
- TLabel'daki WordWrap olayı veya araya #13 (Enter Tuşu) eklenmiş yazılar; DBGrid caption'unda işe yaramaz.
- Bunun için Başlık satırını boşaltıp, Canvas (tuval) boyama yoluyla istediğiniz satırları yazdırmak zorundasınız.
- Bu kodlar tabiki DBGrid'in OnDrawColumnCell olayına yazılır.
Ödev 2. : DBGrid Canvas'ına nasıl yazı yazılır.
Yardımcı olacak Kod :
Kod: Tümünü seç
If Column.Index = 0 then // Hangi kolona yazılmasını istiyorsanız
begin // Rect.Left : İlgili kolonun soldan sağa doğru (x) koordinatı.
...
end;
Kod: Tümünü seç
***
- Cevapları araştırarak bulursanız bu kavramlar gelecekte bir çok işinize yarayacaktır.
- Çalışmalarınızda başarılar dilerim.