anchor.diff:  
    
  -procedure TDBMenu.Choose(nid : integer);
  +function TDBMenu.Choose : variant;
     var
       _rs : TRecordSet;    // the data to choose from
       _cr : TDbCursor;     //
  
positive.code:       rs : TRecordSet;
        key: string;
        OnSave : procedure (val:variant) of object;
        procedure Choose(nid:Integer);
      end;
    TDbOutCursor = class (udc.TDbCursor)
      public
  
negative.code:   begin { choosetype }
      SetUp;
      repeat DrawMenu; Interact until cancel or done;
      if cancel then result := nil
      else begin
        result := rs[key];
        if assigned(OnSave) then OnSave(result);
      end;
      TearDown;
    end;
  