Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков программирования и крэкерства 6.0
(актуальность: февраль 2017)
Свежие инструменты, новые видеоуроки!

  • 300+ видеоуроков
  • 800 инструментов
  • 80 свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Запись RecNo из RecordCount

Автор: Mike Downey

...какой метод вовращает номер текущей записи? (т.е.: Я хочу использовать это вместе с функцией RecordCount и выводить для пользователя в строке состояния нечто вроде: "Запись #n из x")

Вот функция, возвращающая номер текущей записи в наборе данных DataSet. В основном я все скопировал и расставил комментарии, которые теперь лишают меня возможности поговорить на эту тему. Могли бы вы получить эти цифирьки из DBIPROCS.INT?


 function RecordNumber(Dataset: TDataset): Longint;
 var
   CursorProps: CurProps;
   RecordProps: RECProps;
 begin
   { Возвращаем 0, если набор данных не Paradox или dBASE }
   Result := 0;
 
   with Dataset do
   begin
     { Набор данных активен? }
     if State = dsInactive then
       DBError(SDataSetClosed);
 
     { Нам необходимо сделать этот вызов, чтобы "захватить" курсор iSeqNums }
     Check(DbiGetCursorProps(Handle, CursorProps));
 
     { Синхронизируем курсор BDE с курсором набора данных }
     UpdateCursorPos;
 
     { Заполняем RecordProps текущими свойствами записи }
     Check(DbiGetRecord(Handle, dbiNOLOCK, nil, @RecordProps));
 
     { С каким типом набора данных мы работаем? }
     case CursorProps.iSeqNums of
       0: Result := RecordProps.iPhyRecNum; { dBASE   }
       1: Result := RecordProps.iSeqNum; { Paradox }
     end; { case }
   end; { with }
 end; { function }
 

Затем, в обработчике события OnDataChange DataSet, я использовал команду:


 MyTextVariable := 'Запись ' + IntToStr( RecordNumber( tImport ) ) +
 ' из ' + IntToStr( tImport.RecordCount ) ;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS