Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
dbgrid sadece ekranda görünen satırlar
#1
dbgrid sadece ekranda görünen satırları nasıl alabilirim.. devexpress componentinde yapabiliyordum
ama kullanmıyorum artık cxgrid

for i := 0 to form1.cxGridDBTableView2.ViewInfo.VisibleRecordCount - 1 do
        begin
       cxCustomGridRecordViewInfo := form1.cxGridDBTableView2.ViewInfo.RecordsViewInfo[i];
         try
         form1.ImageEnMView6.AppendImage(VarToStr(cxCustomGridRecordViewInfo.GridRecord.Values[10] ));
         //  form1.ImageEnMView6.Proc.Crop(20,20,80,100);//.Zoom:=200;//.SetViewXY(300,300);
         except
         end;
       form1.ImageEnMView6.ImageBottomText[i]:=cxCustomGridRecordViewInfo.GridRecord.Values[1];
       end;
Cevapla
#2
(10-03-2021, Saat: 10:08)info@guzelceker.com Adlı Kullanıcıdan Alıntı: dbgrid sadece ekranda görünen satırları nasıl alabilirim.. devexpress componentinde yapabiliyordum
ama kullanmıyorum artık cxgrid

for i := 0 to form1.cxGridDBTableView2.ViewInfo.VisibleRecordCount - 1 do
        begin
       cxCustomGridRecordViewInfo := form1.cxGridDBTableView2.ViewInfo.RecordsViewInfo[i];
         try
         form1.ImageEnMView6.AppendImage(VarToStr(cxCustomGridRecordViewInfo.GridRecord.Values[10] ));
         //  form1.ImageEnMView6.Proc.Crop(20,20,80,100);//.Zoom:=200;//.SetViewXY(300,300);
         except
         end;
       form1.ImageEnMView6.ImageBottomText[i]:=cxCustomGridRecordViewInfo.GridRecord.Values[1];
       end;

Şu şekilde yapabilirsiniz. Burada THackGrid'i niye kullandık derseniz eğer, burası ince bir nokta; bir class'ın içeriğindeki property, field ve methot'ların görünürlüğü nedeniyle. Aşağıda kullandığımız DataLink vb. gibi bazı TDBGrid üyeleri class'ın içinde Protected kısmındadır. 
-Protected bildirimi bazı erişim kısıtlamaları koyar. Protected üyelere ya aynı Unit içinden, ya da aynı sınıf veya bundan türetilmiş bir sınıf içinden (başka bir Unit içinde olması farketmez) erişilebilir. Bunun dışında erişim yoktur. (Alıntı şuradan)
Haliyle TDBGrid'i bu Unit içinde türettiğimiz için Protected üyelerini bu unit içinden görebiliyor oluyoruz.

uses Unit2, Math;
{$R *.dfm}
type
  THackGrid = class(TCustomDBGrid); //Create a new class to access the protected properties

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  OrigActiveRecord : integer;
  s : string;
  wmax : integer;
begin
  DBGrid1.DataSource.DataSet.DisableControls;
  try
    s := '';
    OrigActiveRecord:=THackGrid(DBGrid1).DataLink.ActiveRecord;
    wmax := Max(THackGrid(DBGrid1).DataLink.BufferCount, DBGrid1.DataSource.DataSet.RecordCount);
    for i := 0 to  wmax-1 do
      try
        THackGrid(DBGrid1).DataLink.ActiveRecord:= i;
        s := s + DBGrid1.DataSource.DataSet.Fields[0].AsString + ' ' + DBGrid1.DataSource.DataSet.Fields[1].AsString + #13#10;
      finally
        THackGrid(DBGrid1).DataLink.ActiveRecord:= OrigActiveRecord;
      end;
  finally
    DBGrid1.DataSource.DataSet.EnableControls;
  end;
  ShowMessage(s);
end;

Cevapla
#3
 wmax := Max(THackGrid(DBGrid1).DataLink.BufferCount, DBGrid1.DataSource.DataSet.RecordCount);

bu satır doğru çalışmıyor arta kalan görünmeyen griddeki satırları da döngüde en sona işliyor

form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.DisableControls;
        try
         s := '';
         OrigActiveRecord:=THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord;
         wmax := Max(THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.BufferCount, form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.RecordCount);
         for i := 0 to  wmax-1 do
           try
             THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord:= i;
             form_AnaSayfa.ImageEnM_Anasayfa.AppendImage(form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.FieldByName('THUM').AsString);
             form_AnaSayfa.ImageEnM_Anasayfa.ImageBottomText[i]:=form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.FieldByName('ADSOYAD').AsString;
           finally
             THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord:= OrigActiveRecord;
           end;
       finally
       form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.EnableControls;
       end;

aşağıdakişekilde doğru sonuç alınmıştır..

 for i := 0 to  THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.RecordCount-1 do

            try
Cevapla
#4
(10-03-2021, Saat: 12:54)info@guzelceker.com Adlı Kullanıcıdan Alıntı:
 wmax := Max(THackGrid(DBGrid1).DataLink.BufferCount, DBGrid1.DataSource.DataSet.RecordCount);

bu satır doğru çalışmıyor arta kalan görünmeyen griddeki satırları da döngüde en sona işliyor

form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.DisableControls;
        try
         s := '';
         OrigActiveRecord:=THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord;
         wmax := Max(THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.BufferCount, form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.RecordCount);
         for i := 0 to  wmax-1 do
           try
             THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord:= i;
             form_AnaSayfa.ImageEnM_Anasayfa.AppendImage(form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.FieldByName('THUM').AsString);
             form_AnaSayfa.ImageEnM_Anasayfa.ImageBottomText[i]:=form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.FieldByName('ADSOYAD').AsString;
           finally
             THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.ActiveRecord:= OrigActiveRecord;
           end;
       finally
       form_AnaSayfa.sDBGrid_Musteriler.DataSource.DataSet.EnableControls;
       end;

aşağıdakişekilde doğru sonuç alınmıştır..

 for i := 0 to  THackGrid(form_AnaSayfa.sDBGrid_Musteriler).DataLink.RecordCount-1 do

            try

Selamlar, 
Buraya yazdıklarımı D10.3 Rio ile test etmiştim, yani çalışmaması gibi bir şey söz konusu değil. Fakat haklısınız, Max değil Min olması gerekiyordu, öyle bir hata yapmışım. Bendeki tablo küçük olunca da fark etmemişim.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  DBGrid Detay Gösterilmesi. OZCANK 19 9.624 05-04-2024, Saat: 00:48
Son Yorum: Pimapen_Nuri
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 798 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68
  DBGRID Otomatik Sıra No Alanı [ÇÖZÜLDÜ] bünyamin68 2 455 18-10-2023, Saat: 21:00
Son Yorum: bünyamin68
  DbGrid tüm satırların yüksekliğini ayarlama delphicim 2 407 16-10-2023, Saat: 23:06
Son Yorum: delphicim
  DBGRID yeni sütun ekle veri gir diğer sütundaki veriyi değiştir stevenskat 8 871 08-09-2023, Saat: 22:47
Son Yorum: m_ekici



Konuyu Okuyanlar: 1 Ziyaretçi