anchor.diff:      function    GetColumnEditType(AIndex: integer): TEditType;
       procedure   SetEditCell;
       procedure   CloseEditCell;
  +    procedure   SetReturnWay;
  +    procedure   SetTabWay(ShiftState: TShiftState);
       procedure   IniTextCell;
       procedure   FCellEditTextKeyPress(Sender: TObject; var KeyCode: word; var ShiftState: TShiftState;
           var Consumed: boolean);
  
positive.code:           Cells[FocusCol, FocusRow] := FCellEditCurrency.Text;
            FCellEditCurrency.Text:= '';
            FCellEditCurrency.Visible := False;
            case FEditWay of
              edNone:
                FEditing:= False;
              edColumn:
                if FocusCol < Pred(ColumnCount) then
                  FocusCol := FocusCol + 1
                else
                  FEditing:= False;
              edRow:
                if FocusRow < Pred(RowCount) then
                  FocusRow := FocusRow + 1
                else
                  FEditing:= False;
            end;
            SetFocus;
            if FEditing then
              SetEditCell;
          end;
        KeyTab:
          begin
            FCellEditCurrency.Text := '';
            FCellEditCurrency.Visible := False;
            if ssShift in ShiftState then
            begin
              if FocusCol > 0 then
                FocusCol := FocusCol - 1;
            end
            else
              if FocusCol < Pred(ColumnCount) then
                FocusCol := FocusCol + 1;
            FEditing := False;
            SetFocus;
          end;
        KeyEscape:
          begin
  
negative.code:           Cells[FocusCol, FocusRow] := FCellComboBox.Text;
            FCellComboBox.Text:= '';
            FCellComboBox.Visible := False;
            SetReturnWay;
          end;
        KeyTab:
          begin
            FCellComboBox.Text := '';
            FCellComboBox.Visible := False;
            SetTabWay(ShiftState);
          end;
        KeyEscape:
          begin
  