dbgrid

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

dbgrid

Mesaj gönderen comfort »

Arkadaşlar herkese kolay gelsin;
Tablomda durum alanım var.Firebirdde boolean alan olmadığı için smallint kullanıyorum ve true için 1 false için 0 değerini kullanıyorum.Dbgridde listeleme yaparken bu alanlar 0 ve 1 şeklinde görülüyor.dbgridde bunu 0 ise "yanlış" 1 ise "doğru" olarak nasıl gösterebilirim.

Yardımcı olan arkadaşlara şimdiden teşekkür ederim.
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

Table yada query ne kullanıyorsan üzerinde çift tıkla ve fields editörde yeni bir field ekle. field'ın adı durumstr olsun. türü calculated olsun. type 'ı string olsun.

Daha sonra dataset'inin oncalcfields olayına aşağıdaki gibi birşey yaz

Kod: Tümünü seç

  if table1durum.asinteger=1 then table1 table1durumstr.asstring:='doğru'
                                     else  table1 table1durumstr.asstring:='yanlış';

kolay gelsin. bu arada gride yeni eklediğin fieldları eklemeyide unutma...
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

@bgoktaş hocam sana çok teşekkür ederim tam istediğim gibi oldu.Şimdi sadece meraktan soruyorum dbgridde istediğimiz bir hücrenin içeriğini değiştiremezmiyiz.Stringgrid deki gibi mesela:?:
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

içerikten kastın tabledeki veriler mi?

eğer verileri değiştirmek istiyorsan bunu zaten yapabiliyor olman gerekiyor.(tabi table kullandıysan) gridin ve tablenin readonly özelliği true ise değiştirebilirsin. eğer kullandığın dataset query ise updatesql kullanman gerekiyor arama yaparsan bulabilirsin...
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

yok hocam yanii demek istediğim şu

stringgrid1.cells[1,1]:='deneme''; olayını dbgridde bulamadım :?: :?:
bgoktas
Kıdemli Üye
Mesajlar: 769
Kayıt: 27 Nis 2004 10:32
Konum: istanbul

Mesaj gönderen bgoktas »

dbgridde hücresel konumlanma yapamazsın diye biliyorum. ama daha esnek olan;

Kod: Tümünü seç

 table1durum.asinteger:=1;
şeklinde bir değişikliği grid zaten algılar.

bu durumda gridin üzerinde olduğu kayıtı değiştirir.

ayrıca belli kriterlere uyan kayıt üzerine dallanma yapıp değişiklikte yapabilirsin;

Kod: Tümünü seç

table1.locate('sicilno',edit1.text,[]);
table1.edit;
table1durum.asinteger:=1;
table1.post;
şeklinde...
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

evet hocam bende dediğin gibi düşünmüştüm ama drawcolumncell veya drawdatacell olayları ile böyle bir müdahale yapılabilir kanaatindeyim genede
İyi Çalışmalar :bravo:
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

bu işlemide calculated fieldlarla yapsanız daha sağlıklı olur bence :idea:
.-.-.-.-.-.-.-. ^_^
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

comfort yazdı:evet hocam bende dediğin gibi düşünmüştüm ama drawcolumncell veya drawdatacell olayları ile böyle bir müdahale yapılabilir kanaatindeyim genede
İyi Çalışmalar :bravo:
Bahsi geçen procedure lerde genelde DBGrid in satır ve sütunlarının renklendirilmesi için kullanılır. Hücre içerisinin değişiminden bahsetmek doğru olmaz!. Esas olan DBGrid in DataSource una bağlı DataSet in herhangi bir satırı/kayıtı üzerinde değişikliktir. DBGrid DataSet için sadece kayıtları topluca gösteren bir arayüz/araçtır.

Not: Bazen çok basit açıklamalar yapmak zorunda kaldığım için kusura bakılmasın. Ya sorunun soruluşundan yada önemli mantık/yöntem hatası bu tür açıklamalar yapmak gerektiriyor :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
comfort
Üye
Mesajlar: 214
Kayıt: 28 Ara 2004 06:37
Konum: İzmir
İletişim:

Mesaj gönderen comfort »

Yok Hocam estağfurullah sizin bu açıklamalarınızla öğrenicez bizde bu işi.
Yardım ve ilgileriniz için hepinize Teşekkür ederim.
Cevapla