anchor.diff:      published
         property kind : integer read _kind write _kind;
       end;
  + 
   implementation
   
  
positive.code:       property Item[ key : string ] : variant
           read GetItem write SetItem; default;
      end;
  
    TDbTreeGrid = class (TView)
      protected
  
negative.code:       procedure SetY(value : cardinal);
        procedure SetW(value : cardinal);
        procedure SetH(value : cardinal);
      published
        procedure Nudge(dx, dy : integer);
        procedure Redraw;
        procedure Render(term :  ITerm); virtual;
        procedure Resize(new_w, new_h : cardinal); virtual;
        property x : cardinal read _x write SetX;
        property y : cardinal read _y write SetY;
        property w : cardinal read _w write SetW;
        property h : cardinal read _h write SetH;
        constructor Create( aOwner : TComponent ); override;
      end;
    
    // A class with its own video ram buffer:
    TTermView = class (TView, ITerm)
      protected
        _gridterm : TGridTerm;
      published
        property term : TGridTerm read _gridterm implements ITerm;
        constructor Create( aOwner : TComponent ); override;
        procedure Render(term :  ITerm); override;
        procedure Resize(new_w, new_h : cardinal); override;
      end;
  
    //  TODO : improve the keyboard handling
    //    - probably should use use sparse arrays
  