cx grid multi select editleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

cx grid multi select editleme

Mesaj gönderen baloglurecep »

selamlar arkadaşlar...
daha evvel dx grid kullanıyordum. cx gride terfi edelim dedim. işlevlerini öğrenmeye çalışıyorum. çoğu kısmını çözdüm sayılr.(bana lazım olan kısımlarını). yapamadığım çoklu seçimlere ait kod yazmak. çoklu seçimlere ait satırları editlemek, bir tabloya aktarmak gibi işlevler yapmak istiyorum. dx gridde yaptığım iş cx gridde olmuyor.

dx gridde kullandığım kod:

Kod: Tümünü seç

for i:=0 to dxDBGrid1.SelectedCount -1 do
        begin
        DM.T_EMANET.GotoBookmark(pointer(dxDBGrid1.SelectedRows[i]));

                 DM.T_EMANET.Edit;
          DM.T_EMANETDURUM.AsInteger:=1;
          DM.T_EMANET.Post;
          END;
    
bu kısımda cx gridde yazdığım kod ama çalışmıyor.

Kod: Tümünü seç

for i:=0 to cxGrid1DBTableView1.Controller.SelectedRecordCount-1 do
		  begin
      RAP_OKUYUCULAR.GotoBookmark(pointer(cxGrid1DBTableView1.Controller.SelectedRows[i]));

         	RAP_OKUYUCULAR.Edit;
    	  RAP_OKUYUCULARGIZLE.AsInteger:=1;
  	    RAP_OKUYUCULAR.Post;
        END;
      
cx gridin multi selecet özelliği aktif. tüm kontrollerini inceledim. bir şey bulamadım. yardımcı olabilecek arkadaşlara şimdien teşekkür ediyorum.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: cx grid multi select editleme

Mesaj gönderen aslangeri »

s.a.
çalışmıyor derken hata veriyor demek mi istedin.
eğer hata veriyor ise verdiği mesajı yazın.
hata vermiyor ama işlemide yapımıyor diyorsanız selectedrow da değer varmı onu kontrol edin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: cx grid multi select editleme

Mesaj gönderen baloglurecep »

selamlar tekrar aslan geri hocam....

Kod: Tümünü seç

IF cxGrid1DBTableView1.Controller.SelectedRowCount=1 THEN
  BEGIN
  IF DM.bsSkinMessage1.MessageDlg2('Emanet kaydını iptal etmek istediğinizden emin misiniz?','DİKKAT',mtError,[mbYes,mbNo],0)=ID_YES THEN
  DM.T_EMANET.Delete;
  END
ELSE
  BEGIN
  IF DM.bsSkinMessage1.MessageDlg2('Seçili '+IntToStr(cxGrid1DBTableView1.Controller.SelectedRowCount)+' Emanet kaydını iptal etmek istediğinizden emin misiniz?','DİKKAT',mtError,[mbYes,mbNo],0)=ID_NO THEN EXIT;

  for i:=0 to cxGrid1DBTableView1.Controller.SelectedRowCount-1 do
    begin
    cxGrid1DBTableView1.Controller.SelectedRows[i].Focused:=True;

    DM.T_EMANET.Delete;
    end;
  END;
böyle bir kodum var. tekli seçimde sorun vermezken çoklu seçimde silme yaparken diyelim 6 seçim yaptım 3 ünü siliyor ardından
list index out of bounds(3) kaç tane silmediyse yada sildiyse o kadar sayıyı parantez içerisde gösteriyor.

anlamadım valla.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: cx grid multi select editleme

Mesaj gönderen aslangeri »

a.s.
bunun sebebi sen döngü ile listedeki elemanları silerken listedeki eleman sayısının azalması.
for döngüsünü tersten çalıştır.

Kod: Tümünü seç

  for i:=0 to cxGrid1DBTableView1.Controller.SelectedRowCount-1 do 
değil. onun yerine

Kod: Tümünü seç

  for i:=cxGrid1DBTableView1.Controller.SelectedRowCount-1 downto 0 do 
şeklinde yaz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
baloglurecep
Üye
Mesajlar: 261
Kayıt: 21 Tem 2006 04:59
İletişim:

Re: cx grid multi select editleme

Mesaj gönderen baloglurecep »

teşekkür ederim aslan geri hocam söytlediklerinizi yaptıktan sonra sorun halloldu. saygılar
Cevapla