Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

автоматическая нумерация строк в DBGrid [D7, MySQL]


John Magic ©   (2006-04-29 12:20:00) 

Привет всем!
В DataSet'е (ADOTable) создаю вычисляемое поле RowNomer для нумерации строк в DBGride. В событии OnCalcFields пишу строку DataSetRowNomer.Value:= DataSet.RecNo.

В гриде потом показывает на первой записи "-1" и когда перехожу на последнюю запись тоже "-1". Если перелистнуть страницу и возвратится, то все впорядке, все номера на месте. Нажимаю на скролл на самом вверху при первой записи или внизу на последней записи опять (-1).

Как правильно пронумеровать строки в DBGrid'е?


Express   (2006-04-29 21:43:00) [1]

если тебе надо получить номер текущей строки делай так:
StatusBar.Panels.Items[0].Text := '  № текущей записи: '+IntToStr(AdrEditGrid(Form.ActiveMDIChild).DBGrid.DataSource.DataSet.RecNo);

StatusBar.Panels.Items[1].Text :='  Всего записей: '+IntToStr(AdrEditGrid(Form.ActiveMDIChild).DBGrid.DataSource.DataSet.RecordCount) ;

В событие AfterScroll в таблице


sniknik   (2006-04-29 13:23:00) [2]

> Как правильно пронумеровать строки в DBGrid'е?
правильнее вообще не нумеровать...

еще правильнее не использовать ADOTable

и еще, тоже правильно... ;)) не завязываться на RecNo, т.к. это значение не гарантировано и притом расчетное... т.е. в одном случае неопределенное  в другом неоправданные тормоза...

по вопросу
> В событии OnCalcFields пишу строку DataSetRowNomer.Value:= DataSet.RecNo.
смени событие, на то которое попозже происходит, на onGetText у поля, напишеш там DisplayText:= IntToStr(DataSet.RecNo);


DimonS   (2006-04-29 13:05:00) [3]


> Как правильно пронумеровать строки в DBGrid'е?


А я не мучился так. Просто использовал DBGridEh из библиотеки EhLib, в нем самом делается столбец элементарно. Давненько, правда, было, но если есть желание, поищу код, там вроде вообще одной строкой кода делается.


Наверх

Титульная страница Поиск, карта сайта Написать письмо