Delphi - объектно-ориентированный язык программирования, разработанный компанией Borland в 1995 году. Он основан на языке программирования Pascal, но имеет более расширенные возможности и добавлены новые функции.
Delphi является интегрированной средой разработки (IDE), которая позволяет разрабатывать программное обеспечение для различных платформ, включая Windows, macOS, Android и iOS. Delphi достигает многоплатформенности с помощью...
...какой метод вовращает номер текущей записи? (т.е.: Я хочу использовать это вместе с функцией RecordCount и выводить для пользователя в строке состояния нечто вроде: "Запись #n из x")
Вот функция, возвращающая номер текущей записи в наборе данных DataSet. В основном я все скопировал и расставил комментарии, которые теперь лишают меня возможности поговорить на эту тему. Могли бы вы получить эти цифирьки из DBIPROCS.INT?
functionRecordNumber(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));
{ С каким типом набора данных мы работаем? } caseCursorProps.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 ) ;