2008-11-16 4 views
8

У меня есть TDbGrid, и я могу с легкостью определить, сколько столбцов находится в нем во время выполнения с свойством FieldCount, но похоже, что соответствующее свойство RowCount не отображает, сколько записей отображается. Как я могу это узнать?Подсчет строк в TDbGrid

ответ

8

Вы можете попробовать:

DBGrid1.DataSource.DataSet.RecordCount 

Может быть, есть более эффективные решения. Но это сработало для меня.

+3

TDataSet.RecordCount часто дает -1 в зависимости от ситуации (например, запросы). – 2008-11-16 21:55:06

11

Оба RowCount и VisibleRowCount являются охраняемыми объектами в TCustomGrid, которые не выставлены в TDBGrid. Но вы можете обойти это следующим образом:

type 
    TDummyGrid = class(TDBGrid); 

    RowCount := TDummyGrid(MyDBGrid).RowCount; 
    VisibleRowCount := TDummyGrid(MyDBGrid).VisibleRowCount; 

Следует предупредить, что это включает заголовок.

1

Я хотел бы использовать

TDbGrid.ApproxCount