![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество строк в DBGrid [D4, IB5.x]
Alex Freeman © (2002-10-25 14:31:00)Как можно узнать, сколько строк выведено в данный момент в DBGrid? Если можно, с примером!
vic_vm (2002-10-26 14:17:00) [1]Вот куски из моего собственного компонента
type
TExtDBGrid = class(TDBGrid)
protected
function GetGrid_Info : TGridDrawInfo;
public
constructor Create(AOwner: TComponent); override;
property Grid_Info : TGridDrawInfo read GetGrid_Info;
end;
.............................
implementation
constructor TExtDBGrid.Create(AOwner: TComponent);
begin
inherited;
end;
function TExtDBGrid.GetGrid_Info : TGridDrawInfo;
begin
CalcDrawInfo(Result);
end;
И вот что ты можешь получить
ExtDBGrid1: TExtDBGrid;
.............
ExtDBGrid1.Grid_Info.Vert.LastFullVisibleCell;
ExtDBGrid1.Grid_Info.Vert.GridCellCount;
и еще некоторые вкусности.
CalcDrawInfo - стандартная процедура Delphi
находящееся в protected какого-то из предков
Johnmen (2002-10-25 16:47:00) [2]TMyGrid = class(TDBGrid);
....
Количество видимых строк в DBGrid :
TMyGrid(DBGrid1).RowCount-1;
Darts (2002-10-25 16:26:00) [3]Да, и надо выкинуть высоту шапки, высоту горизонтального скроллбара, чтобы придти к цели. Как-то все слишком сложно.
А можно ли подобраться, используя высоту фонта грида + поправку на пару пикселов по высоте?
Darts (2002-10-25 16:23:00) [4]> MsGuns
Оригинальный метод. Юзер должен попотеть, выполняя такую работу. Он может просто подсчитать вслух про себя строки. ;-)
Если не ошмбаюсь, высота строки - protected? Тогда проще наследовать данный грид.
MsGuns (2002-10-25 16:03:00) [5]>Darts (25.10.02 15:57)
Почему же ? Прекрасно работает ! Просто для этого юзеру надо выделить (аккуратно, чтоб не съехал ползун) ВСЕ видимые строки и нажать кнопку, которую надо положить на форму и заодно написать к ней обработчик 8)
Darts (2002-10-25 15:57:00) [6]> Delirium
Не работает.
Delirium (2002-10-25 15:42:00) [7]
DBGrid1.SelectedRows.Count
Johnmen (2002-10-25 15:40:00) [8]>MsGuns © (25.10.02 15:30)
Неск.месяцев назад был очень понравившийся мне ответ.
Если вспомню (надо поковыряться в исходниках), то скажу.
:)))))))))0
Darts (2002-10-25 15:34:00) [9]Наверное, приблизительно так, если число записей > числа видимых строк
VisibleRows := DBGrid1.Height div Row.Height,
где Row.Height - высота строки грида.
MsGuns (2002-10-25 15:30:00) [10]>Johnmen © (25.10.02 15:24)
Я понял так же. И мне также интересно узнать решение этой проблемы. Пока я знал только про один метод - через канву, но он довольно муторный и мне не нравится.
Johnmen (2002-10-25 15:24:00) [11]Я понимаю вопрос, как количество видимых строк в dbGrid.
А как автор ?
Anatoly Podgoretsky (2002-10-25 15:02:00) [12]Как минимум RecordCount содержит уже количество отффеченных срок к данному моменту, а может здесь вообще имеется ввиду количество видимых строк в dbGrid, а может еще что
stone (2002-10-25 15:00:00) [13]> Johnmen ©
что значит в данный момент?
Датасет содержит фильтры? или есть другие условия?
Johnmen (2002-10-25 14:55:00) [14]>stone © (25.10.02 14:35)
Повнимательней... >сколько строк выведено в данный момен...
>Alex Freeman
Был такой вопрос...Вот только ответ сходу не приведу....
stone (2002-10-25 14:35:00) [15]DBGrid служит для работы с датасетом. Поэтому количество строк в гриде равно количеству строк в датасете т.е.
Table1.RecordCount