String Grid ve check box

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

String Grid ve check box

Mesaj gönderen mkysoft »

String Grid'in bir sutununu checkbox olarak kullanmak istiyorum. İnternette aradım bir örnek buldum ama line ile çizgi çizerek check box yapmaya çalışıyor. Haliyle pek güzel gözükmüyor. Devexpress'deki gibi yapabilir miyim?
Teşekkürler.
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Mesaj gönderen pasa_yasar »

Kod: Tümünü seç

Procedure TForm1.Create(Sender:TObject);
begin
 dbcombobox1.visible:=False;
end;

Procedure TForm1.DBGrid1DrawDataCell(Sender:Tobject; const Rect:Trect; Field:TField; State:TgridDrawState);
Begin
 if (gdfocused in state ) then
begin 
 if (field.fieldname=Dbcombobox1.datafield) then
begin
 dbcombobox1.left:=rect.left + dbgrid1.left;
 dbcombobox1.top:=rect.top + dbgrid1.top;
 dbcombobox1.width:=rect.right - rect.right;
 dbcombobox1.visible:=true;
end;
end;
end;

Grid üzerinde combobox istediğin alanlarda görülür ve işlem yaptıktan sonra girdiğin bilgiyi gerekli alana gönderir. daha sonra ise gizlenir. 

Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

sanırım burda bir yanlış anlaşılma var, #mkysoft combobox değil checkbox istemiş. hem veritabanı bağlantısı da söz konusu değil. ama yine de çok teşekkürler. Güzel bir kod örneği olmuş.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

teşekkürler. Benim yapmak istediğim, checkbox sürekli o hücrenin yerinde duracak. sayfayı kaydırdığımda kayacak. cxgrid'deki checkbox'lı sütun gibi olacak yani. Hücrelerin üzerine birer checkbox koyulabilir tabi ama grid scroll olduğunda baya bir değişiklik gerekecektir.
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Mesaj gönderen pasa_yasar »

özür. kodu yazarken aklımda combobox diye kalmış. combobox yerine checkbox yap gitsin :lol:
Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Mesaj gönderen Opt2000 »

Selam,

pasa_yazar'ın verdiği kodu checkbox'la değiştirirsen yeterli olacaktır. Focus olmayan hücreler içinse, bence resim çizdir. Yani Check Box'ın işaretli ve işaretsiz resimlerini al, bunları programa resource olarak ekle ve verinin durumuna göre işaretli ya da işaretsiz resmi hücre çizilirken CustomDraw ile çizdir. Böylece scroll'lar problem yaratmaz, hem de gereksiz sistem kaynağı harcamazsın. Hücrelerin customdraw eventi ile ilgili forumda yeterince örnek kod var, küçük bir arama ile kolayca yapabilirsin.

Kolay gelsin,
Bahadır Alkaç
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Teşekkürler. Buda aklıma gelmişti ama daha güzeli olurmu acaba diye sorayım demiştim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@Opt2000

+1

- StringGrid-DrawCell olayında şartları belirler, hücre rengini/resmini belirlersin.

- MouseClick olayında ilk hücreye olup olmadığını irdelersin.

- Satırdaki ilk hücreye dilediğin veriyi yazarsın.

- StringGrid1.Repaint derdiğinde hemen sonuç alırsın.
Resim
Resim ....Resim
Cevapla