![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDBGrid - номер текущей записи и всего записей в таблице [D6, D7, Win2k, WinXP]
Express © (2006-04-25 16:20:00)Здравствуйте!
Возникла такая задумка выводить номер текущей записи и сколько всего записей в таблице, для отображения записей использую компонент TDBGrid.
StatusBar.Panels.Items[0].Text :='№ текущей записи: '+IntToStr(DBGrid.DataSource.DataSet.RecNo);
StatusBar.Panels.Items[1].Text :='Всего записей: '+IntToStr(DBGrid.DataSource.DataSet.RecordCount);
Необходимо чтобы при перемещение по строкам текущая информация обновлялась, в какое событие TDBGrid необходимо поместить данный код????
Или подскажите, как это можно еще сделать??
Johnmen (2006-04-26 15:09:00) [1]Единственный корректный ответ [1] с учётом оговорки [3].
Рустем (2006-04-26 14:57:00) [2]
> Express
Обработай событие OnDataChange компонента TDataSource например так:
procedure TForm.DataSourceDataChange(Sender: TObject;
Field: TField);
begin
with DataSource.DataSet do
begin
if IsEmpty
then
StatusBar.Panels.Items[0].Text := '(0)'
else
if (State = dsBrowse) and (Field = nil) then
StatusBar.Panels.Items[0].Text := Format(' %d:%d', [RecNo, RecordCount]);
end;
end;
MsGuns (2006-04-26 13:32:00) [3]>Плохиш © (25.04.06 16:40) [1]
>OnAfterScroll набора данных, не TDBGrid.
Еще TDataSet.OnAfterOpen, TDataSet.AfterRefresh и TDBGrid.OnEnter
>Desdechado © (25.04.06 18:48) [3]
>RecNo и RecordCount работает далеко не для всех источников данных
Для двунаправленных курсоров работают. Для RecordCount после открытия надо сразу давать Last, First (при TDataSet.DisableControls) или FetchAll и не тянуть в датасет тучу записей с сервера, иначе будет тормоз при переоткрытиях
Desdechado (2006-04-25 18:48:00) [4]RecNo и RecordCount работает далеко не для всех источников данных
Express (2006-04-25 16:48:00) [5]Большое спасибо!
Плохиш (2006-04-25 16:40:00) [6]OnAfterScroll набора данных, не TDBGrid.