|
@@ -144,6 +144,7 @@ type
|
|
|
procedure StoreCurrentRecIntoBookmark(const ABookmark: PBufBookmark); virtual; abstract;
|
|
|
procedure StoreSpareRecIntoBookmark(const ABookmark: PBufBookmark); virtual; abstract;
|
|
|
procedure GotoBookmark(const ABookmark : PBufBookmark); virtual; abstract;
|
|
|
+ function BookmarkValid(const ABookmark: PBufBookmark): boolean; virtual;
|
|
|
|
|
|
procedure InitialiseIndex; virtual; abstract;
|
|
|
|
|
@@ -467,6 +468,7 @@ type
|
|
|
procedure LoadFromFile(AFileName: string = ''; Format: TDataPacketFormat = dfAny);
|
|
|
procedure SaveToFile(AFileName: string = ''; Format: TDataPacketFormat = dfBinary);
|
|
|
procedure CreateDataset;
|
|
|
+ function BookmarkValid(ABookmark: TBookmark): Boolean; override;
|
|
|
function CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Longint; override;
|
|
|
|
|
|
property ChangeCount : Integer read GetChangeCount;
|
|
@@ -1041,6 +1043,11 @@ begin
|
|
|
FDataset := ADataset;
|
|
|
end;
|
|
|
|
|
|
+function TBufIndex.BookmarkValid(const ABookmark: PBufBookmark): boolean;
|
|
|
+begin
|
|
|
+ Result := assigned(ABookmark) and assigned(ABookmark^.BookmarkData);
|
|
|
+end;
|
|
|
+
|
|
|
function TBufIndex.CompareBookmarks(const ABookmark1, ABookmark2: PBufBookmark): boolean;
|
|
|
begin
|
|
|
result := (ABookmark1^.BookmarkData=ABookmark2^.BookmarkData);
|
|
@@ -2499,6 +2506,11 @@ begin
|
|
|
CreateFields;
|
|
|
end;
|
|
|
|
|
|
+function TBufDataset.BookmarkValid(ABookmark: TBookmark): Boolean;
|
|
|
+begin
|
|
|
+ Result:=FCurrentIndex.BookmarkValid(ABookmark);
|
|
|
+end;
|
|
|
+
|
|
|
function TBufDataset.CompareBookmarks(Bookmark1, Bookmark2: TBookmark
|
|
|
): Longint;
|
|
|
begin
|