
DBGrid virgüllü sayi
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
DBGrid virgüllü sayi
Sayilarin DbGridde virgüllü görünmesini istiyorum. Query nesnesinde filedlarin DisplayFormati ile yapiliyor, bunu biliyorum ama benim daha degisik bir durumum soz konusu. Query nesneme sabit bir sql cümlesi yazip fieldlari ekleyemiyorum çünkü fieldlar kullanicinin istegine gore degisebiliyor. Yani bu virgulleme islemini rumtime yapmam lazim, ama nasil? DBGrid yerine Stringgrid kullanayim dedim arada baya bir hiz farki olustu. Ayni sonucu (donen sonuc sayisi arttikca aradaki fark da buyuyor) birinde 6 sn de digerinde 6 dk 20 sn de aldim. 

DBGridle ilgili bir sorum daha olacak..yeni bir baslik açmayayim dedim...
StringAlignGrid adinda bir bilesen kullaniyorum onda AdjustColWidths ozelligi var. Yani kolonun width ini içinde yazili olan degerlere gore degistiriyor. DBGridde boyle birsey yapabilimiyiz? (ustteki sorumdaki olay yine geçerli yani runtime)
dbgrid1.Columns.Items[0].Width := 10;
gibi deigisiyor ama belli bir width degil, icindeki bilginin uzunluguna gore..
StringAlignGrid adinda bir bilesen kullaniyorum onda AdjustColWidths ozelligi var. Yani kolonun width ini içinde yazili olan degerlere gore degistiriyor. DBGridde boyle birsey yapabilimiyiz? (ustteki sorumdaki olay yine geçerli yani runtime)
dbgrid1.Columns.Items[0].Width := 10;
gibi deigisiyor ama belli bir width degil, icindeki bilginin uzunluguna gore..
Kolondaki butun degerleri sira ile gizli bir label'a atayarak maksimum boyda olan bulunup ona gore bir genisletme yapilabilir.
Fakat bu islemi butun tabloyu bastan sona tarayarak yapmak olayi biraz yavaslatabilir. Bu yuzden kayitlarin gride alinma anlarinda bu kontorl yapilabilir. mesela Ondrawdatacell eventine kod ekleyerek her sutun icin maksiumum genislik bulunabilir.
Fakat bu islemi butun tabloyu bastan sona tarayarak yapmak olayi biraz yavaslatabilir. Bu yuzden kayitlarin gride alinma anlarinda bu kontorl yapilabilir. mesela Ondrawdatacell eventine kod ekleyerek her sutun icin maksiumum genislik bulunabilir.
Ek Bilgi
Merhaba,
Ek bir bilgi vereyim belki biliyorsunuzdur ama yinede olsun,
Gibi tüm fieldları kontrol ettirip formatlamasını runtime'da gerçekleştirebilirsin, hatta default size'larını belirleyip, örneğin integer field için size 20 olsun, string için 50 olsun gibi formatlarını da default bu döngü içersinde yaptırabilirsin.
Kolay Gelsin.
Ek bir bilgi vereyim belki biliyorsunuzdur ama yinede olsun,
Kod: Tümünü seç
For intI := 0 To qrySorgu.FieldCount - 1 Do
Begin
If qrySorgu.Fields[intI].DataType = ftInteger Then
qrySorgu.Fields[intI].DisplayFormat = '#,##0'
Else If qrySorgu.Fields[intI].DataType = ftFloat Then
qrySorgu.Fields[intI].DisplayFormat = '#,##0.00'
Else If qrySorgu.Fields[intI].DataType = ftDate Then
qrySorgu.Fields[intI].DisplayFormat = 'dd.mm.yyyy' ;
End ;
Kolay Gelsin.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Bazı DBGridler içinde özellikle Quantum Grid içinde AutoWith yada adjust with gibi birşey olacaktı bunlarda işini görebilir belki. Ama ben genede tecrübelerimden faydalanarak söyliyeyim müşterilere genede eksik şeyler çıkar ve beğenmezler
o yüzden çok fazla incik boncuk la uğraşmayın.
Kolay gele

Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!