anchor.diff:        procedure ToMark;
         procedure Toggle;
         procedure SetMark(id : integer);
  +      procedure SetItem(key : string; value: variant);
  +      function  GetItem(key : string): variant;
      published
         property OnMarkChanged : TNotifyEvent read fMarkChanged write fMarkChanged;
         property RecordSet : TRecordSet read _rs write _rs;
  
positive.code:     public
        procedure ToTop;
        procedure ToEnd;
        procedure Next;
        procedure Prev;
        function  AtMark : boolean;
  
negative.code:     _rs.Execute(sql);
      SetMark(_mk); // MarkChanged;
    end;
  
  procedure TDbCursor.SetItem(key : string; value: variant);
    begin
      ToMark; _rs.Edit; _rs[key] := value; _rs.Post;
    end;
  
  function TDbCursor.GetItem(key : string): variant;
    begin
      ToMark; result := _rs[key];
    end;
  
  {---------------------------------------------------------------}
  { TDbTreeGrid                                                   }
  {---------------------------------------------------------------}
  